.NET Core vs ASP.NET Core


Risposte:


209

Aggiornamento 2020 : si noti che ASP.NET Core 3 e versioni successive ora dipendono da .NET Core e non possono più essere utilizzate su .NET Framework. La descrizione seguente è per ASP.NET Core 1.x-2.x; la separazione dei livelli è ancora valida per ASP.NET Core 3.0 ma il livello ASP.NET Core non può più essere utilizzato su .NET Framework in 3.0+.

.NET Core è un runtime. Può eseguire applicazioni create appositamente per questo.

ASP.NET Core è una raccolta di librerie che formano un framework per la creazione di applicazioni Web. Le librerie ASP.NET Core possono essere utilizzate sia su .NET Core che su "Full .NET Framework" (fornito con Windows da molti anni).

La parte confusa è che un'applicazione che utilizza le librerie e gli strumenti di ASP.NET Core viene generalmente definita "Applicazione ASP.NET Core", che in teoria non dice se è stata creata per .NET Core o .NET Framework. Quindi, un "core ASP.NET Application" è anche ".NET Core Application" o ".NET Framework Application".

Questa immagine mostra la relazione delle tecnologie coinvolte (tratta da questo post sul blog ) Tecnologie di applicazione Web .NET

Qui puoi vedere che ASP.NET Core è costruito "sopra" sia .NET Framework che .NET Core, mentre "ASP.NET" (ora spesso chiamato "ASP.NET classico") è solo .NET Framework.


22
Quindi, come chiamiamo ASP classico? "Ancient ASP"? : p
Dan Schnau,

1
quindi se l'applicazione viene sviluppata utilizzando ASP.NET Core quindi sul server Web dobbiamo installare .NET Core Runtimee ASP.NET Core runtimeo ASP.NET Core runtimeè sufficiente
LP13

Dipende dalla versione, la 2.1 lo dividerà un po ', ma finché si installano i "bundle di hosting" sui server, si dovrebbe andare bene. Se sviluppi per ASP.NET Core su .NET Framework, hai ancora bisogno del bundle di hosting per il modulo IIS necessario
Martin Ullrich

3
@DanSchnau, abbiamo "ASP classico", "ASP.NET" AKA "ASP.NET classico" e "ASP.NET Core", quindi nessun conflitto :)
Gouda

@ LP13: Non esiste un "ASP.NET Core Runtime", è solo un mucchio di pacchetti che non possono essere eseguiti da soli (senza .NET Core preinstallato o spedito come app indipendente)
Tseng

43

ASP.NET Core utilizzando .NET Core : tutte le dipendenze sono autonome, possono utilizzare la maggior parte dei pacchetti NuGet, non possono utilizzare pacchetti specifici di Windows, possono essere eseguiti su Windows, Linux e Mac.

ASP.NET Core che utilizza .NET Framework : la maggior parte delle dipendenze sono autosufficienti, si esegue solo su Windows, avrà accesso a pacchetti NuGet specifici di Windows, necessita della versione di .NET framework di destinazione installata sul computer.


8
Chi nomina queste cose? Questo è super confuso.
Nick,

1
@ Nick: marketing Microsoft. Hanno una lunga storia di questo. Non hanno ancora scoperto il web - usando nomi comuni per i prodotti (non va bene in un mondo di motori di ricerca in cui sono meglio parole meno comuni più specifiche, preferibilmente parole univoche non nel dizionario).
Peter Mortensen,

23

ASP.NET Core è uno dei carichi di lavoro supportati da .NET Core.

Dalla guida di .NET Core :

Di per sé, .NET Core include un singolo modello di applicazione - app console - che è utile per strumenti, servizi locali e giochi basati su testo. Ulteriori modelli applicativi sono stati creati su .NET Core per estenderne le funzionalità, come:

  • ASP.NET Core
  • Windows 10 Universal Windows Platform (UWP)
  • Xamarin.Forms

Questa è una risposta più pertinente per me. .Net Core per app console, ASP.Net Core per app web.
Shawn Zhang,

5

.NET Framework è alla sua ultima versione. Non ce ne sarà un altro dopo 4.8. Microsoft continuerà con .NET Core. Da questo momento dovresti preferire .NET Core ai tuoi progetti.


2

Inoltre, vorrei aggiungere che potrebbe aiutare qualcuno.

C'è qualcosa chiamato iniezione di middleware nella pipeline di richieste .NET Core. Se implementato correttamente, questo è molto utile, poiché può intercettare automaticamente le eccezioni dell'applicazione e rende la registrazione molto più semplice in un posto invece di accedere a tutti i metodi.


Puoi aggiungere uno o più riferimenti / collegamenti alla tua risposta?
Peter Mortensen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.