Maciej Olanicki
Maciej OlanickiRedakcja Bulldogjob

.NET 7 dostępny – Microsoft postawił na wydajność

Sprawdź, jakie nowości pojawiły się w opublikowanej właśnie nowej wersji frameworka .NET.
9.11.20223 min
.NET 7 dostępny – Microsoft postawił na wydajność

Premierę miała już nowa wersja .NET oznaczona numerem 7. Kolejne wydanie, choć nie brakuje w nim ważnych nowości, stanowi przede wszystkim kontynuację drogi podjętej jeszcze przy okazji prac nad .NET 5. Znów zatem mamy do czynienia ze stawianiem nacisku na integrację i unifikację poszczególnych modułów platformy.

.NET 7 – nacisk na optymalizację

Microsoft deklaruje, że to jednak nie unifikacja czy choćby ułatwienia w procesie konteneryzacji rozwijanego lokalnie oprogramowania odgrywają w .NET 7 najważniejszą rolę, lecz optymalizacje przekładające się na wzrosty wydajności. 

Jednym z zabiegów, dzięki którym .NET 7 ma przyśpieszyć jest zapoczątkowane już w 2020 roku wprowadzenie mechanizmu On-stack Replacement (OSR) jako uzupełnienia przy kompilacji warstwowej. Dzięki temu możliwa jest już w środowisku uruchomieniowym .NET zmiana kodu wykonywanego przez daną metodę w trakcie jej wykonywania. Ponadto OSR obsługuje teraz optymalizację typu profile-guided (PGO) – aby ją uruchomić, wystarczy dodać <TieredPGO>true</TieredPGO> do pliku z projektem. 

Kolejny sposób, dzięki któremu Microsoft może się pochwalić przyśpieszeniem, to implementacja funkcji natywnego wykonywania w trybie ahead of time. Dzięki temu aplikacje wykorzystujące ten mechanizm będą szybsze i mniej łase na pamięć operacyjną. Aby skorzystać z natywnego AOT, trzeba na Windowsie skorzystać z Visual Studio 2022 i wybrać scenariusz rozwoju aplikacji desktopowej w C++. W przypadku dystrybucji Linuksa konieczne jest jeszcze uzupełnienie zależności w postaci biblioteki clang zlib1g-dev.

.NET 7 to także liczne usprawnienia w obsłudze architektury ARM, co nie powinno dziwić. To właśnie w ARM-owy układ wyposażony został ostatni sprzęt developerski Microsoftu i nie ma większych wątpliwości, że w Redmond trwają intensywne prace, by śladem Apple w sposób bardziej udany niż dotychczas przenosić Windowsa i developerów na ARM. 

Pomniejsze usprawnienia przekładające się na wzrosty wydajności dodano także w obsłudze Mono wykorzystywanego przez rozwijane z użyciem .NET-a aplikacje Blazor WebAssembly, ale też aplikacje mobilne.

.NET 7 – najważniejsze nowości

Jak już ustaliliśmy, .NET 7 to nie jest wydanie przełomowe pod względem funkcjonalności – producent najwięcej pracy włożył w omówione już zabiegi skutkujące przyśpieszeniem frameworka. Nie oznacza to jednak, że nowości nie ma wcale. Pojawiły się na przykład poprawki w System.Text.Json – klasie wykorzystywanej do serializacji i deserializacji obiektów w JSON.

Zmiany pojawiły się także w sytuacjach, gdzie na typach generycznych przeprowadza się operacje arytmetyczne (tzw. Generic Math). Dotychczas, np. by dodać dwie liczby, konieczne było przeładowanie metody dla każdego z typów. Począwszy od .NET 7, można tego dokonać z użyciem jednej metody. To tylko przykład – nowości w Generic Math jest bowiem więcej i poświęcono temu cały osobny wpis blogowy.

Liczne nowości pojawiły się także wśród wyrażeń regularnych oraz API. Zainteresować może także świeża możliwość ułatwionego publikowania aplikacji do postaci skonteneryzowanej, czego dokonuje się z użyciem dotnet publish. .NET 7 to także dalsza integracja z .NET MAUI, frameworkiem, dzięki któremu można rozwijać wieloplatformowego UI (jedno API dla Windowsa, macOS-a, Androida i iOS-a) aplikacji z użyciem wyłącznie C# i XAML-a. 

Jak widać, choć w tym wydaniu .NET 7 Microsoft skupił się na wydajności, to funkcjonalnych zmian w samym frameworku także się pojawiło się sporo. Z ich pełną listą zapoznać można się dzięki dokumentacji.

Zobacz też:

<p>Loading...</p>