Condividi tramite


Novità di ASP.NET Core 2.0

Questo articolo evidenzia le modifiche più significative apportate ad ASP.NET Core 2.0, con collegamenti alla relativa documentazione.

Razor Pages

Razor Pages è una nuova funzionalità di ASP.NET Core MVC che semplifica e rende più produttivi gli scenari incentrati sulle pagine di codifica.

Per altre informazioni, vedere l'introduzione e l'esercitazione:

Metapacchetto ASP.NET Core

Un nuovo metapacchetto ASP.NET Core include tutti i pacchetti creati e supportati dai team di ASP.NET Core ed Entity Framework Core, con le relative dipendenze interne e di terze parti. Non è più necessario scegliere le singole funzionalità di ASP.NET Core in base al pacchetto. Tutte le funzionalità sono incluse nel pacchetto Microsoft.AspNetCore.All. I modelli predefiniti usano questo pacchetto.

Per altre informazioni, vedere Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0 (Metapacchetto Microsoft.AspNetCore.All per ASP.NET Core 2.0).

Archivio di runtime

Le applicazioni che usano il metapacchetto Microsoft.AspNetCore.All sfruttano automaticamente il nuovo archivio di runtime di .NET Core. L'archivio contiene tutti gli asset di runtime necessari per eseguire le applicazioni ASP.NET Core 2.0. Quando si usa il metapacchetto Microsoft.AspNetCore.All, con l'applicazione non vengono distribuiti asset dai pacchetti NuGet di riferimento di ASP.NET Core poiché sono già presenti nel sistema di destinazione. Gli asset contenuti nell'archivio di runtime vengono anche precompilati per migliorare i tempi di avvio dell'applicazione.

Per altre informazioni, vedere l'articolo relativo all'archivio dei pacchetti di runtime

.NET Standard 2.0

I pacchetti di ASP.NET Core 2.0 hanno come destinazione .NET Standard 2.0. Ai pacchetti possono fare riferimento altre librerie .NET Standard 2.0 ed è possibile eseguire i pacchetti in implementazioni di .NET compatibili con .NET Standard 2.0, tra cui .NET Core 2.0 e .NET Framework 4.6.1.

Il metapacchetto Microsoft.AspNetCore.All è riservato esclusivamente a .NET Core 2.0, poiché è destinato all'uso con l'archivio di runtime di .NET Core 2.0.

Aggiornamento della configurazione

In ASP.NET Core 2.0 viene aggiunta per impostazione predefinita un'istanza di IConfiguration al contenitore dei servizi. IConfiguration nel contenitore dei servizi semplifica per le applicazioni il recupero dei valori di configurazione dal contenitore.

Per informazioni sullo stato della documentazione prevista, vedere l'argomento su GitHub.

Aggiornamento della registrazione

In ASP.NET Core 2.0 la registrazione è incorporata nel sistema di inserimento delle dipendenze per impostazione predefinita. Aggiungere provider e configurare il Program.cs filtro nel file anziché nel Startup.cs file. E l'oggetto ILoggerFactory predefinito supporta i filtri in modo tale da consentire l'uso di un unico approccio flessibile sia per il filtraggio tra provider, sia per il filtraggio di un provider specifico.

Per altre informazioni, vedere l'introduzione alla registrazione in ASP.NET Core.

Aggiornamento dell'autenticazione

Un nuovo modello di autenticazione rende più semplice configurare l'autenticazione per un'applicazione che usa l'inserimento delle dipendenze.

I nuovi modelli sono disponibili per la configurazione dell'autenticazione per le app Web e le API Web che usano Azure AD B2C.

Per informazioni sullo stato della documentazione prevista, vedere l'argomento su GitHub.

Identity Aggiornamento

È stata semplificata la creazione di API Web sicure usando Identity in ASP.NET Core 2.0. È possibile acquisire i token di accesso per accedere alle API Web usando la libreria di autenticazione MSAL.

Per altre informazioni sulle modifiche apportate all'autenticazione nella versione 2.0, vedere le risorse seguenti:

Modelli SPA

Sono disponibili modelli di progetto di applicazione a pagina singola, o SPA (Single-Page Application), per Angular, Aurelia, Knockout.js, React.js e React.js con Redux. Il modello Angular è stato aggiornato alla versione 4. I modelli Angular e React sono disponibili per impostazione predefinita. Per informazioni su come ottenere gli altri modelli, vedere Creare un nuovo progetto di applicazione a pagina singola. Per informazioni su come creare un'applicazione a pagina singola in ASP.NET Core, vedere Le funzionalità descritte in questo articolo sono obsolete a partire da ASP.NET Core 3.0.

Miglioramenti di Kestrel

Il Kestrel server Web ha nuove funzionalità che lo rendono più adatto come server con connessione Internet. Sono state aggiunte diverse opzioni di configurazione dei vincoli in una nuova proprietà della classe KestrelServerOptions, Limits. Aggiungere limiti per gli elementi seguenti:

  • Numero massimo di connessioni client
  • Dimensione massima del corpo della richiesta
  • Velocità minima dei dati del corpo della richiesta

Per altre informazioni, vedere Kestrel Implementazione del server Web in ASP.NET Core.

WebListener rinominato in HTTP.sys

I pacchetti Microsoft.AspNetCore.Server.WebListener e Microsoft.Net.Http.Server sono state uniti in un nuovo pacchetto Microsoft.AspNetCore.Server.HttpSys. Gli spazi dei nomi sono stati aggiornati di conseguenza.

Per altre informazioni, vedere l'introduzione all'implementazione del server Web HTTP.sys in ASP.NET Core.

Supporto ottimizzato per le intestazioni HTTP

Quando si usa MVC per trasmettere un oggetto FileStreamResult o FileContentResult, è ora possibile impostare un ETag o una data LastModified per il contenuto trasmesso. È possibile impostare questi valori per il contenuto restituito con codice simile al seguente:

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

Il file restituito ai visitatori ha le intestazioni HTTP appropriate per i ETag valori e LastModified .

Se il visitatore di un'applicazione richiede contenuto con un'intestazione di richiesta di intervallo, ASP.NET Core lo riconosce e gestisce l'intestazione. Se il contenuto richiesto può essere recapitato parzialmente, ASP.NET Core ignora e considera le varie parti in modo appropriato restituendo solo il set di byte richiesto. Non è necessario scrivere gestori speciali nei metodi per adattare o gestire questa funzionalità, poiché è gestita automaticamente.

Avvio in hosting e Application Insights

Gli ambienti di hosting sono ora in grado di inserire le dipendenze aggiuntive dei pacchetti e di eseguire codice durante l'avvio dell'applicazione, senza che per l'applicazione sia necessario accettare una dipendenza o chiamare metodi in modo esplicito. Questa funzionalità può essere usata per consentire ad alcuni ambienti di attivare le proprie funzionalità esclusive senza che sia necessario indicarlo anticipatamente all'applicazione.

In ASP.NET Core 2.0 questa funzionalità viene usata per abilitare automaticamente la diagnostica di Application Insights durante il debug in Visual Studio e, dopo aver scelto questa opzione, durante l'esecuzione in Servizi app di Azure. Di conseguenza, i modelli di progetto non aggiungono più i pacchetti e il codice di Application Insights per impostazione predefinita.

Per informazioni sullo stato della documentazione prevista, vedere l'argomento su GitHub.

Uso automatico dei token antifalsificazione

ASP.NET Core ha sempre agevolato la codifica HTML del contenuto per impostazione predefinita, ma con la nuova versione è stato fatto un passo avanti nella prevenzione degli attacchi basati sulla falsificazione della richiesta tra siti (XSRF). ASP.NET Core ora genera token antifalsificazione per impostazione predefinita e li convalida per le pagine e le azioni POST dei form senza configurazione aggiuntiva.

Per altre informazioni, vedere Prevenire attacchi tramite richieste intersito false (XSRF/CSRF) in ASP.NET Core.

Precompilazione automatica

Razor la pre-compilazione della visualizzazione è abilitata durante la pubblicazione per impostazione predefinita, riducendo le dimensioni dell'output di pubblicazione e l'ora di avvio dell'applicazione.

Per altre informazioni, vedere Razor Visualizzare la compilazione e la precompilazione in ASP.NET Core.

Razor supporto per C# 7.1

Il Razor motore di visualizzazione è stato aggiornato per funzionare con il nuovo compilatore Roslyn. Questo include il supporto per funzionalità di C# 7.1 tra cui le espressioni predefinite, i nomi di tupla dedotti e i criteri di ricerca con i generics. Per usare C# 7.1 nel progetto, aggiungere la proprietà seguente nel file di progetto e quindi ricaricare la soluzione:

<LangVersion>latest</LangVersion>

Per informazioni sullo stato delle funzionalità di C# 7.1, vedere il repository GitHub per Roslyn.

Altri aggiornamenti alla documentazione per la versione 2.0

Indicazioni sulla migrazione

Per indicazioni su come eseguire la migrazione delle applicazioni ASP.NET Core 1.x ad ASP.NET Core 2.0, vedere le risorse seguenti:

Informazioni aggiuntive

Per l'elenco completo delle modifiche, vedere le note sulla versione di ASP.NET Core 2.0.

Per essere aggiornati sull'avanzamento del lavoro e sui piani dei team di sviluppo di ASP.NET Core, partecipare alle riunioni in ASP.NET Community Standup.