Novità di .NET Core 2.0

.NET Core 2.0 include miglioramenti e nuove funzionalità nelle aree seguenti:

Strumenti

Il comando dotnet restore viene eseguito in modo implicito

Nelle versioni precedenti di .NET Core, era necessario eseguire il comando dotnet restore per scaricare le dipendenze immediatamente dopo aver creato un nuovo progetto con il comando dotnet new, nonché in seguito all'aggiunta di una nuova dipendenza al progetto.

Non è necessario eseguire dotnet restore perché viene eseguito in modo implicito da tutti i comandi che richiedono un ripristino, ad esempio dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish e dotnet pack. Per disabilitare il ripristino implicito, usare l'opzione --no-restore.

Il comando dotnet restore è ancora utile in alcuni scenari in cui ha senso eseguire un ripristino esplicito, ad esempio le compilazioni di integrazione continua in Azure DevOps Services o in sistemi di compilazione che richiedono il controllo esplicito quando viene eseguito il ripristino.

Per informazioni su come gestire i feed NuGet, vedere la dotnet restore documentazione.

È anche possibile disabilitare la chiamata automatica di dotnet restore passando l'opzione --no-restore ai comandi new, run, build, publish, pack e test.

Ridestinazione a .NET Core 2.0

Se è installato .NET Core 2.0 SDK, i progetti destinati a .NET Core 1.x possono essere ridestinati a .NET Core 2.0.

Per ridestinare un progetto a .NET Core 2.0, modificare il file di progetto cambiando il valore dell'elemento <TargetFramework> (o l'elemento <TargetFrameworks> se il file di progetto include più destinazioni) da 1.x a 2.0:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
 </PropertyGroup>

È anche possibile ridestinare le librerie .NET Standard a .NET Standard 2.0 allo stesso modo:

<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
 </PropertyGroup>

Per altre informazioni sulla migrazione del progetto a .NET Core 2.0, vedere Migrating from ASP.NET Core 1.x to ASP.NET Core 2.0 (Migrazione da ASP.NET Core 1.x a ASP.NET Core 2.0).

Supporto di versioni in lingue diverse

Oltre a supportare C# e F#, .NET Core 2.0 supporta anche Visual Basic.

Visual Basic

Con la versione 2.0, .NET Core supporta ora Visual Basic 2017. È possibile usare Visual Basic per creare i tipi di progetto seguenti:

  • App console .NET Core
  • Librerie di classi .NET Core
  • Librerie di classi .NET Standard
  • Progetti di unit test .NET Core
  • Progetti di unit test xUnit .NET Core

Ad esempio, per creare un'applicazione Visual Basic "Hello World", eseguire i passaggi seguenti dalla riga di comando:

  1. Aprire una finestra della console, creare una directory per il progetto e impostarla come directory corrente.

  2. Immettere il comando dotnet new console -lang vb.

    Il comando crea un file di progetto con estensione .vbproj oltre a un file di codice sorgente di Visual Basic denominato Program.vb. Questo file contiene il codice sorgente per scrivere la stringa "Hello World!" nella finestra della console.

  3. Immettere il comando dotnet run. L'interfaccia della riga di comando di .NET Core compila ed esegue automaticamente l'applicazione, che visualizza il messaggio "Hello World!" nella finestra della console.

Supporto per C# 7.1

.NET core 2.0 supporta C# 7.1, che aggiunge varie nuove funzionalità, tra cui:

  • Il metodo Main, ovvero il punto di ingresso dell'applicazione, può essere contrassegnato con la parola chiave async.
  • Nomi di tupla dedotti.
  • Espressioni predefinite.

Miglioramenti della piattaforma

.NET Core 2.0 include numerose funzionalità che semplificano l'installazione di .NET Core e il relativo uso nei sistemi operativi supportati.

.NET Core per Linux è un'implementazione singola

.NET Core 2.0 offre una singola implementazione di Linux che funziona su più distribuzioni di Linux. In .NET Core 1.x era richiesto il download di un'implementazione di Linux specifica per la distribuzione.

È anche possibile sviluppare app destinate a Linux come unico sistema operativo. In .NET Core 1.x era necessario specificare separatamente ogni distribuzione di Linux come destinazione.

Supporto per le librerie di crittografia Apple

Per .NET Core 1.x in macOS era richiesta la libreria di crittografia del toolkit OpenSSL. .NET Core 2.0 usa le librerie di crittografia Apple e non richiede OpenSSL, pertanto non è più necessario installarlo.

Modifiche delle API e supporto delle librerie

Supporto per .NET Standard 2.0

.NET Standard definisce un set di API con versioni specifiche che devono essere disponibili nelle implementazioni .NET conformi a tale versione dello standard. .NET Standard è destinato agli sviluppatori di librerie. L'obiettivo è garantire la disponibilità della funzionalità in una libreria destinata a una versione di .NET Standard in ogni implementazione di .NET. .NET Core 1.x supporta .NET Standard versione 1.6; .NET Core 2.0 supporta la versione più recente, ovvero .NET Standard 2.0. Per altre informazioni, vedere .NET Standard.

.NET Standard 2.0 include oltre 20.000 API aggiuntive rispetto a quelle disponibili in .NET Standard 1.6. Gran parte di questa superficie estesa deriva dall'incorporamento in .NET Standard delle API in comune per .NET Framework e Xamarin.

Anche le librerie di classi di .NET Standard 2.0 fanno riferimento alle librerie di classi di .NET Framework, a condizione che chiamino API presenti in .NET Standard 2.0. Non è richiesta alcuna ricompilazione delle librerie di .NET Framework.

Per un elenco delle API aggiunte a .NET Standard dall'ultima versione, ovvero .NET Standard 1.6, vedere .NET Standard 2.0 vs. 1.6 (Confronto tra .NET Standard 2.0 e 1.6).

Superficie estesa

Il numero totale di API disponibili in .NET Core 2.0 è più che raddoppiato rispetto a .NET Core 1.1.

Con Windows Compatibility Pack il trasferimento da .NET Framework è diventato anche molto più semplice.

Supporto delle librerie di .NET Framework

Il codice .NET Core può fare riferimento a librerie esistenti di .NET Framework, inclusi pacchetti NuGet esistenti. Si noti che le librerie devono usare le API disponibili in .NET Standard.

Integrazione con Visual Studio

Visual Studio 2017 versione 15.3 e in alcuni casi Visual Studio per Mac offrono numerosi miglioramenti significativi per gli sviluppatori che usano .NET Core.

Ridestinazione delle app .NET Core e delle librerie .NET Standard

Se è installato .NET Core 2.0 SDK, è possibile ridestinare i progetti .NET Core 1.x a .NET Core 2.0 e le librerie .NET Standard 1.x a .NET Standard 2.0.

Per ridestinare il progetto in Visual Studio, aprire la scheda Applicazione della finestra di dialogo delle proprietà del progetto e cambiare il valore di Framework di destinazione in .NET Core 2.0 o .NET Standard 2.0. Per cambiare questa impostazione, è anche possibile fare clic con il pulsante destro del mouse sul progetto e scegliere l'opzione Modifica file .csproj. Per altre informazioni, vedere la sezione Strumenti più indietro in questo argomento.

Supporto per Live Unit Testing per .NET Core

Ogni volta che si modifica il codice, Live Unit Testing esegue automaticamente tutti gli unit test interessati in background, visualizzando in tempo reale i risultati e il code coverage nell'ambiente di Visual Studio. .NET Core 2.0 ora supporta Live Unit Testing. In precedenza, Live Unit Testing era disponibile solo per le applicazioni .NET Framework.

Per altre informazioni, vedere Live Unit Testing con Visual Studio e le Domande frequenti su Live Unit Testing.

Supporto migliorato per più framework di destinazione

Se è necessario ricompilare un progetto per più framework di destinazione, è ora possibile selezionare la piattaforma di destinazione dal menu di primo livello. Nella figura seguente un progetto denominato SCD1 è destinato a macOS X 10.11 a 64 bit (osx.10.11-x64) e a Windows 10/Windows Server 2016 a 64 bit (win10-x64). È possibile selezionare il framework di destinazione prima di selezionare il pulsante per compilare il progetto, in questo caso per eseguire una build di debug.

Screenshot showing target framework selection when building a project.

Supporto di .NET Core SDK affiancati

È ora possibile installare .NET Core SDK in modo indipendente da Visual Studio. In questo modo, una singola versione di Visual Studio consente di compilare progetti destinati a versioni diverse di .NET Core. In precedenza, Visual Studio e .NET Core SDK erano strettamente collegati e associati in base a versioni specifiche.

Miglioramenti alla documentazione

.NET Application Architecture

Dalla pagina .NET Application Architecture (Architettura delle applicazioni .NET) è possibile accedere a una serie di eBook che offrono linee guida, procedure consigliate e applicazioni di esempio per l'uso di .NET per creare:

Vedi anche