Zrozumienie wersji .NET: .NET Core, .NET Standard, .NET Framework i inne
Poruszanie się w ekosystemie .NET może być mylące z terminami takimi jak .NET, .NET SDK, .NET Core, .NET Standard i .NET Framework. Każdy z nich odgrywa unikalną rolę w środowisku programistycznym C# przy użyciu Visual Studio 2022, a zrozumieniuiuiuiuie ich różnic jest kluczowe do wyboru odpowiedniego docelowego frameworka dla twojego projektu.
Ten artykuł, oparty na wideo Tima Coreya ".NET Versions Explained - .NET, .NET Core, .NET Standard, .NET Framework and more", ma na celu uproszczenie tych pojęć i dostarczenie jasnych wskazówek, które z nich wybrać i kiedy.
Dłączego .NET Core musiał zaistnieć
.NET Framework, często określany po prostu jako .NET, był podstawą w rozwoju oprogramowania i środowisku uruchomieniowym dla komputerów stacjonarnych od ponad dwóch dekad. Jednak jego ograniczenia wymusiły stworzenie .NET Core. Tim Corey podkreśla kilka kluczowych powodów:
-
Łatki i obejścia: Z upływem czasu .NET Framework zgromadził wiele łatek i obejść, co znacznie go zwolniło (1:35).
-
Zależność od Windowsa: .NET Framework jest głęboko zintegrowany z Windowsem, co utrudnia jego używanie na innych platformach. Ta zależność utrudniała rozwój wielopłatformowy (2:03).
-
Monolityczna konstrukcja: .NET Framework został zaprojektowany tak, aby zawierał wszystko w jednej paczce, co, choć wygodne, skutkowało przepełnionym i mniej wydajnym systemem (2:25).
- Przestarzałe założenia: Opracowany ponad 20 lat temu, .NET Framework nie był projektowany z myślą o nowoczesnym internecie i użyciu mobilnym (3:20).
Struktura aplikacji .NET
Aby zrozumieć korzyści .NET Core, ważne jest, aby pojąć, jak jest zbudowana aplikacja .NET.

Jak wyjaśnia Tim Corey:
-
Kod źródłowy C#: Twój kod C# jest najpierw kompilowany do kodu w języku pośrednim (IL) (5:49).
- Wspólna infrastruktura uruchomieniowa (CLR): Kod IL jest następnie wykonywany przez CLR. .NET Framework i .NET Core mają różne CLR, ale oba przetwarzają kod IL w podobny sposób, co pozwala na pozostawienie większości kodu źródłowego bez zmian na obu platformach (6:42).
Zalety .NET Core w stosunku do .NET Framework
Środowisko uruchomieniowe .NET Core to framework programistyczny stworzony w celu zniwelowania niedoskonałości .NET Framework. Tim Corey podkreśla jego główną zaletę:
-
Wielopłatformowość: W przeciwieństwie do .NET Framework, .NET Core został zaprojektowany do działania na wielu platformach, w tym Windows, Mac, Linux, Android, iOS, Xbox, IoT i innych.
-
Wydajność: .NET Core oferuje znaczące poprawki wydajności. Eliminuje przestarzałe łatki i wspiera nowoczesne praktyki sprzętowe i programistyczne, czyniąc go szybszym niż .NET Framework.
-
Modułowość: .NET Core jest modularny, co umożliwia programistom włączanie tylko niezbędnych komponentów, zmniejszając obciążenie i zwiększając wydajność.
-
Nowoczesne funkcje: .NET Core zawiera bardziej nowoczesne funkcje od razu dostępne, takie jak wbudowany mechanizm wstrzykiwania zależności i logowanie, promujące najlepsze praktyki w rozwijaniu oprogramowania.
-
Otwarte źródło: .NET Core jest open source, co zachęca do wkładów ze strony społeczności i przejrzystości w procesie rozwoju.
-
Zgodność z normami przemysłowymi: .NET Core przestrzega norm przemysłowych, zapewniając zgodność i integrację z nowoczesnymi technologiami, w przeciwieństwie do .NET Framework, który jest ograniczony do środowisk Windows.
- Łatwość aktualizacji: Aktualizowanie .NET Core jest zazwyczaj proste, często wymagające jedynie zmian w numerach wersji i aktualizacji pakietów NuGet. Część Microsoftu w procesie aktualizacji jest uproszczona, z mniej przypadkami łamania kompatybilności w porównaniu z .NET Framework, w którym historycznie były bardziej złożone i problematyczne aktualizacje.
.NET Standard
Tim wyjaśnia, że .NET Standard jest specyfikacją, która definiuje zestaw API, które wszystkie platformy .NET muszą zaimplementować i nie jest jedynie środowiskiem uruchomieniowym. Zapewnia jednolite API, które zapewnia zgodność kodu z różnymi implementacjami .NET. Oznacza to, że można pisać biblioteki, które działają zarówno na .NET Core, jak i .NET Framework. W 33:35 Tim omawia wszystkie wersje .NET Standard do najnowszej wersji. Podsumowanie przedstawione jest poniżej na zdjęciu:

Szczegółowa analiza wersji .NET
Oś czasu .NET Framework
.NET Framework jest obecny od wczesnych lat 2000 i jest ściśle zintegrowany z Windowsem. Jest odpowiedni do budowy aplikacji na pulpit i aplikacji webowych na Windows, ale jest ograniczony pod względem możliwości wielopłatformowych.
.NET Framework 1.0 (styczeń 2002)
Tim Corey opisuje początkowe wydanie .NET Framework 1.0 jako rewolucyjne, wprowadzające koncepcje wspólnego języka pośredniego, który pozwala na współpracę wielu języków programowania (40:07). Ta fundamentalna wersja ustanowiła podstawę do przyszłego rozwoju, oferując zintegrowaną platformę dla różnych języków.
.NET Framework 2.0 (październik 2005)
Wydana trzy lata później, .NET Framework 2.0 przyniosła znaczące ulepszenia i nowe funkcje, kontynuując rozwój platformy (41:40). Ta wersja była wyróżniająca się ze względu na zaawansowane funkcje językowe i wsparcie dla szerszego zakresu aplikacji.
Główne aktualizacje:
-
Listopad 2006: Wprowadzono .NET Framework 3.0 (41:43).
-
Listopad 2007: Wydano .NET Framework 3.5, co stanowiło znaczący kamień milowy (41:49).
-
Kwiecień 2010: Ukazała się ostatnia główna wersja .NET Framework 4.0 (42:13).
-
Sierpień 2012 r.: Wydano .NET Framework 4.5 (42:50).
- Kwiecień 2019 r.: Wprowadzono na rynek .NET Framework 4.8, ostatnią wersję pomniejszą (47:17).
Wersje .NET Core
.NET Core 1.0 (czerwiec 2016 r.)
Tim Corey określa .NET Core 1.0 jako proof of concept o ograniczonej funkcjonalności, mający na celu zademonstrowanie potencjału .NET Core (43:32). Ta początkowa wersja położyła podwaliny, ale nie została powszechnie przyjęta ze względu na ograniczone funkcje.
.NET Core 2.0 (sierpień 2017 r.)
Wydana jako aktualizacja o większej liczbie funkcji, wersja .NET Core 2.0 zawierała ważne ulepszenia, szczególnie w zakresie tworzenia aplikacji internetowych (45:23). Nie była to jednak wersja LTS, a Tim podkreśla, że zawierała ona przełomowe zmiany, które doprowadziły do wydania później bardziej stabilnej wersji.
.NET Core 2.1 (maj 2018)
.NET Core 2.1 był wersją LTS (Long-Term Support), którą Tim wskazuje jako kluczową dla firm potrzebujących stabilności i rozszerzonego wsparcia (45:42). Była to znacząca aktualizacja, dzięki której .NET Core stał się bardziej odpowiedni do użytku produkcyjnego.
.NET Core 3.0 (wrzesień 2019 r.)
.NET Core 3.0 wprowadzono obsługę aplikacji desktopowych, w tym WinForms i WPF, rozszerzając jego zastosowanie poza aplikacje internetowe (53:04). To wydanie sprawiło, że .NET Core stał się bardziej wszechstronną platformą, zachęcając firmy do migracji z .NET Framework.
.NET Core 3.1 (grudzień 2019 r.)
Oparta na wersji 3.0, .NET Core 3.1 była kolejną wersją LTS, zapewniającą ciągłe wsparcie i stabilność dla aplikacji desktopowych i internetowych (53:16). Tim wyjaśnia, że ta wersja stanowiła punkt, w którym .NET Core został uznany za kompletny pod względem funkcji i niezawodny do użytku w Enterprise.
.NET 5 i dalej
.NET 5.0 (listopad 2020 r.)
Wraz z wydaniem .NET 5 firma Microsoft usunęła słowo "Core" z nazwy, aby uprościć branding (58:03). Tim wyjaśnia, że zmiana ta miała na celu zmniejszenie niejasności między .NET Framework a .NET Core. .NET 5 stanowił ważny krok w kierunku ujednolicenia ekosystemu .NET pod jedną nazwą.
.NET 6.0 (listopad 2021 r.)
.NET 6 kontynuuje roczny cykl wydawniczy wprowadzony wraz z .NET 5 (59:56). Tim zauważa, że każda nowa wersja, w tym .NET 6, jest częścią corocznego cyklu aktualizacji, co pozwala na regularne ulepszenia i dodawanie nowych funkcji.
.NET 7.0 (listopad 2022 r.)
.NET 7 został wydany zgodnie z corocznym harmonogramem, co pozwoliło na dalszy rozwój platformy dzięki drobnym aktualizacjom i ulepszeniom (59:56). Tim omawia szczegóły dotyczące tego, w jaki sposób ta wersja, podobnie jak jej poprzedniczki, odzwierciedla zaangażowanie firmy Microsoft w ciągły rozwój i innowacje w ekosystemie .NET.

Zrozumienie wersji .NET i cyklu życia wsparcia
Tim Corey przedstawia szczegółowe wyjaśnienie wersji .NET i ich cyklu życia wsparcia technicznego w (1:01:27). Oto podsumowanie omówionych kluczowych punktów:
Cykl życia wsparcia: STS a LTS
Tim Corey wyjaśnia różnicę między dwoma rodzajami wsparcia: Standard Term Support (STS) i Long-Term Support (LTS).
-
STS (Standard Term Support): Zapewnia 18-miesięczny okres wsparcia. Na przykład .NET 5, wydany w listopadzie 2020 r., był obsługiwany do maja 2022 r. .NET 7, wydany w listopadzie 2022 r., ma podobny 18-miesięczny okres wsparcia, kończący się w maju 2024 r.
- LTS (Long-Term Support): Oferuje dłuższy okres wsparcia wynoszący 3 lata. .NET 6, który ukazał się w listopadzie 2021 r., będzie obsługiwany do listopada 2024 r. .NET 8, którego premiera zaplanowana jest na listopad 2023 r., będzie kolejną wersją LTS, zapewniającą wsparcie do listopada 2026 r.
Tim zwraca uwagę, że podczas gdy programiści aplikacji, którzy szybko wprowadzają zmiany, mogą preferować wersje STS, aby uzyskać dostęp do najnowszych funkcji, firmy często wybierają wersje LTS ze względu na stabilność i dłuższy okres wsparcia.
Ścieżka aktualizacji i wydania wersji
Tim Corey przedstawia ścieżkę aktualizacji dla wersji .NET:
-
Od .NET 5 do .NET 6: Masz rok, w którym obie wersje są obsługiwane.
-
Od .NET 6 do .NET 8: Będziesz mieć cały rok na aktualizację z .NET 6 do .NET 8, zanim zakończy się wsparcie dla .NET 6.
- Przyszłe aktualizacje: Zgodnie z tym schematem .NET 8 (obecnie najnowsza wersja) będzie obsługiwany do momentu pojawienia się .NET 10, co daje wystarczająco dużo czasu na aktualizację.
Tim podkreśla, że ten przewidywalny cykl wydawniczy pozwala firmom z pewnością planować aktualizacje.

Strategia wsparcia firmy Microsoft
Tim omawia podejście firmy Microsoft do wsparcia i rozwoju:
-
Koszt i złożoność: Rozszerzenie wsparcia dla starszych wersji może być kosztowne i skomplikówane ze względu na konieczność utrzymywania aktualizacji zabezpieczeń w wielu wersjach. Właśnie dlatego firma Microsoft przyjęła bardziej przewidywalną i łatwiejszą w zarządzaniu strategię wsparcia.
- Modular Framework: Modułowe podejście .NET Core i .NET pozwala na szybkie aktualizacje funkcji i łatwiejsze zarządzanie cyklem życia wsparcia.
Wybór między .NET Framework a .NET Core
Tim Corey doradza, kiedy stosować różne wersje .NET:
-
.NET Framework: Używaj go w istniejących projektach lub podczas obsługi starszych systemów operacyjnych, takich jak Windows XP.
- .NET Core (obecnie .NET): W przypadku nowych projektów należy rozpocząć od najnowszej wersji .NET. Aktualizacja ze starszych wersji .NET Framework do .NET może zapewnić znaczną poprawę wydajności.
ASP.NET a ASP.NET Core
Tim wyjaśnia różnice między ASP.NET a ASP.NET Core:
-
ASP.NET: Oparty na .NET Framework i obsługujący Web Forms, MVC oraz Web API. W szczególności Web Forms nie jest zawarte w ASP.NET Core.
- ASP.NET Core: Modułowy framework do tworzenia aplikacji internetowych w środowisku .NET Core. Obejmuje to Razor Pages, MVC, API, Blazor Server i Blazor WebAssembly. .NET Core został zaprojektowany tak, aby był bardziej elastyczny i nowoczesny w porównaniu ze swoim poprzednikiem.
Tim o godz. 1:21:00 wyjaśnia, że ASP.NET Core nadal wspiera tworzenie stron internetowych dzięki nowym funkcjom i większej modułowości, podczas gdy ASP.NET (Framework) jest bardziej tradycyjny i ograniczony do starszych wersji .NET.
Wnioski
Tim Corey oferuje jasny i wnikliwy przewodnik po ekosystemie .NET, od historycznego kontekstu .NET Framework po nowoczesne możliwości .NET Core i nie tylko. W swoim filmie wyjaśnia ewolucję wersji .NET, konieczność wprowadzenia .NET Core oraz zalety modułowości i kompatybilności międzyplatformowej. Niezależnie od tego, czy wybierasz między .NET Framework a .NET Core, czy też chcesz zrozumieć cykl życia wsparcia dla różnych wersji .NET, wyjaśnienia Tima stanowią cenną wskazówkę pozwalającą na podejmowanie świadomych decyzji dotyczących programowania.
Aby uzyskać bardziej szczegółowe omówienia i praktyczne przykłady kodowania, koniecznie odwiedź kanał YouTube Tima Coreya, IAmTimCorey.

