Dela via


Nyheter i ASP.NET Core 2.0

Den här artikeln belyser de viktigaste ändringarna i ASP.NET Core 2.0, med länkar till relevant dokumentation.

Razor Sidor

Razor Pages är en ny funktion i ASP.NET Core MVC som gör kodning av sidfokuserade scenarier enklare och mer produktiva.

Mer information finns i introduktionen och självstudien:

ASP.NET Core-metapaket

Ett nytt ASP.NET Core-metapaket innehåller alla paket som skapats och stöds av ASP.NET Core- och Entity Framework Core-teamen, tillsammans med deras interna och tredjepartsberoenden. Du behöver inte längre välja enskilda ASP.NET Core-funktioner per paket. Alla funktioner ingår i paketet Microsoft.AspNetCore.All . Standardmallarna använder det här paketet.

Mer information finns i Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0.

Runtime Store

Program som använder Microsoft.AspNetCore.All metapaketet drar automatiskt nytta av den nya .NET Core Runtime Store. Store innehåller alla körningstillgångar som behövs för att köra ASP.NET Core 2.0-program. När du använder Microsoft.AspNetCore.All metapaketet distribueras inga tillgångar från den refererade ASP.NET Core NuGet-paket med programmet eftersom de redan finns i målsystemet. Tillgångarna i Runtime Store är också förkompilerade för att förbättra programmets starttid.

Mer information finns i Runtime Store

.NET Standard 2.0

Paketen ASP.NET Core 2.0 är avsedda för .NET Standard 2.0. Paketen kan refereras till av andra .NET Standard 2.0-bibliotek och de kan köras på .NET Standard 2.0-kompatibla implementeringar av .NET, inklusive .NET Core 2.0 och .NET Framework 4.6.1.

Metapaketet Microsoft.AspNetCore.All riktar sig endast mot .NET Core 2.0, eftersom det är avsett att användas med .NET Core 2.0 Runtime Store.

Konfigurationsuppdatering

En IConfiguration instans läggs som standard till i tjänstcontainern i ASP.NET Core 2.0. IConfiguration i tjänstcontainern blir det enklare för program att hämta konfigurationsvärden från containern.

Information om status för planerad dokumentation finns i GitHub-problemet.

Loggningsuppdatering

I ASP.NET Core 2.0 införlivas loggning som standard i di-systemet (dependency injection). Du lägger till leverantörer och konfigurerar filtrering i filen i Program.cs stället för i Startup.cs filen. Och standardvärdet ILoggerFactory stöder filtrering på ett sätt som gör att du kan använda en flexibel metod för både filtrering mellan leverantörer och specifik providerfiltrering.

Mer information finns i Introduktion till loggning.

Autentiseringsuppdatering

En ny autentiseringsmodell gör det enklare att konfigurera autentisering för ett program med DI.

Nya mallar är tillgängliga för att konfigurera autentisering för webbappar och webb-API:er med Hjälp av Azure AD B2C.

Information om status för planerad dokumentation finns i GitHub-problemet.

Identity uppdatera

Vi har gjort det enklare att skapa säkra webb-API:er med hjälp av Identity i ASP.NET Core 2.0. Du kan hämta åtkomsttoken för åtkomst till dina webb-API:er med hjälp av Microsoft Authentication Library (MSAL).

Mer information om autentiseringsändringar i 2.0 finns i följande resurser:

SPA-mallar

Projektmallar för ensidesprogram (SPA) för Angular, Aurelia, Knockout.js, React.jsoch React.js med Redux finns tillgängliga. Angular-mallen har uppdaterats till Angular 4. Angular- och React-mallarna är tillgängliga som standard. Information om hur du hämtar de andra mallarna finns i Skapa ett nytt SPA-projekt. Information om hur du skapar ett SPA i ASP.NET Core finns i Funktionerna som beskrivs i den här artikeln är föråldrade från och med ASP.NET Core 3.0.

Kestrel Förbättringar

Webbservern Kestrel har nya funktioner som gör den mer lämplig som en Internetuppkopplad server. Ett antal konfigurationsalternativ för serverbegränsningar läggs till i KestrelServerOptions klassens nya Limits egenskap. Lägg till gränser för följande:

  • Maximalt antal klientanslutningar
  • Maximal storlek på begärandetext
  • Minsta datafrekvens för begärandetext

Mer information Kestrel finns i implementeringen av webbservern i ASP.NET Core.

WebListener har bytt namn till HTTP.sys

Paketen Microsoft.AspNetCore.Server.WebListener och Microsoft.Net.Http.Server har sammanfogats i ett nytt paket Microsoft.AspNetCore.Server.HttpSys. Namnrymderna har uppdaterats så att de matchar.

Mer information finns iHTTP.sys webbserverimplementering i ASP.NET Core.

Förbättrat stöd för HTTP-huvuden

När du använder MVC för att överföra en FileStreamResult eller ett FileContentResulthar du nu möjlighet att ange ett ETag eller ett LastModified datum för det innehåll som du överför. Du kan ange dessa värden för det returnerade innehållet med kod som liknar följande:

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);

Filen som returneras till dina besökare har lämpliga HTTP-huvuden för ETag värdena och LastModified .

Om en programbesökare begär innehåll med en range request-rubrik identifierar ASP.NET Core begäran och hanterar huvudet. Om det begärda innehållet delvis kan levereras hoppar ASP.NET Core över och returnerar bara den begärda uppsättningen byte. Du behöver inte skriva in några särskilda hanterare i dina metoder för att anpassa eller hantera den här funktionen. den hanteras automatiskt åt dig.

Värd för start och Application Insights

Värdmiljöer kan nu mata in extra paketberoenden och köra kod under programstarten, utan att programmet uttryckligen behöver ta ett beroende eller anropa några metoder. Den här funktionen kan användas för att göra det möjligt för vissa miljöer att "lysa upp" funktioner som är unika för den miljön utan att programmet behöver veta i förväg.

I ASP.NET Core 2.0 används den här funktionen för att automatiskt aktivera Application Insights-diagnostik vid felsökning i Visual Studio och (efter att du har valt att göra det) när du kör i Azure App Services. Därför lägger projektmallarna inte längre till Application Insights-paket och kod som standard.

Information om status för planerad dokumentation finns i GitHub-problemet.

Automatisk användning av antiforgery-token

ASP.NET Core har alltid hjälpt HTML-koda innehåll som standard, men med den nya versionen tas ett extra steg för att förhindra XSRF-attacker (cross-site request forgery). ASP.NET Core genererar nu antiforgerytoken som standard och verifierar dem på POST-formuläråtgärder och sidor utan extra konfiguration.

Mer information finns i Förhindra XSRF-/CSRF-attacker (Cross-Site Request Forgery) i ASP.NET Core.

Automatisk förkompilering

Razor visa förkompilering aktiveras under publiceringen som standard, vilket minskar publiceringens utdatastorlek och programmets starttid.

Mer information Razor finns i visa kompilering och förkompilering i ASP.NET Core.

Razor stöd för C# 7.1

Vymotorn Razor har uppdaterats för att fungera med den nya Roslyn-kompilatorn. Det omfattar stöd för C# 7.1-funktioner som standarduttryck, uppskjutna tupplar och Pattern-Matching med generiska objekt. Om du vill använda C# 7.1 i projektet lägger du till följande egenskap i projektfilen och läser sedan in lösningen igen:

<LangVersion>latest</LangVersion>

Information om status för C# 7.1-funktioner finns på Roslyn GitHub-lagringsplatsen.

Andra dokumentationsuppdateringar för 2.0

Vägledning för migrering

Information om hur du migrerar ASP.NET Core 1.x-program till ASP.NET Core 2.0 finns i följande resurser:

Brytande förändringar

Använd artiklarna i Icke-bakåtkompatibla ändringar i .NET för att hitta icke-bakåtkompatibla ändringar som kan gälla när du uppgraderar en app till en nyare version av .NET.

Ytterligare resurser

En fullständig lista över ändringar finns i viktig information om ASP.NET Core 2.0.

Om du vill ansluta till ASP.NET Core-utvecklingsteamets framsteg och planer kan du titta närmare på ASP.NET Community Standup.