Dajbych.net


Co je nového v .NET 8?

, 2 minuty čtení

net2015 logo

.NET 8 přináší další řadu novinek. Jednou z nich je možnost zkompilovat ASP.NET Core aplikaci v režimu AOT (ahead-of-time). V tomto režimu ale na MVC, Blazor nebo SignalR rovnou zapomeňte. Naopak odměnou vám bude aplikace, která bude menší, bude zabírat méně paměti a bude startovat výrazně rychleji. Kromě toho přináší .NET 8 také možnost snadných generování náhodných řetězců. A stranou není ani C#, který ve své 12. verzi zásadním způsobem zjednodušuje zápis třídy.

Frozen collections

.NET obsahuje nové kolekce typu

Možná vás napadne, proč tomu tak je, když už .NET přece obsahuje

Odpověď je ve způsobu jejich použití. Frozen kolekce jsou optimalizované na rychlost čtení. Hodí se tak například pro konfiguraci aplikace, která se vytváří jen při jejím startu a často se z ní čtou hodnoty. Vytváření takové kolekce je ale časově náročnější, než v případě immutable kolekcí.

RandomNumberGenerator.GetString

Generování náhodných tokenů je v .NET 8 přímočaré:

var token = RandomNumberGenerator.GetString("abcdefghijklmnoqrstuvwxyz0123456789", 32);

Hezké na tom je, že můžete přímo definovat, jaké znaky se mají v tokenu vyskytovat.

Co je nového v C# 12?

Primary constructors

Parametry konstruktoru třídy se často jen kopírovaly do jejího těla, aby byly později dostupné jejím metodám. Teď jsou parametry konstruktoru dostupné všem metodám po celou dobu životnosti třídy.

class Car(string brand, Color color) {
    public string Brand => brand;
    public Color color => color;
}

Collection expressions

Kdykoliv potřebujeme vytvořit kolekci, můžeme použít zkrácený zápis [] podobně jako v JavaScriptu. S touto novou syntaxí se dobře kloubí i možnost vytvářet nové instance třídy bez uvedení jejího typu na místech, kde je typ předem známý.

List<Car> cars = [
    new("Jaguar", Color.DarkGreen), 
    new("Land Rover", Color.SandyBrown), 
    new("Toyota", Color.Silver)
];

Nezapomeňte si také přečíst tradiční souhrn výkonnostních vylepšení.