Co nowego w .NET 5
Microsoft wypuścił właśnie drugi RC do wydania .NET 5 - następnej wersji po .NET Core 3, czyli wieloplatformowego i otwartego frameworku do tworzenia aplikacji. Release ten coraz bardziej przybliża nas do unifikacji narzędzia, które zakłada połączenie .NET Framework i .NET Core. Microsoft określa też swojego drugiego RC jako release bardzo bliski wersji finalnej. Jeżeli ktoś jest zainteresowany, to można go pobrać tutaj.
Przy okazji tego, że jesteśmy już tak blisko oficjalnego wydania .NET 5, które jest planowane na listopad 2020, przyjrzymy się temu, jakie twórcy postawili sobie cele oraz co nowego przygotowują, lub już przygotowali.
Cele
.NET 5 jest następnym krokiem dla lepszego .NET Core, a projekt ma kilka celów, które przyczyniają się do wzrostu jakości narzędzia. Twórcy planują tutaj m.in. stworzyć ujednolicone środowisko uruchomieniowe oraz framework, którego można używać praktycznie wszędzie i który zapewnia jednolite doświadczenia dla developerów.
Twórcy chcą również ulepszyć działanie .NET przez wyciągnięcie jak najwięcej z .NET Core, .NET Framework, Xamarin oraz Mono. Co więcej, programiści będą mogli tworzyć swoje produkty, korzystając z jednej bazy kodu, którą można cały czas ulepszać i rozszerzać.
Twórcy utrzymują też, że kierunek, jaki obrali w nowym projekcie, znacznie odmieni platformę Microsoftu.
Nowości i ulepszenia
Jeżeli chodzi o nowości na tym wieloplatformowym frameworku, to prezentują się one w następujący sposób.
Single-File Applications
Celem tego przedsięwzięcia jest możliwość udostępniania aplikacji .NET jako pojedynczego pliku wykonywalnego. Twórcy zakładają, że rozwiązanie to powinno być kompatybilne z większością programów i aplikacji oraz ma działać wraz z rozmaitymi debuggerami i kompilatorami.
JsonSerializer
Twórcy dodali też nową funkcję do JsonSerializer
oraz zwiększyli jego wydajność i stabilność. Co więcej, Serializer będzie teraz działać na o wiele większej liczbie platform i obsługiwać nowe typy rekordów C#.
Powyższe to tylko przykłady zmian, jakie zaszły w JsonSerializer
. Pełna lista zmian znajduje się tutaj.
Wydajność
W .NET 5 pojawia się wiele usprawnień dotyczących wydajności. Mamy tutaj ulepszenia dotyczące odśmiecania, kompilatora just-in-time oraz poprawki dotyczące różnych funkcji .NET. Obszerna lista benchmarków wraz z wyjaśnieniem skąd wzięła się zwiększona wydajność, jest dostępna tutaj.
Poprawiono wydajność operacji na ciągach znaków, wyrażeniach regularnych, obsługi sieci, kolekcji, JSON-a, Linq. Wiele z benchmarków pokazuje wykonanie szybsze nawet o rząd wielkości.
Skupiono się również na ARM64, gdzie poprawki doprowadziły do o wiele lepszej przepustowości i mniejszego rozmiaru binarek.
Windows ARM64
Twórcy twierdzą, że są w trakcie opracowywania obsługi dla Windows ARM64. W rezultacie umożliwi to uruchomienie aplikacji Windows Forms, WPF i ASP.NET Core na urządzeniach obsługujących Windows ARM64 (np. Surface Pro X).
Projekt ten jest kontynuacją mniejszego przedsięwzięcia, które zakłada zapewnienie obłsugi Console oraz ASP.NET Core w Linuksie ARM 64. Użytkownicy mogą już teraz zainstalować master branch builds, aby przetestować Windows Forms na Windows ARM 64.
Pozostałe zmiany
.NET 5 będzie zawierało również obsługę nowych wersji języków programowania: mamy tutaj C# 9.0 oraz F# 5.0. Bardzo istotne jest zmniejszenie rozmiarów kontenerów, głównie ze względu na to, że przyszłość .NET jest w chmurze. Będzie istniała też możliwość uproszczenia nazw frameworków, których programiści używają w projektach oraz plikach NuGet, bo obecnie bywają one bardzo skomplikowane.
Co więcej, mamy ulepszenia dla generatora kodu o nazwie RyuJIT, które m.in. zwiększają jakość kodu tworzonego w sposób maszynowy.
Podsumowanie
Microsoft rekomenduje, aby przed migracją do .NET 5.0 mieć do dyspozycji aplikacje działające na .NET Core 3.1 - dzięki czemu cały proces ma być mniej bolesny. Firma z Redmond utrzymuje też, że aplikacje .NET Framework mogą tam pozostać, bo narzędzie to będzie wspierane tak długo, jak wspierany będzie Windows.