Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln belyser de viktigaste ändringarna i ASP.NET Core 2.1, med länkar till relevant dokumentation.
SignalR
SignalR har skrivits om för ASP.NET Core 2.1.
ASP.NET Core SignalR innehåller ett antal förbättringar:
- En förenklad utskalningsmodell.
- En ny JavaScript-klient utan jQuery-beroende.
- Ett nytt kompakt binärt protokoll baserat på MessagePack.
- Stöd för anpassade protokoll.
- En ny strömningssvarsmodell.
- Stöd för klienter baserade på bare WebSockets.
Mer information finns i ASP.NET Core SignalR.
Razor klassbibliotek
ASP.NET Core 2.1 gör det enklare att skapa och inkludera Razor-baserat användargränssnitt i ett bibliotek och dela det i flera projekt. Med den nya Razor SDK:n kan du skapa Razor filer i ett klassbiblioteksprojekt som kan paketeras i ett NuGet-paket. Vyer och sidor i bibliotek identifieras automatiskt och kan åsidosättas av appen. Genom att integrera kompilering Razor i bygget:
- Starttiden för appen är betydligt snabbare.
- Snabba uppdateringar av Razor vyer och sidor vid körning är fortfarande tillgängliga som en del av ett iterativt arbetsflöde för utveckling.
Mer information finns i Återanvändbart Razor användargränssnitt i klassbibliotek med ASP.NET Core.
Identity UI-bibliotek & scaffolding
ASP.NET Core 2.1 tillhandahåller ASP.NET Core Identity som ett Razor klassbibliotek. Appar som innehåller Identity kan använda den nya Identity scaffolder för att selektivt lägga till källkoden IdentityRazor som finns i klassbiblioteket (RCL). Du kanske vill generera källkod så att du kan ändra koden och ändra beteendet. Du kan till exempel instruera byggnadsställningen att generera koden som används i registreringen. Genererad kod har företräde framför samma kod i Identity RCL.
Appar som inte innehåller autentisering kan använda Identity byggnadsställningen för att lägga till RCL-paketet Identity . Du kan välja kod som Identity ska genereras.
Mer information finns i Scaffold Identity i ASP.NET Core-projekt.
HTTPS
Med det ökade fokuset på säkerhet och sekretess är det viktigt att aktivera HTTPS för webbappar. HTTPS-tillämpningen blir allt striktare på webben. Webbplatser som inte använder HTTPS anses vara osäkra. Webbläsare (Chromium, Mozilla) börjar framtvinga att webbfunktioner måste användas från en säker kontext. GDPR kräver användning av HTTPS för att skydda användarsekretessen. Det är viktigt att använda HTTPS i produktion, men att använda HTTPS under utveckling kan hjälpa till att förhindra problem i distributionen (till exempel osäkra länkar). ASP.NET Core 2.1 innehåller ett antal förbättringar som gör det enklare att använda HTTPS under utveckling och för att konfigurera HTTPS i produktion. Mer information finns i Framtvinga HTTPS.
På som standard
För att underlätta säker webbplatsutveckling är HTTPS nu aktiverat som standard. Från och med 2.1 Kestrel lyssnar på https://localhost:5001 när ett lokalt utvecklingscertifikat finns. Ett utvecklingscertifikat skapas:
- Som en del av den första körningen av .NET Core SDK när du använder SDK:t för första gången.
- Använd det nya
dev-certsverktyget manuellt.
Kör dotnet dev-certs https --trust för att lita på certifikatet.
HTTPS-omdirigering och tillämpning
Webbappar behöver vanligtvis lyssna på både HTTP och HTTPS, men omdirigera sedan all HTTP-trafik till HTTPS. I 2.1 har specialiserade HTTPS-omdirigeringsmellanprogram som omdirigeras intelligent baserat på förekomsten av konfigurations- eller bundna serverportar introducerats.
Användning av HTTPS kan tillämpas ytterligare med hjälp av HTTP Strict Transport Security Protocol (HSTS). HSTS instruerar webbläsare att alltid komma åt webbplatsen via HTTPS. ASP.NET Core 2.1 lägger till HSTS-mellanprogram som stöder alternativ för max ålder, underdomäner och HSTS-förinläsningslistan.
Konfiguration för produktion
I produktion måste HTTPS konfigureras explicit. I 2.1 har standardkonfigurationsschemat för att konfigurera HTTPS för Kestrel lagts till. Appar kan konfigureras att använda:
- Flera slutpunkter, inklusive URL:er. Mer information finns i Kestrel implementering av webbserver: Slutpunktskonfiguration.
- Certifikatet som ska användas för HTTPS antingen från en fil på disken eller från ett certifikatarkiv.
GDPR
ASP.NET Core tillhandahåller API:er och mallar som hjälper dig att uppfylla vissa av KRAVEN för EU:s allmänna dataskyddsförordning (GDPR). Mer information finns i GDPR-stöd i ASP.NET Core. En exempelapp visar hur du använder och låter dig testa de flesta GDPR-tilläggspunkter och API:er som lagts till i mallarna ASP.NET Core 2.1.
Integreringstester
Ett nytt paket introduceras som effektiviserar skapande och körning av test. Microsoft.AspNetCore.Mvc.Testing-paketet hanterar följande uppgifter:
- Kopierar beroendefilen (*.deps) från den testade appen till testprojektets bin-mapp .
- Anger innehållsroten till den testade appens projektrot så att statiska filer och sidor/vyer hittas när testerna körs.
- WebApplicationFactory<TEntryPoint> Ger klassen för att effektivisera bootstrapping av den testade appen med TestServer.
I följande test används xUnit för att kontrollera att indexsidan läses in med en statuskod för lyckad och med rätt rubrik för innehållstyp:
public class BasicTests
: IClassFixture<WebApplicationFactory<RazorPagesProject.Startup>>
{
private readonly HttpClient _client;
public BasicTests(WebApplicationFactory<RazorPagesProject.Startup> factory)
{
_client = factory.CreateClient();
}
[Fact]
public async Task GetHomePage()
{
// Act
var response = await _client.GetAsync("/");
// Assert
response.EnsureSuccessStatusCode(); // Status Code 200-299
Assert.Equal("text/html; charset=utf-8",
response.Content.Headers.ContentType.ToString());
}
}
Mer information finns i avsnittet Integreringstester .
[ApiController], ActionResult<T>
ASP.NET Core 2.1 lägger till nya programmeringskonventioner som gör det enklare att skapa rena och beskrivande webb-API:er.
ActionResult<T> är en ny typ som har lagts till för att tillåta att en app returnerar antingen en svarstyp eller något annat åtgärdsresultat (liknar IActionResult), samtidigt som svarstypen fortfarande anges. Attributet [ApiController] har också lagts till som ett sätt att välja webb-API-specifika konventioner och beteenden.
Mer information finns i Skapa webb-API:er med ASP.NET Core.
IHttpClientFactory
ASP.NET Core 2.1 innehåller en ny IHttpClientFactory tjänst som gör det enklare att konfigurera och använda instanser av HttpClient i appar.
HttpClient har redan konceptet att delegera hanterare som kan länkas samman för utgående HTTP-begäranden. Fabriken:
- Gör registreringen av instanser av
HttpClientper namngiven klient mer intuitiv. - Implementerar en Polly-hanterare som gör att Polly-principer kan användas för återförsök, CircuitBreakers osv.
Mer information finns i Initiera HTTP-begäranden.
Kestrel libuv-transportkonfiguration
Med lanseringen av ASP.NET Core 2.1 Kestrelbaseras standardtransporten inte längre på Libuv utan baseras i stället på hanterade socketar. Mer information finns i Kestrel implementering av webbserver: Libuv-transportkonfiguration.
Allmän värdbyggare
Generic Host Builder (HostBuilder) har introducerats. Den här byggaren kan användas för appar som inte bearbetar HTTP-begäranden (meddelanden, bakgrundsuppgifter osv.).
Mer information finns i .NET Generic Host.
Uppdaterade SPA-mallar
Mallarna för ensidesprogram för Angular och React uppdateras för att använda standardprojektstrukturerna och byggsystemen för varje ramverk.
Angular-mallen baseras på Angular CLI och React-mallen baseras på create-react-app.
Mer information finns i:
Razor Sidor söker Razor efter tillgångar
I 2.1 Razor söker Razor Pages efter tillgångar (till exempel layouter och delar) i följande kataloger i den angivna ordningen:
- Aktuell sidmapp.
- /Pages/Shared/
- /Views/Shared/
Razor Sidor i ett område
Razor Sidor stöder nu områden. Om du vill se ett exempel på områden skapar du en ny Razor pages-webbapp med enskilda användarkonton. En Razor pages-webbapp med enskilda användarkonton innehåller /Områden/Identity/Sidor.
MVC-kompatibilitetsversion
Med SetCompatibilityVersion metoden kan en app välja eller välja bort potentiellt icke-bakåtkompatibla beteendeändringar som introduceras i ASP.NET Core MVC 2.1 eller senare.
Mer information finns i Kompatibilitetsversion för ASP.NET Core MVC.
Migrera från 2.0 till 2.1
Se Migrera från ASP.NET Core 2.0 till 2.1.
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
Den fullständiga listan över ändringar finns i viktig information om ASP.NET Core 2.1.
ASP.NET Core