2016-06-07 47 views
45

Qual è la differenza tra ASP.NET Core Web (.NET Core) e ASP.NET Core Web (.NET Framework) ?Differenza tra ASP.NET Core (.NET Core) e ASP.NET Core (.NET Framework)

e .NET Framework fornisce similar performance come .NET Core?

+0

non riesco a vedere il link fare per il mio firewall politiche qui al lavoro. Ma la differenza è che .NET Core è compatibile con più piattaforme e non utilizza .NET Framework. I progetti .NET Framework utilizzano ovviamente .NET Framework, quindi il framework deve essere installato sul server. –

risposta

62

Questo può essere fonte di confusione all'inizio, ma è importante ricordare: alla fine della giornata, "ASP.NET Core" è solo un gruppo di pacchetti NuGet che possono essere installati nel progetto.

ASP.NET Core su .NET Core è il nucleo ASP.NET multipiattaforma. Può essere eseguito su Windows, Mac e Linux (inclusa Docker). Il server non ha bisogno di .NET Core installato - le dipendenze possono essere fornite in bundle con l'applicazione.

ASP.NET Core su .NET Framework è ASP.NET Core sul framework .NET "completo" o "desktop" (ad esempio .NET Framework 4.6.2). Queste applicazioni possono essere eseguite solo su Windows, ma tutto il resto su ASP.NET Core si comporta allo stesso modo.

Secondo il benchmarks te collegato, entrambi avranno prestazioni più elevate rispetto ASP.NET 4.6, anche se .NET Core è attualmente il più alto:


ASP.NET 4.6: < 50k req/sec

ASP.NET core (CLR): 400k req/sec

ASP.NET core (.NET core Linux): 900K req/sec

01.235.

ASP.NET core (NET core, Windows):> 1.1m req/sec

Tuttavia, questi parametri sono leggermente più anziani (febbraio 2016) e riflettono il codice pre-RTM. Non sarei sorpreso se fossero migliorati da allora.

+5

Qual è lo scopo di avere due framework sottostanti che è possibile costruire contro? è un'altra scelta che devi fare per andare su .net core o full .net framework per andare con asp.net Core. L'obiettivo è che .net core non abbia tutte le funzionalità necessarie per creare un'app Web, quindi è necessario disporre di una rete .net completa –

+5

@JustinHomes Le applicazioni ei pacchetti devono essere portati su .NET Core, ea volte è difficile a seconda di le API che usano. L'opzione esiste in modo che tu possa utilizzare oggi ASP.NET Core su .NET "completo" e quindi portarlo su .NET Core in futuro se desideri la funzionalità multipiattaforma. –

+0

Questo scenario funziona effettivamente con IIS? Ho provato a distribuire un'applicazione web asp.net sviluppata su framework completo e non si avviava in IIS. Errori sulle DLL mancanti – JBA

0

ASP.NET NUCLEO utilizzando .NET Nucleo - tutte le dipendenze sono autonomi, in grado di utilizzare i pacchetti più Nuget, utilizzare Windows cativi pacchetti specifici, in grado di eseguire su Windows, Linux, Mac

ASP NET NUCLEO utilizzando .NET Framework - la maggior parte delle dipendenze sono self-contained, solo esegue su Windows, avranno accesso a Windows pacchetti NuGet specifici, richiede la versione di .NET framework che si rivolge installato sulla macchina

2

AS P.NET Core con. NetCore è un multipiattaforma (può essere eseguito su Windows, Linux o altre piattaforme), ad alte prestazioni, open-source framework per la creazione di moderni, basati su cloud, connessi a Internet applicazioni. Ha la capacità di ospitare su IIS, Nginx, Apache, Docker o self-host nel proprio processo.

ASP.NET Core viene fornito interamente come pacchetto NuGet. Questo ti consente di ottimizzare la tua app per includere solo i pacchetti NuGet necessari. Infatti, le app ASP.NET Core 2.x che utilizzano .NET Core richiedono solo un singolo pacchetto NuGet. I vantaggi di un'area di superficie dell'app più piccola includono maggiore sicurezza, manutenzione ridotta e prestazioni migliorate.

Non è necessario installare .Net framework per eseguire asp.net core con l'applicazione core .net. An L'applicazione ASP.NET Core con .net core è un'app console che crea un server Web nel suo metodo Main. Utilizza il server Web Kestrel per eseguire l'applicazione.

Possiamo anche utilizzare gli editor come Visual Studio Code, Atom per eseguire l'applicazione.

Non supporta Aspx, WPF, WCF e WebServices come se fosse ora. Supporta l'injection dependency injection. Utilizza coreclr che è il runtime in asp.net core con .net core.

Asp.Core con .Net framework. Il framework Net, invece, è stato avviato molto prima del 2005 e ha continuato ad aggiungere nuove funzionalità rendendolo un framework un po 'complesso e più pesante. Non è multipiattaforma. Esso supporta aspx, WPF, WCF e WebServices

piano excecution Net Framework enter image description here

nucleo .Net piano exceution enter image description here