Zrozumienie wersji .NET: .NET Core, .NET Standard, .NET Framework i inne
Poruszanie sie w ekosystemie .NET może być mylace z terminami takimi jak .NET, .NET SDK, .NET Core, .NET Standard i .NET Framework. Kazdy z nich odgrywa unikalna role w środowisku programistycznym C# przy użyciu Visual Studio 2022, a zrozumienie ich roznic 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 pojec i dostarczenie jasnych wskazowek, ktore z nich wybrac i kiedy.
Dłączego .NET Core musial zaistniec
.NET Framework, często okreslany po prostu jako .NET, byl podstawa w rozwoju oprogramowania i środowisku uruchomieniowym dla komputerow stacjonarnych od ponad dwoch dekad. Jednak jego ograniczenia wymusily stworzenie .NET Core. Tim Corey podkreśla kilka kluczowych powodow:
-
Latki i obejscia: Z uplywem czasu .NET Framework zgromadzil wiele latek i obejsc, co znacznie go zwolnilo (1:35).
-
Zaleznosc od Windowsa: .NET Framework jest gleboko zintegrowany z Windowsem, co utrudnia jego używanie na innych platformach. Ta zależność utrudniala rozwoj wielopłatformowy (2:03).
-
Monolityczna konstrukcja: .NET Framework zostal zaprojektowany tak, aby zawieral wszystko w jednej paczce, co, choc wygodne, skutkowalo przepelnionym i mniej wydajnym systemem (2:25).
- Przestarzale zalozenia: Opracowany ponad 20 lat temu, .NET Framework nie byl projektowany z mysla o nowoczesnym internecie i użyciu mobilnym (3:20).
Struktura aplikacji .NET
Aby zrozumieć korzysci .NET Core, ważne jest, aby pojac, jak jest zbudowana aplikacja .NET.

Jak wyjasnia Tim Corey:
-
Kod zrodlowy C#: Twoj kod C# jest najpierw kompilowany do kodu w języku pośrednim (IL) (5:49).
- Wspolna infrastruktura uruchomieniowa (CLR): Kod IL jest następnie wykonywany przez CLR. .NET Framework i .NET Core maja różne CLR, ale oba przetwarzają kod IL w podobny sposob, co pozwala na pozostawienie wiekszosci kodu zrodlowego 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 niedoskonalosci .NET Framework. Tim Corey podkreśla jego główna zalete:
-
Wielopłatformowosc: W przeciwienstwie do .NET Framework, .NET Core zostal zaprojektowany do działania na wielu platformach, w tym Windows, Mac, Linux, Android, iOS, Xbox, IoT i innych.
-
Wydajnosc: .NET Core oferuje znaczace poprawki wydajności. Eliminuje przestarzałe latki i wspiera nowoczesne praktyki sprzętowe i programistyczne, czyniac go szybszym niz .NET Framework.
-
Modulowosc: .NET Core jest modularny, co umożliwia programistom włączanie tylko niezbędnych komponentow, zmniejszajac obciazenie 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, promujace najlepsze praktyki w rozwijaniu oprogramowania.
-
Otwarte zrodlo: .NET Core jest open source, co zacheca do wkladow ze strony spolecznosci i przejrzystosci w procesie rozwoju.
-
Zgodnosc z normami przemysłowymi: .NET Core przestrzega norm przemysłowych, zapewniając zgodność i integracje z nowoczesnymi technologiami, w przeciwienstwie do .NET Framework, ktory jest ograniczony do srodowisk Windows.
- Latwosc aktualizacji: Aktualizowanie .NET Core jest zazwyczaj proste, często wymagajace jedynie zmian w numerach wersji i aktualizacji pakietow NuGet. Czesc Microsoftu w procesie aktualizacji jest uproszczona, z mniej przypadkami lamania kompatybilnosci w porownaniu z .NET Framework, w ktorym historycznie byly bardziej zlozone i problematyczne aktualizacje.
.NET Standard
Tim wyjasnia, ze .NET Standard jest specyfikacja, która definiuje zestaw API, ktore wszystkie platformy .NET musza zaimplementowac i nie jest jedynie srodowiskiem uruchomieniowym. Zapewnia jednolite API, ktore zapewnia zgodność kodu z różnymi implementacjami .NET. Oznacza to, ze można pisac biblioteki, ktore działaja zarowno 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 zdjeciu:

Szczegolowa analiza wersji .NET
Oś czasu .NET Framework
.NET Framework jest obecny od wczesnych lat 2000 i jest scisle zintegrowany z Windowsem. Jest odpowiedni do budowy aplikacji na pulpit i aplikacji webowych na Windows, ale jest ograniczony pod wzgledem możliwosci wielopłatformowych.
.NET Framework 1.0 (styczen 2002)
Tim Corey opisuje poczatkowe wydanie .NET Framework 1.0 jako rewolucyjne, wprowadzające koncepcje wspolnego języka pośredniego, ktory pozwala na współpracę wielu językow programowania (40:07). Ta fundamentalna wersja ustanowila podstawe do przyszlego rozwoju, oferujac zintegrowana platforme dla różnych językow.
.NET Framework 2.0 (pazdziernik 2005)
Wydana trzy lata pozniej, .NET Framework 2.0 przyniosla znaczna ulepszenia i nowe funkcje, kontynuujac rozwoj platformy (41:40). Ta wersja byla wyróżniąjaca sie ze wzgledu 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.

