Sdílet prostřednictvím


Novinky v ASP.NET Core 2.0

Tento článek popisuje nejvýznamnější změny v ASP.NET Core 2.0 s odkazy na příslušnou dokumentaci.

Razor Pages

Razor Pages je nová funkce ASP.NET Core MVC, která usnadňuje a produktivnější scénáře zaměřené na kódování stránek.

Další informace najdete v úvodu a kurzu:

metabalík ASP.NET Core

Nový metabalíč ASP.NET Core zahrnuje všechny balíčky vytvořené a podporované týmy ASP.NET Core a Entity Framework Core spolu s interními závislostmi a závislostmi třetích stran. Už nemusíte vybírat jednotlivé funkce ASP.NET Core podle balíčku. Všechny funkce jsou součástí balíčku Microsoft.AspNetCore.All . Výchozí šablony používají tento balíček.

Další informace najdete v tématu Metapackage Microsoft.AspNetCore.All pro ASP.NET Core 2.0.

Úložiště runtime

Aplikace, které používají Microsoft.AspNetCore.All metabalíc, automaticky využívají nové úložiště .NET Core Runtime Store. Store obsahuje všechny prostředky modulu runtime potřebné ke spouštění aplikací ASP.NET Core 2.0. Při použití Microsoft.AspNetCore.All metabalíku se s aplikací nasadí žádné prostředky z odkazovaných balíčků NuGet ASP.NET Core, protože už jsou umístěné v cílovém systému. Prostředky v úložišti runtime jsou také předkompilovány za účelem zlepšení doby spuštění aplikace.

Další informace najdete v tématu Úložiště runtime.

.NET Standard 2.0

Balíčky ASP.NET Core 2.0 cílí na .NET Standard 2.0. Na balíčky lze odkazovat jinými knihovnami .NET Standard 2.0 a mohou běžet v implementacích .NET Standard 2.0 kompatibilních s .NET, včetně .NET Core 2.0 a .NET Framework 4.6.1.

Metabalíc Microsoft.AspNetCore.All cílí pouze na .NET Core 2.0, protože se má použít s úložištěm runtime .NET Core 2.0.

Aktualizace konfigurace

Instance IConfiguration se ve výchozím nastavení přidá do kontejneru služeb v ASP.NET Core 2.0. IConfiguration v kontejneru služeb usnadňuje aplikacím načtení konfiguračních hodnot z kontejneru.

Informace o stavu plánované dokumentace najdete v problému s GitHubem.

Aktualizace protokolování

V systému ASP.NET Core 2.0 je protokolování ve výchozím nastavení začleněno do systému injektáže závislostí (DI). Přidáte zprostředkovatele a nakonfigurujete filtrování v Program.cs souboru místo v Startup.cs souboru. Výchozí nastavení ILoggerFactory podporuje filtrování způsobem, který umožňuje použít jeden flexibilní přístup pro filtrování mezi zprostředkovateli i filtrování konkrétních poskytovatelů.

Další informace naleznete v tématu Úvod do protokolování.

Aktualizace ověřování

Nový model ověřování usnadňuje konfiguraci ověřování pro aplikaci pomocí DI.

K dispozici jsou nové šablony pro konfiguraci ověřování webových aplikací a webových rozhraní API pomocí Azure AD B2C.

Informace o stavu plánované dokumentace najdete v problému s GitHubem.

Identity aktualizace

Usnadnili jsme vytváření zabezpečených webových rozhraní API pomocí Identity ASP.NET Core 2.0. Přístupové tokeny pro přístup k webovým rozhraním API můžete získat pomocí knihovny MSAL (Microsoft Authentication Library).

Další informace o změnách ověřování ve verzi 2.0 najdete v následujících zdrojích informací:

Šablony SPA

Šablony projektů jednostránkové aplikace (SPA) pro Angular, Aurelia, Knockout.js, React.js a React.js with Redux jsou k dispozici. Šablona Angular byla aktualizována na Angular 4. Šablony Angular a React jsou ve výchozím nastavení k dispozici; Informace o tom, jak získat další šablony, naleznete v tématu Vytvoření nového projektu SPA. Informace o tom, jak vytvořit spa v ASP.NET Core, naleznete v části Funkce popsané v tomto článku jsou zastaralé od ASP.NET Core 3.0.

Kestrel vylepšení

Webový Kestrel server má nové funkce, díky kterým je vhodnější jako internetový server. Do nové Limits vlastnosti třídy se přidá KestrelServerOptions řada možností konfigurace omezení serveru. Přidejte omezení pro následující:

  • Maximální počet připojení klientů
  • Maximální velikost textu požadavku
  • Minimální přenosová rychlost textu požadavku

Další informace najdete v tématu Kestrel Implementace webového serveru v ASP.NET Core.

WebListener se přejmenoval na HTTP.sys

Balíčky Microsoft.AspNetCore.Server.WebListener a Microsoft.Net.Http.Server byly sloučeny do nového balíčku Microsoft.AspNetCore.Server.HttpSys. Obory názvů byly aktualizovány tak, aby odpovídaly.

Další informace najdete v tématu Implementace webového serveru HTTP.sys v ASP.NET Core.

Vylepšená podpora hlaviček HTTP

Při použití MVC k přenosu nebo FileStreamResult FileContentResultnebo , teď máte možnost nastavit ETag nebo LastModified datum v obsahu, který přenášíte. U vráceného obsahu můžete nastavit tyto hodnoty s kódem podobným následujícímu:

var data = Encoding.UTF8.GetBytes("This is a sample text from a binary array");
var entityTag = new EntityTagHeaderValue("\"MyCalculatedEtagValue\"");
return File(data, "text/plain", "downloadName.txt", lastModified: DateTime.UtcNow.AddSeconds(-5), entityTag: entityTag);

Soubor vrácený návštěvníkům obsahuje odpovídající hlavičky HTTP pro hodnoty ETag a LastModified hodnoty.

Pokud návštěvník aplikace požaduje obsah s hlavičkou Požadavku rozsahu, ASP.NET Core rozpozná požadavek a zpracuje hlavičku. Pokud je možné požadovaný obsah částečně doručit, ASP.NET Core odpovídajícím způsobem přeskočí a vrátí pouze požadovanou sadu bajtů. K přizpůsobení nebo zpracování této funkce nemusíte do svých metod psát žádné speciální obslužné rutiny; je automaticky zpracována za vás.

Hostování spuštění a Application Insights

Hostitelské prostředí teď můžou během spouštění aplikace vkládat další závislosti balíčků a spouštět kód, aniž by aplikace potřebovala explicitně převzít závislost nebo volat jakékoli metody. Tato funkce se dá použít k tomu, aby určitá prostředí mohla "odlehčovat" funkce jedinečné pro dané prostředí, aniž by aplikace potřebovala předem vědět.

V ASP.NET Core 2.0 se tato funkce používá k automatickému povolení diagnostiky Application Insights při ladění v sadě Visual Studio a (po přihlášení) při spuštění ve službě Aplikace Azure Services. V důsledku toho už šablony projektů ve výchozím nastavení nepřidají balíčky a kód Application Insights.

Informace o stavu plánované dokumentace najdete v problému s GitHubem.

Automatické použití antiforgerních tokenů

ASP.NET Core ve výchozím nastavení vždy pomohlo html kódovat obsah, ale s novou verzí je potřeba provést další krok, který pomáhá zabránit útokům XSRF (cross-site request forgery). ASP.NET Core teď ve výchozím nastavení vygeneruje antiforgery tokeny a ověří je na akcích POST a stránkách formuláře bez další konfigurace.

Další informace najdete v tématu Prevence útoků založených na padělání žádosti posílané mezi weby (XSRF/CSRF) v ASP.NET Core.

Automatická předkompilace

Razor Během publikování je ve výchozím nastavení povolená předběžná kompilace zobrazení, což snižuje velikost výstupu publikování a dobu spuštění aplikace.

Další informace najdete v tématu Razor kompilace a předkompilace v ASP.NET Core.

Razor podpora pro C# 7.1

Modul Razor zobrazení byl aktualizován tak, aby fungoval s novým kompilátorem Roslyn. To zahrnuje podporu funkcí C# 7.1, jako jsou výchozí výrazy, odvozené názvy řazené kolekce členů a porovnávání vzorů s obecnými typy. Pokud chcete v projektu použít C# 7.1, přidejte do souboru projektu následující vlastnost a pak řešení znovu načtěte:

<LangVersion>latest</LangVersion>

Informace o stavu funkcí C# 7.1 najdete v úložišti Roslyn Na GitHubu.

Další aktualizace dokumentace pro verzi 2.0

Pokyny k migraci

Pokyny k migraci aplikací ASP.NET Core 1.x na ASP.NET Core 2.0 najdete v následujících zdrojích informací:

Další informace

Úplný seznam změn najdete ve zprávě k vydání verze ASP.NET Core 2.0.

Pokud se chcete spojit s průběhem a plány vývojového týmu ASP.NET Core, nalaďte si ASP.NET komunity Standup.