Split Tech City je zajednica sastavljena od tvrtki, udruga, institucija, meetupa i pojedinaca koji su posvećeni razvoju tehnološkog sektora u Splitu i regiji.
Postani članZavršena je konferencija za predstavljanje nove .NET 5 platforme, koja je trajala od 10. -12. studenog.
.NET 5 najavljen je još prošle godine kao sljedeći korak s .NET Coreom.
Ideja je bila da će .NET 5 biti objedinjavajuća platforma za desktop, web, cloud, mobile, igre, IoT i AI aplikacije, dakle cilj je bio izvući najbolje od .NET Core, .NET Framework, Xamarina, i Mono-a te stvoriti jedinstvenu platformu .NET runtimea i frameworka. Zbog pandemije Covida-19 ujedinjenje je odgođeno za .NET 6 (trebalo bi biti objavljeno u studenom 2021.).
Pilot verzija predstavljena je već 13.10., a 10.11. je stigla finalna verzija .NET 5.0, a na samom početku konferencije Scott Hunter, direktor Program Managementa za .NET rekao je vezano za odgodu :
„Nastavljamo put ujedinjavanja .NET platforme. Naša vizija jednog .NET-a jedinstveni je skup knjižnica, alata, SDK-ova i runtimeova.”
Scott Hunter detaljno je opisao što se sve mijenja :
U .NET 5 ciljni frameworkovima navedeni su u .csproj projektnim datotekama s Target Framework Monikersima (TFM), koji su kratka kodna imena koja se koriste za identificiranje skupa API-ja ciljanih zadanim projektom.Sada razvoj aplikacije na određenoj platformi .NET 5 je naš izbor, a ne ovisno o runtime implementaciji koju koristimo za razvoj aplikacije.
Nadalje bitna je promjena po pitanju performansi pa za primjer možemo vidjeti Garbage collection(GC), kod kojeg se veliki napor ulaže u smanjenje alokacije, ne zato što je sam postupak alokacije posebno „skup“, već zbog naknadnih troškova čišćenja nakon tih alokacija.
Najbolja mjera za uočavanje promjene perfromansi je “vrijeme pauze” GC-a, što zapravo znači koliko dugo GC mora pauzirati vrijeme izvođenja kako bi mogao obaviti svoj posao.
Na .NET Core 3.1 imamo vrijeme:
Dok za .NET 5, imamo :
Just-In-Time (JIT) compiler ima mnoštvo poboljšanja koja su našla put do izdanja. Kao i kod bilo kojeg kompajlera, poboljšanja JIT-a mogu imati široko dostupne učinke. Često pojedinačne promjene imaju mali utjecaj na pojedini dio koda, ali takve promjene kada se zbroje, zbog velikog broja mjesta na kojima se primjenjuju, čine veliku razliku.
Neka od poboljšanja koja su ušla u JIT u .NET 5 su:
. dotnet / runtime # 32368 uzrokuje da JIT vidi duljinu niza kao unsigned, što rezultira mogućnošću korištenja bolje instrukcije za neke matematičke operacije (npr. dijeljenje).
dotnet/coreclr # 25458 omogućuje JIT-u upotrebu bržih usporedbi temeljenih na 0 za neke unsigned integer operacije.
Slijedi prikaz performansi;
Uočavamo da je došlo je do značajnih poboljšanja u socket performansama na Linuxu i u JSON API-u na .NET Core 3.1.
Kod .NET 5 imamo bolji JsonSerializer s poboljšanim collection handling-om i novim caching slojem.
Framework gRPC također je dobio posebnu pažnju te pokazuje značajan rast performansi u odnosu na .NET Core 3.1 (60% brže na poslužitelju, 230% brže na klijentu). Budući da gRPC koristi HTTP / 2 kao temeljni protokol, nova implementacija HTTP / 2 također je djelomično odgovorna za uočeni porast performansi.
Framework ASP.NET Core također je primio nova poboljšanja performansi i izmjene kompatibilnosti. Nove značajke uključuju Azure AD provjeru autentičnosti s Microsoft.Identity.Web podršku za paralelne pozive čvorišta u SignalR-u i otvorenu specifikaciju API-ja (Swagger) prema zadanim postavkama u ASP.NET Core API projektima. Poboljšanja performansi Blazor WebAssembly usredotočena su na složeno prikazivanje korisničkog sučelja(UI) (virtualizacija komponenata i pre-renderiranje) i JSON serializaciju. Kao rezultat toga, Blazor WebAssembly u .NET 5, 2-3 puta je brži od Blazor WebAssembly-a 3.2.
NET 5 dolazi s C # 9, novom verzijom glavnog programskog jezika .NET platforme. Postoji nekoliko novih značajki, ali ovdje ćemo prikazati neke.
Inicijalizatori objekata su poprilično sjajni. Daju klijentu vrlo fleksibilan i čitljiv format za stvaranje objekta, a posebno su dobri za stvaranje ugniježđenih objekata gdje se cijelo stablo objekata kreira u jednom potezu. Evo jednostavnog primjera:
var person = new Person {
FirstName = “Split”, LastName = “TechCity”
};
public class Person
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
}
public class Person
{
public string? FirstName { get; init; }
public string? LastName { get; init; }
}
Jedno veliko ograničenje je promjenjivost svojstava kako bi inicijalizatori objekta radili; funkcioniraju tako da prvo pozovu konstruktor objekta, a zatim se dodijele property setters-ima. Init-only svojstva riješavaju problem uvodeći init accessor koji je varijanta set accessora koji se može pozvati samo tijekom inicijalizacije objekta.
Za pisanje jednostavnog programa na jeziku C# potrebna je izuzetna količina standardnog koda no u C # 9.0 možemo jednostavno napisati svoj program:
using System;
class Program
{
static void Main()
{
Console.WriteLine(“Hello World!”);
}
}
U C # 9.0 možemo napisati samo
using System;
Console.WriteLine(“Hello World!”);
Nekoliko novih vrsta uzoraka dodano je u C # 9.0., a mogu se pogledati ovdje. Ostale promjene mogu se vidjeti na službenim stranicama.
ASP.NET Web Forms dugo je vremena bila glavna tehnologija za izgradnju dinamičkih web korisničkih sučelja(UI). S obzirom da je vezana za .NET Framework koji odlazi nećemo više moći koristiti web forms.
Međutim, ima nekoliko alternativa za izradu web korisničkog sučelja(UI). Za web aplikacije koristit će se Razor Pages, a ako želite izraditi web aplikaciju može se koristiti Blazor.
Windows Communication Foundation (WCF) – tradicionalni komunikacijski okvir za Windows također odlazi u povijest. Alternativa WCF-u koji preporučuje Microsoft je prelazak na gRPC, ali ako ste naviknuti na WCF ili se želite pripremiti za lagan prijelaz, možete korisiti open source projekt CoreWCF.
Nadam se da sam vam ovim člankom uspio približiti nekih promjene i ideju kako će .NET 5 utjecati na vaše postojeće .NET projekte i koje će vam mogućnosti nova platforma ponuditi.
Za kraj jedan od razloga zašto ne možemo zanemariti .Net ecosystem možemo vidjeti po brojkama:
.NET 5 možete skinuti ovdje.
Podijeli