Build, .NET Core a na co se můžeme těšit

Tomáš Herceg       07.05.2019       C#, .NET, .NET Core       11973 zobrazení

První den vývojářské konference Build je za námi a s ním i mnoho novinek a oznámení, které se týkají různých oblastí, ať už cloudu, Office a Windows, tak samozřejmě i .NETu. Stejně jako minulý rok jsem i letos sepsal novinky, které vnímám jako nejdůležitější z pohledu .NET vývojářů, a přidal i své vlastní “informované odhady”.


.NET Core 3.0

Na minulém Buildu byl odhalen .NET Core 3.0 a asi nejzajímavější zprávou byla podpora Windows Forms a WPF. Od té doby bylo vydáno několik preview verzí .NET Core 3.0, kde jste si tyto technologie mohli vyzkoušet. Trochu problematické je to ještě s toolingem ve Visual Studiu, zejména podpora designerů, na čemž se ještě pracuje, ale počítá se s tím, že se designery budou chovat stejně jako kdysi. Zároveň byly obě technologie zveřejněny na GitHubu, takže pokud v nich najdete nějaké bugy, můžete je nahlásit, případně rovnou opravit.

Nově byl oznámen termín vydání ostré verze .NET Core 3.0, a sice září 2019. Zároveň bylo uvolněno páté preview.

V listopadu 2019 by pak měla vyjít verze 3.1, která bude mít příznak LTS, tedy long-term support.


Co bude dál?

.NET Framework je již hotový a bylo oznámeno, že se do něj nebudou přidávat další funkce – budou se v něm samozřejmě nadále odstraňovat bezpečnostní a jiné kritické chyby, ale žádný rozvoj už nelze čekat. Důvodem je hlavně zpětná kompatibilita – každý zásah do runtime změní v určitých krajních případech chování nebo performance, což má různé negativní dopady na existující aplikace.

U .NET Core si aplikace může nést svou vlastní verzi runtime, a na jednom počítači může být runtime nainstalován ve více verzích, čímž se riziko chyb způsobených upgradem značně snižuje – pokud aplikace s novým runtimem nefunguje, lze jí snadno říct, aby se spouštěla se starší verzí, a zároveň ji můžete vždy dodávat s runtimem, proti kterému byla otestována.

Dalším důležitým oznámením bylo, že technologie, které na .NET Frameworku zbyly a které na .NET Core zatím nemají ekvivalent, se již portovat nebudou – jedná se hlavně o ASP.NET Web Forms, WCF a Workflow Foundation. Bylo by to extrémně pracné, trvalo by to dlouho, a zájem o tyto technologie není příliš velký.

Pokud jde o ASP.NET Web Forms, tak zde jsou v podstatě dvě možnosti. Buď aplikaci začnete přepisovat do nějaké modernější technologie, pravděpodobně s využitím nějakého javascriptového frameworku, případně Blazoru, což ale bude práce na roky, nebo můžete začít provádět postupný upgrade s využitím DotVVM. V praxi to funguje tak, že do ASP.NET aplikace přidáte NuGet balíček DotVVM.Owin, díky čemuž můžete nové stránky začít psát v DotVVM, zatímco staré stránky budou stále fungovat. Postupně můžete jednu po druhé přepisovat, přičemž deployment model, autentizace ani žádné jiné věci v aplikaci se nijak nemění. Časem, jakmile budete mít aplikaci prostou všech částí psaných ve Web Forms, budete moci projekt přepnout na .NET Core. Není to samozřejmě jednoduchá ani rychlá cesta, nicméně její velkou výhodou je to, že aplikace stále funguje a kromě postupného upgradování můžete plynule přidávat i nové funkce. A velmi pravděpodobně s tím bude méně práce, než aplikaci přepsat kompletně. DotVVM se navíc nedávno stalo členem .NET Foundation, což mu doufejme pomůže zajistit mnohem větší komunitu uživatelů a tím pádem i rychlejší vývoj.

Pokud uvažujete o Blazoru, pak je nutné uvědomit si, že v rámci .NET Core 3.0 bude uvolněna pouze server-side část, která vyžaduje SignalR spojení a nevyužívá web assembly. Klientský mód postavený na web assembly bude do ostrého provozu uveden později, pravděpodobně až příští rok. Zároveň je zatím dost obtížné odhadovat, jak bude na Blazor nahlížet neMicrosoftí komunita – to totiž bude pro úspěch Blazoru klíčové. Technologie, které vzešly z dílny Microsoftu a které nebyly zbytkem světa přijaty kladně, jako třeba Silverlight, se nikdy neprosadily. Zatím bych tedy doporučoval s adopcí Blazoru ještě vyčkat, zejména pokud jde o rozsáhlé nebo jinak kritické aplikace.


.NET 5.0? Vážně?

Aktuálně existují tři nezávislé runtimy .NETu – .NET Framework, .NET Core a Mono, na němž stojí Xamarin. Tyto runtimy sice sjednocuje .NET Standard, nicméně to není runtime jako takový - je jen sada API, proti níž lze kompilovat aplikace a knihovny.

Nicméně v budoucnu se plánuje sjednocení do jediného runtime s názvem .NET 5 (který vzejde z .NET Core) a také k využívání jednotného toolingu (což zřejmě přijde dříve, protože to je jednodušší). Číslo 5 bylo vybráno proto, že je vyšší než 4.8, což je aktuální verze .NET Frameworku.

Měla by také existovat jedna implementace BCL (Base Class Library), která bude stále kompatibilní s .NET Standard, nicméně kvůli přidání nových funkcí do C# 8 se bude jednat o novou verzi .NET Standard 2.1, která již nepoběží na .NET Frameworku. Týká se to již ASP.NET Core 3.0 a dost možná i Entity Framework Core 3.0, které budou kompilované proti .NET Standard 2.1, takže podpora .NET Frameworku zde již nebude.

Zároveň se plánuje interoperabilita s Javou a Swiftem, což bude zajímavé hlavně pro mobilní scénáře.

.NETu 5.0 bychom se měli dočkat koncem roku 2020 a další verze by měly vycházet s roční kadencí, přičemž každá druhá bude LTS. Uvidíme, jak se tento plán podaří splnit.


Další novinky

Kromě toho bylo uvolněno do ostré verze několik nových parádiček, které možná znáte z dřívějška – především Live Code Share a IntelliCode, vylepšená IntelliSense postavená na machine learning modelu sesbíraném z tisíců open source projektů. Hodně pozornosti bylo také věnováno knihovně ML.NET, která se dočkala verze 1.0.

Velmi mě také zaujalo oznámení týkající se Azure SQL Database – byl přidán cenový model serverless, který se hodí u databází s obtížně predikovatelnou a nepravidelnou zátěží, kde je problematické napevno rezervovat DTU. V rámci tohoto modelu se bude platit za využití paměti a CPU a sice po sekundách, přičemž databáze se automaticky “pauzne” ve chvíli, kdy není využívána. Mohlo by to pomoci snížit náklady na databázi u aplikací, které jsou naštěvované jen zřídkakdy.

Zároveň bude možné SQL Database provozovat na edge zařízeních postavených na architektuře ARM, a to jak na Windows, tak na Linuxu.


dvě konference o .NET Core v červnu

Corestart a .NET Core Summer Event

Pokud vás tato témata zajímají, určitě si nenechte ujít konferenci Corestart 3.0, kde uvidíte všechno, co na nás chystá .NET Core 3.0, pohromadě, a dále .NET Core Summer Event, kde budete mít příležitost potkat se s Čechy z .NET týmu osobně a nahlédnout pod pokličku toho, jak vývoj .NETu vypadá.

Registraci na obě tyto akce najdete na webu www.corestart.cz.

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

Příspěvky zaslané pod tento článek se neobjeví hned, ale až po schválení administrátorem.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback