Miroslav Holec
Premium

ASP.NET Core 2.1 RC, EF Core 2.1 RC a co nás čeká v .NET Core 3.0

Miroslav Holec   8. května 2018

Článek se vztahuje k verzi produktu (ASP).NET Core 2.1 RC

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.

Webový framework ASP.NET Core 2.1 byl oficiálně uvolněn v RC verzi a během dalších pár týdnů bychom se měli dočkat i finální verze. Kromě toho byla na konferenci Build oznámena roadmapa a novinky, které se chystají v .NET Core 3.0.

Novinky na .NET platformě

Za poslední rok začal růst počet aktivních vývojářů na platformě .NET a podle statistik každý měsíc přibyde kolem 1 milionu aktivních .NET vývojářů. Microsoftu se daří i v oblasti open-source, ve které se dočkal téměř 20 tisíc kontribucí od více než 3700 firem z celého světa. Popularita navíc zřejmě i poroste s postupným uvolňováním nových verzí .NET Core a penetrací Azure a .NET Core na jiné platformy.

Uvolněno .NET Core SDK 2.1.300 - RC1

Microsoft nyní uvolnit novou verzi .NET Core SDK 2.1 RC, jejíž součástí je:

  • .NET Core SDK 2.1.300-rc1-008673
  • .NET Core Runtime 2.1.0-rc1
  • ASP.NET Core Runtime 2.1.0-rc1-final

O novinkách v této oblasti jsem napsal článek a povídal na přednášce v HAVITu.

Nová verze SDK je dostupná tradičně pro platformy Win/Linux/macOS. Podpora .NET Core 2.1 je dostupná ve Visual Studio 2017 15.7, Visual Studio for Mac 7.5, nebo ve Visual Studio Code.

Lepší performance

Na přednášce bylo zmíněno, že naměřený build time .NET Core 2.0 se oproti předešlé verzi stáhl na pětinu času a v případě .NET Core 2.1 dokonce zhruba na desetinu. Z dalších měření vyplývá, že nové ASP.NET Core 2.1 aplikace nad .NET Core 2.1 budou schopné odbavit až o 12% více požadavků za sekundu než v případě aktuální verze 2.0.

Podpora Linux ARM32, Alpine

.NET Core 2.1 je nyní dostupný také pro Raspberry PI 2+ (respektive systémy Linux ARM32), Win10 IoT, Ubuntu 18.04, Alpine 3.7 a další. Aktualizovány byly Docker images pro konzolové aplikace i webové aplikace ASP.NET Core 2.1.

Nové funkce

Kromě technických novinek přibylo mnoho funkčních novinek (oproti 2.1. preview-2 nic nového), odkazuji proto na oficiální release info k 2.1.prev2 na blogu:

a nejnovější release info k RC verzi.

Osobně bych zdůraznil novinku v podobě .NET Core Global Tools, které umožňují instalaci dodatečného toolingu kolem .NET Core aplikací. Jedním takovým nástrojem jsou například Entity Framework Core Tools, které se dříve instalovali jako NuGet balíček, který rozšířil funkcionalitu nástroje dotnet v CLI. Od verze .NET Core 2.1 bude možné použít dotnet ef prakticky kdekoliv podobně jako dotnet. Není tajemstvím, že inspiraci si tento toolset našel u npm global tools.

Pro vývojáře webových API přibyl ve Visual Studio nový "browser" označovaný jako HTTP CLI, který umožňuje na kolorizovaném příkazovém řádku testovat chování API endpointů.

Entity Framework 2.1 RC

Vedle ASP.NET Core 2.1 RC vyšla i nová verze EF Core 2.1 RC, kterou Microsoft doporučuje použít i v produkčním prostředí po řádném otestování. Novinek v EF Core 2.1 je oproti 2.0 skutečně mnoho a v případě vývoje nových aplikací pro EF Core nastal dle mého názoru prime time. Pokud vyloženě nemáte důvod použít EF 6, už bych nad EF Core uvažoval jako nad první volbou. Finální verze EF 2.1 by měla vyjít do konce první poloviny roku 2018 dle původních plánů.

.NET Core 3.0

Část přednášky byla věnována i oznámení podpory desktopových Windows aplikací v .NET Core 3.0 (Windows Forms, UWP XAML, WPF). Toto oznámení je velmi důležité, protože z povahy věci můžeme očekávat rychlejší růst .NET Core a stále větší podporu Windows specific API. Je třeba říct, že i v .NET Core SDK 2.1 se začínají objevovat specifická API bez podpory některých platforem (nejsou součástí .NET Standardu). Běh na jiných platformách je možný s využitím cross compilation, nicméně samotný vývoj bude končit na výjimkách PlatformNotSupportedException.

Samotný balík pro podporu Windows desktop aplikací bude dodán jako Windows Desktop Packs a bude podporován pouze na platformě Windows. S verzí .NET Core 3.0 se plánuje uvolnění nové verze .NET Standardu (nicméně je zde otázka, jaké cross-platform API budou její součástí). V případě .NET Core 3.0 s Windows Desktop Packem bude možné používat i současný Entity Framework 6. Nové funkce v EF Core však není plánováno do EF 6 přenášet (nebo určitě ne v plném rozsahu).

Z ukázek na Build 2018 vyplývá, že WinForms aplikace běžící nad .NET Core budou i výrazně rychlější. Publikace aplikace bude možná do jednoho EXE souboru, tzv. desktop-single-file.

Microsoft i tentokrát zdůrazňue, že tradiční .NET Framework pokračuje ve svém životě a již nyní se plánuje release verze .NET Frameworku 4.8, která by měla vyjít během následujících 12 měsíců. Podle mého osobního názoru lze však očekávat, že nově vznikající moderní aplikace již nebudou v blízké době tradiční .NET Framework potřebovat.

Všechny výše uvedené plány kolem .NET Core 3.0 berme zatím s rezervou, protože Microsoft reaguje velmi pružně na potřeby komunity a je dost možné, že ve finále bude ledacos jinak. První preview .NET Core 3.0 bychom se mohli dočkat koncem tohoto roku, konečné podoby pak během roku 2019.