Nasza strona używa cookies. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Nowości w .NET 6 i C# 10

Sprawdź, jak Microsoft zunifikował platformy .NET 6 oraz jak to wpływa na wydajność.
Nowości w .NET 6 i C# 10

8 listopada 2021 r. Microsoft udostępnił nową, już szóstą, wersję frameworku .NET. Richard Lander zapowiedział, że dostarcza ona ujednoliconą platformę do rozwijania oprogramowania dla przeglądarek, serwisów chmurowych, aplikacji desktopowych, urządzeń IoT oraz aplikacji mobilnych. Wraz z .NET 6 zawita do nas C# 10 oraz F# 6, rozwinięte o nowe funkcje. Microsoft zapowiada wsparcie .NET 6 przez następne 3 lata. O zapowiadanych zmianach pisaliśmy tutaj. Sprawdź, co faktycznie się zmieniło.


C# 10

C# 10 to przede wszystkim szereg drobnych zmian, które sumarycznie upraszczają development. Oto kilka nowości.

Rekordy wprowadzone w C# 9 były typami, które definiują kilka podstawowych zachowań dla klasy, z którą zostały użyte, np. równość na podstawie wartości pól w obiekcie. Nowością w tym wydaniu jest to, że rekordów można użyć razem ze strukturami, co tworzy bardzo proste kontenery na dane z przewidywalnym zachowaniem.

Pojawiła się też nowa składnia - !! po nazwie parametru w sygnaturze metody sprawi, że zostanie sprawdzona wartość tego parametru i zostanie rzucony wyjątek, jeżeli jest ona nullem.

Pozwoli to na zastąpienie takiego zapisu:

public SomeFunction(int id, SomeClass newObject)
{
  if (newObject == null)
  {
    throw new ArgumentNullException("newObject");
  }
  ...
}


przez

public SomeFunction(int id, SomeClass newObject!!)
{
  ...
}


Wprowadzono też global using. Dzięki takiemu zapisowi wszystkie pliki projektu będą używały przestrzeni nazw określonych z dopiskiem global, co zaoszczędzi sporo miejsca na początku każdego pliku. Podobną nowością jest możliwość określenia namespace’u na początku pliku za pomocą słowa kluczowego namespace:

Zamiast

namespace A {
  public class B {

  }
} 

można napisać:
namespace A;

public class B {

}


Usprawnienia platformy .NET

W nowym wydaniu położono duży nacisk na wydajność. Kilkaset PR-ów dotyczyło właśnie optymalizacji wydajności. Wiele optymalizacji dotyczyło zarówno kompilacji JIT jak i AOT. Kolejnym obszarem, gdzie .NET 6 jest o wiele szybszy, jest obsługa I/O, gdzie niektóre operacje przyspieszyły o rząd wielkości (a większość operacji o kilkadziesiąt procent). Jeżeli chcecie dłuższej lektury wraz z wieloma benchmarkami, to polecamy post “performance Improvements in .NET 6”.

Jedną z najbardziej ekscytujących nowości z punktu widzenia developerów jest hot reload, czyli możliwość przeładowania aplikacji bez konieczności ponownej kompilacji. Jest to lepsze rozwiązanie niż dotnet watch, który uruchamiał kompilację w przypadku wykrycia zmian w plikach. Nowa funkcja jest dostępna w Visual Studio 2022 i .NET CLI (C# i VB)

Opcją, która ucieszy natomiast DevOpsów, jest możliwość skompilowania aplikacji do pojedynczego pliku wykonywalnego. Taki plik zawiera wszystkie zależności, więc nie powinno być żadnych problemów z jego uruchamianiem. W poprzednim wydaniu taka możliwość istniała tylko dla Linuxa, a obecnie można zbudować taką paczkę również dla Windowsa i macOS. Przy tej okazji warto też wspomnieć, że sporo pracy zostało spędzone na poprawkach dotyczących działania .NET w kontenerach, chodzi m.in. o ustawianie limitów dla zasobów.

Pojawiły się też nowe API do obsługi HTTP/3, przetwarzania obiektów .NET na JSON (i w drugą stronę), czy też do obsługi operacji matematycznych.


Unifikacji ciąg dalszy

Microsoft podejmuje kolejną próbę stworzenia jednego narzędzia, które pozwoli stworzyć aplikację działającą na wielu platformach. NET Multi-platform App UI (MAUI) to zestaw narzędzi UI zbudowany na platformie Xamarin, która umożliwia tworzenie aplikacji mobilnych i desktopowych dla wszystkich systemów w ramach jednego kodu. W praktyce wreszcie wszystko będzie w jednym miejscu, co zdecydowanie ułatwi pracę. Z drugiej strony nie jest pewne czy MAUI zdobędzie popularność wśród programistów.


Podsumowanie

Zmiany w .NET 6 są raczej ewolucyjne niż rewolucyjne, idealne dla wersji LTS. Cieszy postawienie na lepszą wydajność i unifikację platformy .NET do jednego, spójnego bytu. Microsoft bardzo podkreśla też udział społeczności w procesie rozwoju wersji 6. Ma też nadzieję, że nowa wersja będzie najszybciej przyjętą do tej pory.

1 komentarz

Lubisz dzielić się wiedzą i chcesz zostać autorem?

Podziel się wiedzą z 160 tysiącami naszych czytelników

Dowiedz się więcej