2015-04-13 1 views
50

vedo quanto segue in quasi ogni futura discussione .NET framework:Differenza tra .NET Framework 4.6, Net Nativi e .Net Nucleo

  • .NET Framework 4.6 (framework .Net completa)
  • . NET nativo
  • .NET Nucleo

Qual è la differenza tra tutti questi?

Come sapere quando utilizzare quello appropriato?

+2

Questa sarà una lettura interessante per te: http://blogs.msdn.com/b/dotnet/archive/2014/12/04/introducing-net-core.aspx –

+0

https: //blogs.msdn. microsoft.com/dotnet/2014/12/04/introducing-net-core/ –

risposta

60

Dopo aver attraversato vari link e video, ho trovato un interessante quadro nel suo complesso:

.NET Framework 4.6, .Net Native and .NET Core

Da quanto sopra, si potrebbe facilmente dedurre quanto segue:

  • .NET Framework 4.6 è un framework completo per tutto ciò che riguarda .NET, ma manca le librerie & runtime ottimizzato per installazioni multipiattaforma (Windows, Linux e Mac) e cloud
  • .NET Nucleo d'altra parte è un sottoinsieme di .NET Framework 4.6 che è ottimizzato principalmente per le distribuzioni multi-piattaforma e cloud
  • .NET nativo è utilizzato principalmente per sviluppare applicazioni universale che saranno abbastanza ottimizzato per funzionare su qualsiasi dispositivo e piattaforma, nativo (non per le applicazioni web però)

Un punto interessante è ASP.NET:

  • Se dobbiamo compatibilità ai fulles t estensione (per esempio moduli web o supporto aspx), dobbiamo andare con .NET Framework 4.6
  • Se sviluppiamo pagine Web MVC, Web API o Razor, possiamo implementare tali applicazioni Web in .NET Framework 4.6 o. ambiente Nucleo NET
+0

Ho intenzione di sviluppare il mio sito web usando MVC, Razor, angular js e SignalR quindi Posso usare .Net Core? Un'altra cosa che userò il cloud hosting di Azure. – Chandru

+0

@Chandru - questa è una nuova domanda a quanto pare :) –

+0

@Chandru - SignalR è nella lista To-Do del .Net Core team. Purtroppo non implementato fino al momento di questo commento. – Lafi

46

TLDR: Se si tratta di nucleo, che è un sottoinsieme di funzionalità in modo che possa essere eseguito cross-plat. Tutto ciò che è possibile eseguire su Core può essere eseguito sul framework completo 4.6 per Windows.

.NET Framework v4.6 - Il framework completo che può essere eseguito solo su Windows. Tuttavia, poiché questo è il completo framework, ciò significa che ottieni WCF, WPF e tutte le funzionalità. Puoi pensare a questo come al normale sviluppo di Windows .NET che probabilmente stai facendo oggi. Comprende WebForms ASP.NET, MVC, Core e SignalR. Se stai usando .NET 4.5 oggi, questo è il tuo prossimo percorso di aggiornamento naturale.

. NET Core - Un sottoinsieme di framework che non include tutto nel 4.6 Framework completo. Tuttavia è destinato a funzionare su più piattaforme su Windows, Mac o Linux. Tuttavia, alcune funzionalità mancano, come WCF, WPF. Ma avrai ancora ASP.NET Core (senza Web Form), ma non ancora SignalR. Il supporto SignalR è destinato a venire in una versione successiva.Questo utilizza la CLI dotnet (interfaccia a riga di comando) per la compilazione di applicazioni, oppure se si utilizza Windows, è possibile utilizzare Visual Studio.

. Nativo .NET - Compilazione nativa del framework .NET Core. Invece di eseguire la compilazione JIT normale in fase di runtime del file .exe, questo eseguirà un AOT compilation che può potenzialmente ottimizzare il codice in modo migliore using the C++ backend compiler (o LLVM utilizzando LLILC). Quando lo fai, stai prendendo di mira una piattaforma specifica, come "Linux 64-bit". I vantaggi sono tempi di avvio più rapidi, requisiti di memoria potenzialmente più piccoli, speranze migliori prestazioni di runtime ed emettono solo un singolo file binario (non è necessario installare .NET Framework sul computer di destinazione). Il compromesso è tuttavia la portabilità ad altre piattaforme: i binari separati per Linux, MacOS, Windows, 32-bit, 64-bit, ecc. Questo attualmente funziona solo per le app di Windows Store ma si sta facendo più lavoro per cui è possibile Lavorerò su normali app .NET, incluse le app ASP.NET. Attualmente non è previsto l'inserimento nella versione .NET Core 1.0.

ASP.NET Core - Il nuovo modo di fare sviluppo web su .NET Core o Full Framework. Include una pipeline HTTP personalizzabile, un server Web Kestrel e profili better performance rispetto alla versione precedente di ASP.NET 4.x. Questo è compatibile multipiattaforma sia per il framework completo che per il framework Core. Non include WebForms o il supporto SignalR (yet). Non è retrocompatibile con ASP.NET 4, anche se ora utilizzi MVC/WebAPI, quindi MVC/WebAPI in futuro dovrebbe essere abbastanza vicino poiché ci sarà solo una classe Controller. Se vuoi usare WebForms, non hai altra scelta se non quella di utilizzare il Quadro 4.6 completo.

Entity Framework Core - Il nuovo framework per lo sviluppo ORM. Una volta chiamato EF7, è il framework ORM multipiattaforma che funziona sia per lo stack completo 4.6 che per il nuovo stack Core. Non è retrocompatibile con EF6. Supporta solo un modello code-first. In futuro potrebbero esserci strumenti per aiutare ad aggiornare i file .edmx EF6 esistenti per generare le classi per l'implementazione EFCore code-first.

+0

per .net core, stiamo usando signalR versione 0.2.0-preview2-22683 – crh225