co je nového v ASP.NET Core 2,1

tento článek zvýrazňuje nejvýznamnější změny v ASP.NET Core 2,1 s odkazy na příslušnou dokumentaci.

SignalR

SignalRbylo přepsáno pro ASP.NET Core 2,1. ASP.NET Core SignalR zahrnuje řadu vylepšení:

  • Zjednodušený model škálování na více instancí.
  • Nový klient jazyka JavaScript bez závislosti jQuery.
  • Nový kompaktní binární protokol založený na MessagePack.
  • Podpora vlastních protokolů.
  • Nový model odpovědi streamování.
  • Podpora klientů založená na holéch objektech WebSockets.

Další informace najdete v tématu ASP.NET Core SignalR .

Razor knihovny tříd

ASP.NET Core 2,1 usnadňuje sestavování a zahrnutí Razor uživatelského rozhraní na základě knihovny a jejich sdílení napříč více projekty. nová Razor sada SDK umožňuje sestavovat Razor soubory do projektu knihovny tříd, který může být zabalen do balíčku NuGet. Zobrazení a stránky v knihovnách jsou automaticky zjišťovány a aplikace je může přepsat aplikací. Integrací Razor kompilace do sestavení:

  • Čas spuštění aplikace je výrazně rychlejší.
  • Rychlé aktualizace Razor zobrazení a stránek za běhu jsou stále k dispozici jako součást pracovního postupu iterativního vývoje.

Další informace najdete v tématu vytvoření opakovaně použitelného uživatelského rozhraní pomocí Razor projektu knihovny tříd.

Identity Knihovna uživatelského rozhraní & generování uživatelského rozhraní

ASP.NET Core 2,1 poskytuje ASP.NET Core Identity jako Razor knihovnu tříd. Aplikace, které zahrnují, Identity můžou použít nový generátor, Identity aby selektivně přidal zdrojový kód obsažený v Identity Razor knihovně tříd (RCL). Můžete chtít generovat zdrojový kód, abyste mohli kód upravit a změnit chování. Můžete například dát generátoru pokyn, aby vygeneroval kód používaný při registraci. Generovaný kód má přednost před stejným kódem v Identity RCL.

Aplikace, které neobsahují ověřování, můžou Identity pro přidání balíčku RCL použít generování uživatelského rozhraní Identity . Máte možnost vybrat Identity kód, který se má vygenerovat.

další informace najdete v tématu o generování uživatelského rozhraní Identity v ASP.NET Core projektech.

HTTPS

Díky lepšímu zaměření na zabezpečení a ochranu osobních údajů je důležité povolit protokol HTTPS pro webové aplikace. Vynucování protokolu HTTPS se na webu stále přísnější. Lokality, které nepoužívají protokol HTTPS, se považují za nezabezpečené. prohlížeče (Chromium, Mozilla) začínají vymáhat, že webové funkce musí být používány z zabezpečeného kontextu. GDPR vyžaduje k ochraně osobních údajů uživatelů používání protokolu HTTPS. Při použití protokolu HTTPS v produkčním prostředí je použití protokolu HTTPS při vývoji důležité k tomu, aby se zabránilo problémům v nasazení (například nezabezpečeným odkazům). ASP.NET Core 2,1 obsahuje řadu vylepšení, která usnadňují používání protokolu https ve vývoji a konfiguraci https v produkčním prostředí. Další informace najdete v tématu vymáhání protokolu HTTPS.

Ve výchozím nastavení zapnuto

V zájmu usnadnění zabezpečení vývoje webu je teď ve výchozím nastavení povolený protokol HTTPS. Počínaje 2,1 naslouchá, že Kestrel je k https://localhost:5001 dispozici místní vývojový certifikát. Vytvoří se vývojový certifikát:

  • Jako součást .NET Core SDKho prvního spuštění, při prvním použití sady SDK.
  • Ručně pomocí nového dev-certs nástroje.

Spusťte dotnet dev-certs https --trust pro důvěřování certifikátu.

Přesměrování a vynucení HTTPS

Webové aplikace obvykle musí naslouchat na protokolech HTTP i HTTPS, ale pak přesměrují všechny přenosy HTTP na HTTPS. V 2,1 se zavedl specializovaný middleware pro přesměrování HTTPS, který inteligentně přesměrovává na základě přítomnosti konfiguračních nebo vázaných portů serveru.

Použití protokolu HTTPS se dá dál vyhovět pomocí protokolu HTTP Strict Transport Security Protocol (HSTS). HSTS dá prohlížečům pokyn, aby vždycky měli přístup k webu přes protokol HTTPS. ASP.NET Core 2,1 přidává HSTS middleware, který podporuje možnosti pro maximální stáří, subdomény a seznam předload HSTS.

Konfigurace pro produkční prostředí

V produkčním prostředí musí být HTTPS explicitně nakonfigurovaný. V 2,1 se přidalo výchozí konfigurační schéma pro konfiguraci HTTPS pro Kestrel . Aplikace je možné nakonfigurovat tak, aby používaly:

GDPR

ASP.NET Core poskytuje rozhraní api a šablony, které vám pomůžou splnit některé z požadavků EU na Obecné nařízení o ochraně osobních údajů (GDPR) . Další informace najdete v tématu Podpora GDPR v ASP.NET Core. ukázková aplikace ukazuje, jak použít a umožňuje testovat většinu GDPRch bodů rozšíření a rozhraní api přidaných do šablon ASP.NET Core 2,1.

Integrační testy

Zavádí se nový balíček, který zjednodušuje vytváření a spouštění testů. Balíček Microsoft. AspNetCore. Mvc. test zpracovává následující úlohy:

  • Zkopíruje soubor závislosti (* . DEPS) z testované aplikace do složky bin testovacího projektu.
  • Nastaví kořen obsahu na kořen projektu testované aplikace, aby při spuštění testů byly nalezeny statické soubory a stránky/zobrazení.
  • Poskytuje třídu WebApplicationFactory pro zjednodušení zavádění testované aplikace pomocí TestServer.

Následující test používá xUnit ke kontrole, zda se stránka indexu načte s kódem stavu úspěch a se správnou hlavičkou Content-Type:

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

Další informace najdete v tématu věnovaném integračním testům .

[ApiController], ActionResult<T>

ASP.NET Core 2,1 přidává nové konvence programování, které usnadňují vytváření čistě a popisných webových rozhraní api. ActionResult<T> je přidaný nový typ, který aplikaci umožní vracet buď typ odpovědi, nebo jakýkoli výsledek jiné akce (podobně jako IActionResult), ale stále určuje typ odpovědi. [ApiController]Atribut byl také přidán jako způsob, jak se přihlásit k konvencím a chováním specifickému pro webové rozhraní API.

Další informace najdete v tématu sestavování webových rozhraní API pomocí ASP.NET Core.

IHttpClientFactory

ASP.NET Core 2,1 obsahuje novou IHttpClientFactory službu, která usnadňuje konfiguraci a využívání instancí HttpClient v aplikacích. HttpClient již má koncepci delegování obslužných rutin, které by mohly být propojeny pro odchozí požadavky HTTP. Objekt pro vytváření:

  • Usnadňuje registraci instancí pro HttpClient s pojmenovaným klientem.
  • Implementuje obslužnou rutinu Polly, která umožňuje použití zásad Polly pro opakování, CircuitBreakers atd.

Další informace najdete v tématu inicializace požadavků HTTP.

Kestrel Konfigurace přenosu libuv

s vydáním ASP.NET Core 2,1 se Kestrel výchozí přenos už nepoužívá na Libuv, ale vychází ze spravovaných soketů. Další informace najdete v tématu Kestrel implementace webového serveru: Libuv Transport Configuration.

Obecný tvůrce hostitele

Byl zaveden obecný tvůrce hostitele ( HostBuilder ). Tento tvůrce se dá použít pro aplikace, které nezpracovávají požadavky HTTP (zasílání zpráv, úlohy na pozadí atd.).

Další informace najdete v tématu obecný hostitel .NET.

Aktualizované šablony SPA

jednostránkové šablony aplikace pro Angular, React a React s Redux jsou aktualizovány tak, aby používaly standardní struktury projektu a systémy sestavení pro každé rozhraní.

šablona Angular je založená na Angular CLI a šablony React jsou založené na vytvoření reakce na aplikaci.

Další informace naleznete v tématu:

Razor Stránky vyhledávající Razor prostředky

V 2,1 Razor budou stránky hledat Razor prostředky (například rozložení a částečné) v následujících adresářích v uvedeném pořadí:

  1. Složka aktuální stránky.
  2. /Pages/Shared/
  3. /Views/Shared/

Razor Stránky v oblasti

Razor Stránky teď podporují oblasti. Pokud chcete zobrazit příklad oblastí, vytvořte novou webovou Razor aplikaci Pages s jednotlivými uživatelskými účty. Webová Razor aplikace Pages s jednotlivými uživatelskými účty zahrnuje /Areas/ Identity /Pages.

Verze kompatibility MVC

Metoda umožňuje aplikaci vyjádřit výslovný souhlas nebo vyjádřit výslovný nesouhlas se změnami potenciálně způsobovat nehromí chování, které ASP.NET Core SetCompatibilityVersion MVC 2.1 nebo novější.

Další informace naleznete v tématu Verze kompatibility pro ASP.NET Core MVC.

Migrace z 2.0 na 2.1

Viz Migrace z ASP.NET Core 2.0 na 2.1.

Další informace

Úplný seznam změn najdete v poznámkách k verzi ASP.NET Core 2.1.