20.06.20224 min

Maciej OlanickiRedakcja Bulldogjob

.NET 5 vs .NET 6 – kluczowe różnice 

Dowiedz się, czym różnią się od siebie .NET 5 i .NET 6, czyli ostatnie wersje flagowego frameworku Microsoftu.

.NET 5 vs .NET 6 – kluczowe różnice 

Bez wątpienia .NET wyrósł przez lata na jedną z najważniejszych platform programistycznych w ogóle. Z wersji na wersje framework wzbogaca się o nowości, które sprawiają, że jest jeszcze bardziej wszechstronny i multiplatformowy. 

Dziś nie ma już przesady w twierdzeniu, że jedna baza kodu napisanego w C# może być silnikiem aplikacji działających wszystkich współczesnych systemach operacyjnych, zarówno desktopowych, jak i mobilnych. Nic dziwnego, że Microsoft jest niezwykle zaangażowany w rozwój .NET, jak i IDE Visual Studio.


.NET 5 vs .NET 6 – co je różni?

Biorąc pod uwagę rosnącą nie tylko funkcjonalność, ale także popularność frameworka .NET, warto przeanalizować, jakie duże zmiany zaszły pomiędzy najnowszą wersją oznaczoną jako 5 a .NET 4. Skupimy się przede wszystkim na całkowicie nowych funkcjach, choć ze względu na ich wielkość znajdzie się tu miejsce także dla nowych wersji komponentów znanych już z poprzednich wersji .NET.


Wydajność i kompatybilność

Zanim przejdziemy do szczegółów funkcjonalnych, skupmy się do nieco mniej oczywistej, lecz diablo ważnej zmianie, jaką jest optymalizacja działania całego frameworka. Kwestia ta została skrupulatnie zweryfikowana przez Aleksa Yakunina, twórcy benchmarku Fusion, i trzeba przyznać, że wyniki są imponujące.

W ciągu roku dzielącego premierę .NET 5 i .NET 6 Microsoftowi udało się zwiększyć wydajność działania frameworka od około 35% do nawet 44%. Wyniki w testach Fusion różnią się w zależności od procesora, na którym przeprowadzane były testowe operacje, niemniej średnio 40-procentowy skok wydajności w ciągu 12 miesięcy musi robić wrażenie.

Kolejną stricte techniczną różnicą, która jednak może być dla wielu kluczową zmianą pomiędzy obiema wersjami frameworka jest to, że .NET 6 jest już kompatybilny procesorami o architekturze Arm64. Programiści coraz częściej decyduje się na wybór Maka z ARM-owymi procesorami Apple M1 jako głównej stacji roboczej, choć z ARM-ami śmiało eksperymentują też inni producenci. Tym lepiej, że framework działa już natywnie na Arm64 i pozwala przy tym na emulację x64.

.NET MAUI

Spory wpływ na to, jak buduje się aplikacje  z .NET, może mieć zaprezentowane po raz pierwszy w wersji szóstej (choć wciąż dostępne wyłącznie w wersji Preview) .NET MAUI. Nie będzie zaskoczenia, jeśli w przyszłości będzie on zamiennikiem dla Xamarina.

.NET MAUI stanowi bowiem efekt ewolucji Xamarin.Forms, w rezultacie czego ta sama baza kodu może zyskać UI nie tylko na systemach mobilnych, ale także na Windowsie i macOS-ie. Wiele wyjaśnia zresztą rozwinięcie samej nazwy – Multi-platform App UI. Wszystko ma się odbywać z użyciem C# i XAML-a i wykorzystywać współdzielenie raz opracowanego UI na różnych systemach operacyjnych i urządzeniach.

Jest to zatem kolejny ważny krok, by framework Microsoftu, ale także jego język C# i IDE Visual Studio pozwoliły na jeszcze większą integrację i wspomnianą już możliwość budowania aplikacji na różne platformy z użyciem zestawu tych samych narzędzi i bez konieczności poświęcania czasu i uwagi na mozolne dostosowywanie UI do platform.


Crossgen 2

.NET 5 i .NET 6 różnią się także w kwestii narzędzi wykorzystywanych w kompilacji AOT. Z najnowszej wersji całkowicie usunięto Crossgen i zastąpiono go zupełnie nową odsłoną nazwaną po prostu Crossgen 2. 

No dobrze, ale co to zmienia w samym frameworku lub w działaniu aplikacji? Sporo w kwestii tego, jak szybko kompilują się aplikacje .NET. Crossgen 2 to znaczące usprawnienia w kompilacji ahead-of-time i powinien być wykorzystywany zamiast JIT wszędzie tam, gdzie kluczowe znaczenie odgrywa szybkość startu aplikacji. 


Bezpieczeństwo 

Nikt już nie ma chyba złudzeń co do tego, że kwestie bezpieczeństwa aplikacji nie powinna być zmartwieniem developerów, lecz zespołów pentesterskich. Dziś standardem coraz częściej staje się podejście security-by-design i błędy popełnione na etapie budowania aplikacji mogą odbić się czkawką znacznie później. 

Nie powinno więc dziwić, że cały osobny aspekt różnic pomiędzy kolejnymi wersjami frameworka Microsoftu jest właśnie bezpieczeństwo aplikacji. W .NET 6 wprowadzono tutaj ważną nowość, jaką jest obsługa mechanizmu Control-flow Enforcement Technology (CET). Pozwala on w nowych procesorach Intela i AMD na wykorzystanie sprzętowego zabezpieczenia przed przejęciem przepływów sterowania.


Co zmienia .NET 6?

Rzecz jasna przytoczone różnice pomiędzy .NET 5 i .NET 6 to tylko te najważniejsze, stanowiące najlepszy argument do migracji, i mniejszych zmian jest znacznie więcej. To jednak właśnie takie zmiany, jak testowa implementacja MAUI może sprawić, że przyszłość budowania aplikacji w .NET będzie faktycznie w stu procentach wypełniać obietnicę „zaprogramuj raz, uruchom wszędzie”.

W takiej perspektywie, oczywiście jeżeli developerzy będą zainteresowani taką unifikacją, a nie posługiwaniem się licznymi, lecz bardziej wyspecjalizowanymi narzędziami, bo przecież takie podejście do sprawy też ma swoje korzyści, można się spodziewać, że popularność programistycznego ekosystemu Microsoftu będzie tylko rosła. Zwłaszcza biorąc pod uwagę, jak bardzo zmienia się nie tylko on, ale też sam Microsoft.

Nie sposób nie zauważyć, że wpływ na popularność technologii i narzędzi Microsoftu ma to, że w lwiej części są one już dziś darmowe, często opensource’owe, czy też, jak w przypadku Visual Studio, mają swoje darmowe warianty Community. Wysoka jakość produktów Microsoftu, ich dostępność i ogrom możliwości, jakie oferuje – nic dziwnego, że dziś C# zna niemal co czwarty polski developer. 

<p>Loading...</p>