Miroslav Holec
Premium

ASP.NET Core 3.0 - Update Guide

Miroslav Holec   11. března 2019

Článek se vztahuje k verzi produktu ASP.NET Core 3.0

Tento článek je již zastaralý. Článek nemusí popisovat aktuální stav technologie, ideální řešení a můj současný pohled na dané téma.

Pokud vyvíjíte aplikace a nástroje v .NET Core nebo webové aplikace v ASP.NET Core, čeká vás s příchodem [ASP].NET Core 3.0 několik novinek a změn. V této příručce naleznete kompletní přehled novinek, které byste měli znát a nenechat si je uniknout.

Tato příručka je průběžně aktualizována vzhledem k tomu, jak se objevují další zprávy a novinky kolem ASP.NET Core 3.0

Dostupnost .NET Core 3.0

Finální verze frameworku .NET Core 3.0 bude vydána v druhé polovině roku 2019 společně s updatem VS 2019 a dalším toolingem. Dočkáme se také ASP.NET Core 3.0, EF Core 3.0, podpory EF 6 v .NET Core 3.0 a nové verze NET Standard 2.1. Oficiální datum vydání bude oznámen na konferenci Build 2019 na začátku května.

Nejdůležitější změny v [ASP].NET Core

Pro ty z vás, kteří dáváte přednost rychlému přehledu před detaily jsem sepsal v bodech to nejdůležitější, co byste měli vědět. Brzy doplním podrobnější detaily ke každému bodu.

  1. NET Core 3.0 podporuje .NET Standard 2.1 a tato verze .NET Standardu již není podporována v klasickém .NET Frameworku.
  2. NET Standard 2.1 přináší cca 3000 nových API, která jsou delší dobu používána již v .NET Core.
  3. Klasický .NET Framework je od verze 4.8 pouze záplatován, ale nedočkáme se žádných (zajímavých) novinek. Některé nové funkce jazyka C# 8.0 nejsou a nebudou v .NET Frameworku již dostupné. Plné podpoře C# 8.0 a novějších se budou těšit jen vývojáři v .NET Core.
  4. Microsoft se zavazuje udržovat NET Framework při životě společně s MS Windows. Chlácholí faktem, že sám NET Framework používá v řadě svých produktů, je nainstalován na miliardách strojů a vývojáři tak nemusí fakticky svá řešení migrovat do .NET Core.
  5. NET Core 3.0 umožňuje vyvíjet Windows Forms, UWP a WPF aplikace. Tento typ aplikací je možné vytvářet a spouštět pouze na platformě Windows a vývojář má plný přístup ke všem W10 API. Aplikace je možné publikovat do jednoho exe souboru.
  6. Webový framework ASP.NET Core 3.0 vyžaduje .NET Standard 2.1 a tudíž není možné vyvíjet ASP.NET Core 3.0+ aplikace nad klasickým .NET Frameworkem.
  7. Entity Framework 6 je možné použít v .NET Core aplikacích a to nezávisle na platformě.
  8. Pro vývoj webových řešení přibyla nová možnost použít Razor Compoments, což je v zásadě evoluce projektu Blazor. Pod pokličkou je použita technologie SignalR a na klientské straně se nepoužívá WebAssembly.
  9. NET Core 3.0 podporuje i open-source framework ML.NET (Azure Machine Learning).
  10. Tzv. Shared Framework Microsoft.AspNetCore.All již není nadále doručován, místo něj se používá pouze Microsoft.AspNetCore.App
  11. Shared Frameworks se již nezapojují csproj pomocí , ale nově se používá .
  12. Entity Framework Core 3.0 je vyjmut ze shared frameworku Microsoft.AspNetCore.App a musí se instalovat samostatně. Stejně tak je vyjmut i Newtonsoft.Json.
  13. Součástí EF Core 3.0 je podpora pro CosmosDB.

Co znamená příchod .NET Core 3.0?

Když vyvíjíte novou aplikaci

S příchodem verze .NET Core 3.0 se výrazně zjednodušuje rozhodování v souvislosti s volbou frameworku pro vývoj nových aplikací. Chcete-li napsat novou aplikaci (desktop, web, konzole, wpf), v podstatě jasnou volbou je .NET Core 3.0. Pouze .NET Core bude do budoucna dynamicky rozvíjen, doplňován o nové funkce a bude plně podporovat novinky jazyka C#. Díky podpoře Entity Framework 6 se volba radikálně zjednodušuje. Vzhledem k tomu, že nové webové aplikace postavené na ASP.NET Core 3.0 už ani nebude možné psát nad .NET Frameworkem, odpadá v zásadě veškeré rozhodování.

Když máte hotovou desktop aplikaci

Máte-li již delší dobu postavenou aplikaci na tradičním .NET Frameworku, není nutné za každou cenu migrovat na .NET Core. V případě, že se tak ale rozhodnete, získáte mnoho benefitů. Získáte přístup k novým funkcím .NET Core a jazyka C#, výrazně lepší výkonnost nebo například možnost publikace do jednoho exe.

V případě rozsáhlejších projektů bych osobně počkal, zda se neobjeví automatizované nástroje pro migraci řešení. V rámci první verze .NET Core 3.0 bych s migrací celkově vyčkal, jelikož se dá očekávat, že mnoho novinek si bude muset "sednout" a nemusí fungovat optimálně. Jestliže jste na začátku vývoje a aplikace běží jen v developerském módu (neprodukčně), migrace na .NET Core se jeví jako dobrá volba.

Když máte hotovou webovou aplikaci

V případě existujících webových aplikací bude nutné provést větší množství drobných změn. Pokud ještě používáte tradiční .NET Framework, bude nutné nejprve přetargetovat projekt na .NET Core, což znamená primárně trochu kódování v csproj souboru. Dále bude nutné vyřešit chybějící reference na NuGet balíčky (což se bude lišit podle toho, jakou nyní používáte verzi a případně zda nemáte referencovaný balíček Microsoft.AspNetCore.All = více práce). Mezi chybějícími referencemi bude například EF Core, Newtonsoft JSON a další.

Nakonec bude nutné vyřešit několik chyb vznikajících během kompilace (změny v ASP.NET Core API) a doporučeno je zbavit se také hlášek ohledně obsolete API, které budou tolerovány jen dočasně. Budete-li migrovat webovou aplikaci na ASP.NET Core 3.0, můžete se na mě obrátit a celou migraci lze provést onsite během jednoho dopoledního setkání.

Příručka je nyní rozepsaná a již brzy se můžete těšit na další část, ve které budou všechny novinky rozepsány podrobněji. Zatím doporučuji dát si tuto stránku do oblíbených záložek a občas sem nahlédnout. Pokud nechcete o nic přijít, doporučuji sledovat novinky, které píšu v rámci zpravodaje Dotnet News.