Panoramica di ASP.NET Core
Di Daniel Roth, Rick Anderson, e Shaun Luttin
ASP.NET Core è un framework open source multipiattaforma e ad alte prestazioni per la creazione di app moderne abilitate per il cloud e connesse a Internet.
Con ASP.NET Core, è possibile:
- Creare app e servizi Web, app IoT (Internet of Things) e back-end per dispositivi mobili.
- Usare gli strumenti di sviluppo preferiti in Windows, macOS e Linux.
- Distribuire nel cloud o in locale.
- Eseguire in .NET Core.
Perché scegliere ASP.NET Core?
Milioni di sviluppatori usano o usano ASP.NET 4.x per creare app Web. ASP.NET Core è una riprogettazione di ASP.NET 4.x, incluse le modifiche architetturali che generano un framework più snello e più modulare.
ASP.NET Core offre i vantaggi seguenti:
- Una storia unificata per la compilazione dell'interfaccia utente web e delle API web.
- Progettazione finalizzata alla testabilità.
- Razor Le pagine semplificano e rendono più produttivi gli scenari incentrati sulle pagine di codifica.
- Blazor consente di usare C# nel browser insieme a JavaScript. Condividere la logica dell'app, interamente scritta con .NET, sul lato client e sul lato server.
- Possibilità di sviluppo ed esecuzione in Windows, macOS e Linux.
- Open source e incentrato sulla community.
- Integrazione di framework lato client moderni e flussi di lavoro di sviluppo.
- Supporto per l'hosting di servizi RPC (Remote Procedure Call) tramite gRPC.
- Un sistema di configurazione basato sull'ambiente, pronto per il cloud.
- Inserimento delle dipendenze incorporato.
- Una pipeline di richiesta HTTP leggera, a prestazioni elevate e modulare.
- Possibilità di ospitare quanto segue:
- Controllo delle versioni side-by-side.
- Gli strumenti che semplificano lo sviluppo del web moderno.
Compilare API web e interfaccia utente web tramite ASP.NET Core MVC
ASP.NET Core MVC offre funzionalità per la compilazione di API Web e app Web:
- Il Model-View-Controller (MVC) consente di rendere le API web e le app web testabili.
- Razor Pages è un modello di programmazione basato su pagine che rende la creazione dell'interfaccia utente Web più semplice e più produttiva.
- Razor markup fornisce una sintassi produttiva per Razor le visualizzazioni Pages e MVC.
- Gli helper tag consentono al codice lato server di partecipare alla creazione e al rendering di elementi HTML nei file Razor.
- Il supporto incorporato per più formati di dati e per la negoziazione del contenuto consente alle API web di raggiungere una vasta gamma di client, inclusi i browser e i dispositivi mobili.
- L'associazione di modelli esegue automaticamente il mapping dei dati dalle richieste HTTP ai parametri del metodo di azione.
- La convalida dei modelli esegue automaticamente la convalida sul lato server e sul lato client.
Sviluppo lato client
ASP.NET Core si integra perfettamente con i framework e le librerie lato client più diffusi, tra cui Blazor, Angular, React e Bootstrap. Per altre informazioni, vedere ASP.NET Core Blazor e argomenti correlati in Sviluppo sul lato client.
framework di destinazione ASP.NET Core
ASP.NET Core 3.x o versione successiva può essere destinato solo a .NET Core. In genere, ASP.NET Core è costituito da librerie .NET Standard. Le librerie scritte con .NET Standard 2.0 supportano l'esecuzione su qualsiasi piattaforma .NET che implementa .NET Standard 2.0.
Usare .NET Core come destinazione offre diversi vantaggi, che aumentano con ogni versione. Alcuni vantaggi di .NET Core in .NET Framework sono:
- Funzionamento multipiattaforma. Viene eseguito in Windows, macOS e Linux.
- prestazioni migliorate
- Controllo delle versioni side-by-side
- Nuove API
- Open source
Percorso di apprendimento consigliato
Per un'introduzione allo sviluppo di app ASP.NET Core, è consigliabile seguire questa sequenza di esercitazioni:
Seguire un'esercitazione per il tipo di app che si vuole sviluppare o gestire.
Tipo di app Scenario Esercitazione app Web Nuovo sviluppo dell'interfaccia utente Web sul lato server Introduzione alle Razor pagine app Web Gestione di un'app MVC Introduzione a MVC app Web Sviluppo dell'interfaccia utente Web sul lato client Introduzione Blazor API Web RESTservizi HTTP ful Creare un'API Web† App Remote Procedure Call Servizi contract-first che usano i buffer del protocollo Introduzione all'uso di un servizio gRPC App in tempo reale Comunicazione bidirezionale tra server e client connessi Introduzione SignalR Seguire un'esercitazione che illustra come eseguire l'accesso ai dati di base.
Scenario Esercitazione Nuovo sviluppo Razor Pagine con Entity Framework Core Gestione di un'app MVC MVC con Entity Framework Core Leggere una panoramica dei concetti fondamentali ASP.NET Core applicabili a tutti i tipi di app.
Esplorare il sommario per altri argomenti di interesse.
†Altre api Web interattive. Non è necessaria alcuna installazione locale degli strumenti di sviluppo. Il codice viene eseguito in un Cloud Shell di Azure nel browser e curl viene usato per il test.
Eseguire la migrazione da .NET Framework
Per una guida di riferimento alla migrazione di app ASP.NET 4.x a ASP.NET Core, vedere Eseguire l'aggiornamento da ASP.NET a ASP.NET Core.
ASP.NET Core è un framework open source multipiattaforma e ad alte prestazioni per la creazione di app moderne abilitate per il cloud e connesse a Internet. Con ASP.NET Core, è possibile:
- Creare app e servizi Web, app IoT (Internet of Things) e back-end per dispositivi mobili.
- Usare gli strumenti di sviluppo preferiti in Windows, macOS e Linux.
- Distribuire nel cloud o in locale.
- Eseguire in .NET Core o .NET Framework.
Perché scegliere ASP.NET Core?
Milioni di sviluppatori usano o usano ASP.NET 4.x per creare app Web. ASP.NET Core è una riprogettazione di ASP.NET 4.x, con modifiche a livello di architettura che comportano un framework più efficiente e modulare.
ASP.NET Core offre i vantaggi seguenti:
- Una storia unificata per la compilazione dell'interfaccia utente web e delle API web.
- Progettazione finalizzata alla testabilità.
- Razor Le pagine semplificano e rendono più produttivi gli scenari incentrati sulle pagine di codifica.
- Blazor consente di usare C# nel browser insieme a JavaScript. Condividere la logica dell'app, interamente scritta con .NET, sul lato client e sul lato server.
- Possibilità di sviluppo ed esecuzione in Windows, macOS e Linux.
- Open source e incentrato sulla community.
- Integrazione di framework lato client moderni e flussi di lavoro di sviluppo.
- Supporto per l'hosting di servizi RPC (Remote Procedure Call) tramite gRPC.
- Un sistema di configurazione basato sull'ambiente, pronto per il cloud.
- Inserimento delle dipendenze incorporato.
- Una pipeline di richiesta HTTP leggera, a prestazioni elevate e modulare.
- Possibilità di ospitare quanto segue:
- Controllo delle versioni side-by-side.
- Gli strumenti che semplificano lo sviluppo del web moderno.
Compilare API web e interfaccia utente web tramite ASP.NET Core MVC
ASP.NET Core MVC offre funzionalità per la compilazione di API Web e app Web:
- Il Model-View-Controller (MVC) consente di rendere le API web e le app web testabili.
- Razor Pages è un modello di programmazione basato su pagine che rende la creazione dell'interfaccia utente Web più semplice e più produttiva.
- Razor markup fornisce una sintassi produttiva per Razor le visualizzazioni Pages e MVC.
- Gli helper tag consentono al codice lato server di partecipare alla creazione e al rendering di elementi HTML nei file Razor.
- Il supporto incorporato per più formati di dati e per la negoziazione del contenuto consente alle API web di raggiungere una vasta gamma di client, inclusi i browser e i dispositivi mobili.
- L'associazione di modelli esegue automaticamente il mapping dei dati dalle richieste HTTP ai parametri del metodo di azione.
- La convalida dei modelli esegue automaticamente la convalida sul lato server e sul lato client.
Sviluppo lato client
ASP.NET Core si integra perfettamente con i framework e le librerie lato client più diffusi, tra cui Blazor, Angular, React e Bootstrap. Per altre informazioni, vedere ASP.NET Core Blazor e argomenti correlati in Sviluppo sul lato client.
ASP.NET Core per .NET Framework
ASP.NET Core 2.x può avere come destinazione .NET Core o .NET Framework. ASP.NET Core le app destinate a .NET Framework non sono multipiattaforma, ma vengono eseguite solo in Windows. ASP.NET Core 2.x è costituito a livello generale da librerie .NET Standard. Le librerie scritte con .NET Standard 2.0 supportano l'esecuzione su qualsiasi piattaforma .NET che implementa .NET Standard 2.0.
ASP.NET Core 2.x è supportato nelle versioni di .NET Framework che implementano .NET Standard 2.0:
- È consigliabile usare la versione più recente di .NET Framework.
- .NET Framework 4.6.1 o versioni successive.
ASP.NET Core 3.0 o versioni successive vengono eseguite solo in .NET Core. Per altri dettagli riguardanti questa modifica, vedere A first look at changes coming in ASP.NET Core 3.0 (Una prima occhiata alle modifiche previste per ASP.NET Core 3.0).
Usare .NET Core come destinazione offre diversi vantaggi, che aumentano con ogni versione. Alcuni vantaggi di .NET Core in .NET Framework sono:
- Funzionamento multipiattaforma. Esecuzione con macOS, Linux e Windows.
- prestazioni migliorate
- Controllo delle versioni side-by-side
- Nuove API
- Open source
Per colmare il divario tra l'API da .NET Framework a .NET Core, Windows Compatibility Pack ha reso disponibili migliaia di API solo Windows in .NET Core. Queste API non erano disponibili in .NET Core 1. x.
Percorso di apprendimento consigliato
Per un'introduzione allo sviluppo delle app ASP.NET Core, è consigliabile eseguire la sequenza di esercitazioni e articoli seguente:
Seguire un'esercitazione per il tipo di app che si vuole sviluppare o gestire.
Tipo di app Scenario Esercitazione app Web Per un nuovo sviluppo Introduzione alle Razor pagine app Web Per gestire un'app MVC Introduzione a MVC API Web Creare un'API Web† App in tempo reale Introduzione SignalR Seguire un'esercitazione che illustra come eseguire l'accesso ai dati di base.
Scenario Esercitazione Per un nuovo sviluppo Razor Pagine con Entity Framework Core Per gestire un'app MVC MVC con Entity Framework Core Leggere una panoramica dei concetti fondamentali ASP.NET Core applicabili a tutti i tipi di app.
Esplorare il Sommario per cercare altri argomenti di interesse.
†Altre api Web che si segue interamente nel browser, non è necessaria alcuna installazione dell'IDE locale. Il codice viene eseguito in un'Azure Cloud Shell e per il testing viene usato curl.
Eseguire la migrazione da .NET Framework
Per una guida di riferimento alla migrazione di app ASP.NET a ASP.NET Core, vedere Eseguire l'aggiornamento da ASP.NET a ASP.NET Core.
Come scaricare un esempio
Molti articoli ed esercitazioni includono collegamenti al codice di esempio.
- Scaricare il file ZIP del repository ASP.NET.
- Decomprimere il file
AspNetCore.Docs-main.zip
. - Per accedere all'app di esempio di un articolo nel repository decompresso, usare l'URL nel collegamento di esempio dell'articolo per passare alla cartella dell'esempio. In genere, il collegamento di esempio di un articolo viene visualizzato nella parte superiore dell'articolo con il testo del collegamento Visualizza o scarica il codice di esempio.
Direttive per il preprocessore nel codice di esempio
Per illustrare più scenari, le app di esempio usano le #define
direttive e #if-#else/#elif-#endif
del preprocessore per compilare ed eseguire in modo selettivo sezioni diverse del codice di esempio. Per gli esempi che usano questo approccio, impostare la #define
direttiva all'inizio dei file C# per definire il simbolo associato allo scenario che si vuole eseguire. Alcuni esempi richiedono la definizione del simbolo nella parte superiore di più file per eseguire uno scenario.
Ad esempio, l'elenco di simboli #define
seguente indica che sono disponibili quattro scenari, ovvero uno scenario per simbolo. La configurazione di esempio corrente esegue lo scenario TemplateCode
:
#define TemplateCode // or LogFromMain or ExpandDefault or FilterInCode
Per modificare l'esempio in modo che venga eseguito lo scenario ExpandDefault
, definire il simbolo ExpandDefault
e lasciare i simboli rimanenti con commento:
#define ExpandDefault // TemplateCode or LogFromMain or FilterInCode
Per altre informazioni sull'uso delle direttive del preprocessore C# per compilare in modo selettivo le sezioni di codice, vedere #define (Riferimenti per C#) e #if (Riferimenti per C#).
Aree del codice di esempio
Alcune app di esempio contengono sezioni di codice racchiuse tra #region e #endregion direttive C#. Il sistema di compilazione della documentazione inserisce queste aree negli argomenti della documentazione visualizzabile.
I nomi delle aree in genere contengono la parola "frammento". L'esempio seguente mostra un'area denominata snippet_WebHostDefaults
:
#region snippet_WebHostDefaults
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
#endregion
Il file markdown dell'argomento fa riferimento al frammento di codice C# precedente con la riga seguente:
[!code-csharp[](sample/SampleApp/Program.cs?name=snippet_WebHostDefaults)]
È possibile ignorare (o rimuovere) in modo sicuro le #region
direttive e #endregion
che racchiudono il codice. Non modificare il codice all'interno di queste direttive se si prevede di eseguire gli scenari di esempio descritti nell'argomento. È possibile modificare il codice durante la sperimentazione con altri scenari.
Per altre informazioni, vedere Contribuire alla documentazione ASP.NET: Frammenti di codice.
Modifiche di rilievo e avvisi di sicurezza
Le modifiche di rilievo e gli avvisi di sicurezza vengono segnalati nel repository Annunci. Gli annunci possono essere limitati a una versione specifica selezionando un filtro Etichetta .
Passaggi successivi
Per altre informazioni, vedere le seguenti risorse:
- Guida introduttiva ad ASP.NET Core
- Pubblicare un'app ASP.NET Core in Azure con Visual Studio
- concetti fondamentali di ASP.NET Core
- La trasmissione settimanale della community di ASP.NET offre una presentazione dei progressi e dei piani del team. Vengono segnalati nuovi blog e software di terze parti.