Slovenská verzeSK

Velkolepý příchod .NET 6

Nová verze frameworku .NET 6 klepe na dveře a s jeho příchodem se alespoň na chvíli zastaví vývojářský svět. Po dlouhé době se dočkáme stabilní verze produktu, která do vývojářských dílen přinese stabilitu a klid, který mohou vývojáři využít ke splátce technického dluhu. V tomto speciálu Dotnet News se podíváme na to, co nás v listopadu čeká.

nenechte si ujít

Přednáška: Minimal APIs v .NET 6.0

🗓️ Online 4. listopadu 2021, od 10 hodin

S příchodem .NET 6 se můžeme těšit na zcela nový způsob definice REST API. Nečekejte na oficiální release a připojte se k on-line přednášce, během které tuto novinku budu ukazovat.

Registrace zde

Obsah speciálu

⭐ Stabilizace frameworku s .NET 6

Microsoft 10. srpna vypustil již sedmé a poslední preview nového frameworku .NET 6. Vývojáři mají poslední a velmi malou šanci ovlivnit jeho konečnou podobu. Poté Microsoft vydá dvě RC verze a nakonec se dočkáme finálního LTS releasu. Nová verze .NETu přinese zejména stabilitu a splátku technického dluhu v oblasti runtimů. Proklamovaný „One .NET“ se konečně stane skutečností a vývojáři z celého světa se v blízké době na této verzi potkají. Podpora starého .NET Core 2.1 skončila v srpnu, .NET 5 přijde o záplaty v polovině února 2022 a .NET Core 3.1 na konci roku 2022. Dříve či později budeme všichni nuceni updatovat své projekty a je milé poznamenat, že nová LTS verze nám poskytne podporu až do listopadu 2024.

Tři roky dlouhá podpora nám dá čas konečně vydechnout a věnovat se rozvoji aplikací namísto neustálého přepínání verzí frameworku a přepisování jinak fungujícího kódu. Změn navíc nebude mnoho a migrace z .NET 5 proběhne hladce. Nová verze dotnetu bude svázaná též s novou verzí jazyka C# 10.0 a Visual Studiem 2022. Z funkčního hlediska Microsoft otevře dveře minimalistickému nastavení projektů a pro nadšence do Blazoru též přinese řadu drobných funkcionalit. S nadsázkou se tedy .NET 6 zapíše do dějin jako dlouhou dobu potřebná stabilizace vývojářského stacku.

Plánujete-li migrovat ze starších verzí frameworku, mrkněte na mé školení zaměřené na migraci.

ŠKOLENÍ - Migrace .NET Core 2.x > 3.x > 5.x > 6.x

Během půldenního školení si ukážeme změny a vylepšení, které vás neminou s přechodem na novější verzi webového frameworku ASP.NET Core.

Více o školení

⭐ Minimalismus v .NETu

Projektové šablony v .NET Core si vývojáři od samého počátku chválí. Oproti tradičnímu frameworku jsou mnohem srozumitelnější a Microsoft věnuje mnoho úsilí, aby tomu tak i nadále zůstalo. Důkazem je nedávné představení generického host prostředí a jeho univerzální využití pro různé druhy aplikací. Kombinace řady návrhových vzorů umožnila velmi jasnou a srozumitelnou konfiguraci projektů včetně nastavení IoC kontejneru. Oproti jiným platformám .NET zaostává jen v drobném detailu. Zatímco alternativní frameworky jsou konfigurovatelné na jednom místě a v jednom souboru, .NET konfigurace je separována v Program.cs a Startup.cs. Druhý jmenovaný soubor je navíc typický jen pro webové aplikace. To se teď radikálně změní.

Prvotní motivací pro zjednodušení se stala vývojářům z Redmondu webová API. Bez nich se dnes neobejdeme ať už jde o výměnu dat nebo poskytnutí dat pro různé UI aplikace včetně Blazoru. Inspirací se stal zřejmě Express.js a jemu podobné frameworky, protože výsledek je nadmíru podobný. Od nové verze .NETu budeme schopni designovat REST API v jediném souboru pomocí nové třídy WebApplication. To s sebou nese nejen jednodušší proces návrhu, ale i definitivní eliminaci zbytečného MVC frameworku. Nutno dodat, že tato cesta je zatím opt-in. Nadále bude možné udržovat HTTP API i v tradiční podobě pomocí controllerů.

V Preview 7 Microsoft přišel s nečekaným a v celkem logickým závěrem. Když už umíme definovat v jednom souboru Web API, proč bychom tak nemohli definovat i jiné webové aplikace? A tak se rozloučíme s třídou Startup.cs a nově si vystačíme s konfigurací aplikace v jediném souboru - Program.cs. Díky funkcionalitě Top-Level Statements navíc nebudeme potřebovat vytvářet C# třídu a obligátní metodu Main. Jednoduché, čisté a pro některé vývojáře dozajista i matoucí.

⭐ Entity Framework Core bez radikálních změn

Poslední verze EF Core 5.0 přinesla širokou paletu nových funkcí a díky zacílení na .NET Standard 2.1 si ji lze vychutnat i ve starší verzi .NET Core 3.1. Nová verze EF Core 6 bude dostupná pouze v .NET 6 a bez migrace projektu si tak nové funkce vývojáři nevyzkouší. Naštěstí není třeba zoufat, protože zásadních funkcionalit v nové verzi ORM mnoho není. Stejně jako v případě celého .NET ekosystému se vývojáři zaměřili zejména na odstranění chyb, vylepšení stávající implementace a zlepšování výkonnosti. Přechod z EF Core 5 bude v konečném důsledku zcela hladký a motivací nám bude zejména stabilizace v podobě LTS až do listopadu 2024.

Chcete-li vstoupit do světa EF Core, pomůže vám mé jednodenní školení.

⭐ Budoucnost bez .NET Standardu

Microsoft představil před více než pěti lety .NET Standard jako sadu univerzálních API, které zajišťují vzájemnou kompatibilitu mezi různými frameworky. V současné době již přestal dávat smysl, jelikož poslední verze 2.1 nenašla podporu v .NET Frameworku a samotný .NET Framework nechce Microsoft dále rozšiřovat. Nový .NET 5 vyšel po vlastní cestě.

Bylo by však nefér pohřbít .NET Standard v mauzoleu dějin. Vytváříte-li stále NuGet balíčky distribuované pro tradiční .NET Framework, pak zřejmě budete i nadále využívat .NET Standard 2.0 jako základní TFM. Verze .NET Standard 2.1 bude též vhodná tam, kde budete chtít zajistit podporu pro aplikace postavené nad .NET Core 3.1. Naopak pro vývojáře, kteří půjdou výhradně cestou .NET 5, .NET 6 a novějších už .NET Standard přestane dávat smysl.

Nové C# knihovny nyní budeme cílit na konkrétní verze .NETu, stejně jako v případě running projektů. V praxi bude knihovna napsaná pro určitou verzi frameworku spustitelná vždy ve stejné a vyšších verzích projektů díky zpětné kompatibilitě. Když tedy vytvoříte knihovnu pro .NET 5, budete ji moci používat v .NET 6, .NET 7 a vyšších verzích projektů. Dostáváme se tedy do podobné situace, jaká panovala na počátku 21. století v tradičním frameworku.

Zajímáte-li se o tvorbu univerzálních knihoven, naplánovaných úloh nebo nástrojů, vřele doporučuji mé školení zaměřené na tooling v .NETu.

⭐ Blazor jen do deštivého počasí

O budoucnosti Web Assembly se poslední měsíce vedou dlouhé diskuse. Tak se už zdá, že si WASM vytváří své místo v komunitách zaměřených na gaming a těžbu kryptoměn, o využití v tradičním webu se dá ale těžce spekulovat. Roadmapa poslední měsíce nevnáší příliš mnoho jistot a žádané oblasti jako exception handling nebo module linking jsou stále nedokončené. Vedle oblíbeného Rustu si .NET platforma s Blazorem vede překvapivě dobře a snaží se k sobě strhnout pozornost vývojářů. Vývojáři se zalíbením v JavaScriptu jsou však vůči Blazoru zdá se imunní a odvahu vydat se touto cestou tak mají zejména vývojářské týmy, které tíhnou k .NETu a všeho JavaScriptu světa se štítí. Typickou základnu příznivců tvoří vývojáři přecházející z desktopu do webového prostředí, kteří považují Blazor jako menší zlo v kontrastu s Javascriptem. Zda bude Microsoftu tato malá skupina vývojářů stát za udržování frameworku lze jen těžko odhadovat. S ohledem na chystaný .NET 6 elánu neubývá a vývojáři se i tentokrát dočkají mnoha Blazor novinek, které na projektech zajisté ocení. Za sebe si dovolím další rok strčit hlavu do písku a Blazor na sebe ani v deštivém počasí neobléknu.

⭐ Visual Studio 2022 přešlapuje na místě

S velkou slávou se vývojáři dočkají i nové verze Visual Studia. Konkrétně v17.0 označovaná též jako Visual Studio 2022 vyjde jak pro platformu Windows tak pro macOS. Marketingově nás Microsoft pod rouškou lehce fialových barev láká na 64-bitový upgrade, podporu C++ 20 a údajně doposud nejlepší IntelliCode s ultimátním laděním aplikací. V praxi Microsoft skutečně využívá strojového učení za účelem generování větších bloků kódu, avšak stále zapomíná na základní funkcionality, které například konkurenční Rider využívá několik let. Na jedné straně tak VS dokáže generovat for cyklus s ohledem na napsaý kód, na straně druhé stále nedokáže automaticky napovídat statická rozšíření, na kterých je valná část .NETu postavena. Dá se obecně říci, že VS 2022 nabízí mnoho pokročilých funkcí, které vývojáři v praxi nebudou často používat a dlouhodobě žádaných funkcí se opět nedočkáme. Milé drobnosti jako drag and drop breakpointů tak potěší spíše dlouholeté uživatele Visual Studia, než pokročilé vývojáře zvyklé na rozšíření ReSharper nebo na konkurenční prostředí Rider.

V případě platformy macOS byla nová verze Visual Studia zastřena hromadou tajností a přístup k Preview byl umožněn jen omezenému množství vývojářů. Demo na mě ani tři měsíce před vydáním nepůsobilo příliš dokončeně a z hlediska funkčnosti nedošlo oproti předchozí verzi téměř k žádným novinkám. Microsoft sice pár nových funkcí přidal, principielně ale stále ponechal v pozadí silný zápach původního Xamarin Studia. VS for Mac je tak stále těžkopádně ovladatelné, nabízí nelogické klávesové zkratky a vůbec jde cestou zcela odlišnou než vlajkové IDE pro Windows. Jediným společným prvkem zůstává název a barevná kombinace.

⭐ Rider spasitel

Rider je alternativní IDE prostředí pro vývoj .NET aplikací, které mohou vývojáři používat na platformách Windows, Linux a macOS. Na rozdíl od Visual Studia je IDE na všech platformách totožné a až na drobné detaily nabízí stejné funkce. Společnost JetBrains, která za produktem stojí, přináší minimálně dvakrát do roka větší release obsahující mnoho vylepšení. Na pravidelné bázi pak uvolňuje drobné záplaty. Odvážnější vývojáři mohou vstoupit do Early Access programu a těšit se méně stabilní preview verzi IDE.

Rider z hlediska funkcí dávno vystoupil ze stínu Visual Studia a představuje jedničku nejen z hlediska code discovery a refactoringu. Oproti VS není Rider zatížen snahou podporovat prehistorické typy projektů a vyznačuje se tak velmi hbitým chodem a krátkou reakční dobou. Poslední verze opět ukázala Visual Studiu záda v mnoha oblastech. Zjevné je to například u Open API Specifikace. Zatímco vývojáři v Redmondu se rozkoukávají a přidávají do šablon projektů Swagger, IDE od JetBrains už umí v náhledovém okně reflektovat webové endpointy a zobrazit jejich výčet včetně pohodlného debugování integrovaným HttpClientem.

Zatímco Visual Studio se poslední měsíce snaží generovat kód na základě strojového učení z velké codebase na githubu, Rider nadále volí tradiční přístupy. Doposud se mu tato strategie vyplácí, avšak Microsoft má v ohni želízka, která mohou do budoucna situaci radikálně změnit. Výhodu má MS i jakožto tvůrce frameworku a jazyka C#, kterou proměňuje v podobě včasných Preview verzí IDE. Rider je v tomto ohledu slepý a ne zcela vhodný pro experimentování s preview verzemi C# nebo frameworku jako takového. Hledáte-li však IDE nadupané funkcemi, které Vás pohladí rychlostí a plynulým chodem, Rider na tomto světě nemá konkurenci.

⭐ Xamarin.Forms se stěhují na MAUI

MAUI je poslední střípek ve skládačce .NET 6. Ať už je název jakkoliv hloupý, odráží přesně to, čím skutečně je. MAUI je multiplatformní App UI a poslouží ke stavbě nativních aplikací pro mobilní a desktopové aplikace. Jako kladivo a hřebík jsou v tomto případě C# a XAML. Z popisu znalý vývojář tuší, že Microsoftu přestal lahodit název Xamarin.Forms a místo toho potřeboval naznačit určitou evoluci a přinést na pár let nový velký pojem do světa .NETu. Tak jednoduché to ale není, protože .NET MAUI skutečně ušel velký kus cesty. Oproti Xamarin.Forms je vhodný pro vývoj desktopových aplikací pro různé platformy a kromě společné multiplatformní code base má vývojář stále volné ruce pro psaní platformě specifického kódu. Pro psaní kódu může vývojář volit buď paradigma MVVM nebo MVU. Pro přechod z Xamarin.Forms bude k dispozici .NET upgrade assistant a pro nové vývojáře se možná dočkáme i použitelné dokumentace. S tou to totiž vypadá zatím hodně bledě.

📆 Zapište si... 9. listopadu 2021

Od 9. do 11. listopadu se bude konat tradiční online konference Dotnet Conf a právě v rámci ní bude představena finální verze .NET 6.

⭐ Závěr a podzimní školení

Nová verze frameworku .NET 6 je z mého pohledu kriticky důležitá. Po dlouhých měsících dostane celá komunita v podstatě 3 roky na to, aby aktualizovala a stabilizovala své aplikace na LTS verzi frameworku. Spolu s tím vývojář dostane řadu výkonnostních vylepšení a zpřístupní si funkcionality jazyka C# 10. Migrace bude náročnější zejména pro vývojáře, kteří stále přešlapují na verzích 2.1 a 2.2. Z verze 3.1 už bude migrace výrazně snazší. Všechna má školení aktualizuji a promítám do nich novinky, které .NET 6 přinese. Přestože ještě není .NET 6 venku, už teď se na mých podzimních školeních dozvíte, jaké změny frameworku si ohlídat.

ŠKOLENÍ - Přehled podzimních školení

Chcete-li se zdokonalit v psaní .NET aplikací, doporučuji též má školení zaměřená na tooling a pokročilá témata. Z RESTových API si můžete nadále střihnout trojkombinaci Design + Vývoj + Testování API. Školení na sebe dobře navazují a dají se absolvovat i nezávisle. Pro fajnšmekry mám připravené téma gRPC a pro všechny vývojáře nakonec i oblíbený ORM Entity Framework Core, který školím už šestým rokem. Happy Coding!

Přehled všech školení
Miroslav Holec

Miroslav Holec

14. září 2021

Článek se vztahuje k verzi produktu .NET 6
Loading