Ce's diferența între .NET Core, .NET Framework, și Xamarin?

Microsoft are acum .NET Core, .NET Framework și Xamarin (Mono) în sale .NET de familie.

Se pare că există o mulțime de suprapunere aici. Ce's diferența între aceste tipuri de .NET? Când ar trebui să alegeți să utilizați .NET Core în proiectul meu, în loc de .NET Framework sau Xamarin?

Comentarii la întrebare (1)
Soluția

Ar trebui să utilizați .NET Core, în loc de .NET Framework sau Xamarin, în următoarele 6 scenarii tipice în conformitate cu documentația de [aici][1].

1. Cross-Platform are nevoie de

în mod Clar, dacă obiectivul dvs. este de a avea o aplicație (web/servicii) care ar trebui să fie capabil să ruleze pe toate platformele (Windows, Linux și MacOS), cea mai bună alegere în .NET ecosistemului este de a utiliza .NET Core ca sa runtime (CoreCLR) și bibliotecile sunt cross-platform. Cealaltă opțiune este de a utiliza Proiectul Mono. Ambele variante sunt open source, dar .NET Core este direct și acceptate oficial de către Microsoft și va fi o investiție mare în mișcare înainte. atunci Când se utilizează .NET Core pe platforme, cea mai bună experiență de dezvoltare există pe Windows cu Visual Studio IDE care suportă multe caracteristici de productivitate, inclusiv management de proiect, depanare, sursa de control, refactoring, editare bogat, inclusiv Intellisense, testarea și mult mai mult. Dar bogat dezvoltare este susținută, de asemenea, folosind Visual Studio Cod pe Mac, Linux și Windows, inclusiv intellisense și depanare. Chiar terț editori ca Sublim, Emacs, VI și mai mult de lucru bine și pot obține editor intellisense folosind open source Omnisharp proiect.

2. Microservices

atunci Când sunt construirea unui microservices orientate sistem compus din mai multe independent, dinamic scalabile, statefull sau apatrid microservices, marele avantaj pe care îl avem aici este că puteți folosi diferite tehnologii/cadre/limbi la un microservice nivel. Care vă permite să utilizați cea mai bună abordare și tehnologie pe micro zone în sistemul dvs., astfel încât, dacă doriți să construiască foarte performante și scalabile microservices, ar trebui să utilizați .NET Core. În cele din urmă, dacă aveți nevoie să utilizați orice .NET Framework bibliotecă care nu este compatibil cu .NET Core, nu e nici o problemă, puteți construi microservice cu .NET Framework și în viitor s-ar putea fi capabil să-l înlocuiască cu .NET Core. infrastructura platformei ai putea folosi sunt multe. În mod ideal, pentru mari și complexe microservice sisteme, ar trebui să utilizați Azure Service Tesatura. Dar pentru apatrizi microservices puteți utiliza, de asemenea, alte produse, cum ar fi Azur App Serviciu sau Azure Funcții. Rețineți că, din iunie 2016, nu fiecare tehnologie în Azure sprijină .NET Core, dar .NET Core sprijin în Azure va fi în creștere în mod dramatic acum .NET Core este RTM lansat.

3. Cele mai bune performante și sisteme scalabile

atunci Când sistemul are nevoie de cea mai bună performanță și scalabilitate astfel încât să obțineți cele mai bune de reacție nu contează cât de mulți utilizatori ai, atunci este în cazul în care .NET Core și ASP.NET de Bază într-adevăr să strălucească. Mai mult, puteți face cu aceeași cantitate de infrastructură/hardware, cea mai bogată experiență veți avea pentru utilizatorii finali – la un cost mai mic. de zile de la legea lui Moore îmbunătățiri de performanță pentru un singur Procesoare nu se mai aplică; dar tu trebuie să facă mai mult în timp ce sistemul dumneavoastră este în creștere și au nevoie mai mare scalabilitate și performanță de zi cu zi mai pretențioși utilizatori care sunt în creștere exponențial în numere. Ai nevoie pentru a obține mai eficient, de a optimiza peste tot, și la scară mai bine pe grupuri de mașini, VMs și nuclee CPU, în cele din urmă. Aceasta nu este doar o chestiune de satisfacție a utilizatorilor; de asemenea, acesta poate face o mare diferență în costul/TCO. Acest lucru este de ce este important să se depună eforturi pentru performanță și scalabilitate. așa Cum am menționat, dacă poți izola bucăți mici din sistemul dumneavoastră cât mai microservices sau orice alte cuplat slab abordare, va fi mai bine ca tine va fi capabil nu doar să evolueze fiecare bucată mică/microservice în mod independent și să aibă o mai bine pe termen lung, agilitate și de întreținere, dar, de asemenea, va fi capabil de a utiliza orice altă tehnologie, la un microservice nivel, dacă ceea ce aveți nevoie pentru a face nu este compatibil cu .NET Core. Și în cele din urmă vei fi capabil să refactor-l și aduceți-l la .NET Core, atunci când este posibil.

4. Stil linie de comandă dezvoltare pentru Mac, Linux sau Windows.

Această abordare este opțională atunci când se utilizează .NET Core. Puteți folosi, de asemenea, plin Visual Studio IDE, desigur. Dar dacă sunteți un dezvoltator care vrea să se dezvolte, cu o greutate de editori și utilizarea grele de la linia de comandă .NET Core este conceput pentru CLI. Acesta oferă simple instrumente de linie de comandă disponibil pe toate platformele suportate, care permite dezvoltatorilor să construiască și să testeze aplicații cu un minim de instalare pe producător, de laborator sau de producție de mașini. Editori, cum ar fi Visual Studio Cod utiliza aceleași instrumente de linie de comandă pentru dezvoltarea lor experiențe. Și IDE, cum ar fi Visual Studio utiliza aceleași instrumente CLI dar le ascunde în spatele unui bogat IDE experiență. Dezvoltatorii pot acum alege nivelul doresc să interacționeze cu lanț instrument de CLI editor la IDE.

5. Nevoie de partea de .NET versiuni pe nivel de aplicație.

Dacă vrei să fii capabil de a instala aplicații cu dependențe pe diferite versiuni de cadre .NET, aveți nevoie pentru a utiliza .NET Core care oferă 100% side-by-side așa cum sa explicat anterior în acest document.

6. Windows 10 UWP .NET aplicații.

În plus, puteți, de asemenea, doriți să citiți:

  1. Când ar trebui să-mi NU utilizați .NET Core?
  2. Când ar trebui să mă mai folosesc .NET Framework 4.x, în loc de .NET Core?
  3. Când trebuie să folosesc Xamarin, în loc de .NET Core?
Comentarii (5)

Acesta este modul în care Microsoft explică:

.NET Framework este "plin" sau "tradiționale" aroma .NET ca's distribuit cu Windows. Utilizați acest lucru atunci când sunt construirea unui desktop Windows sau UWP app, sau de lucru cu copii ASP.NET 4.6+.

.NET Core este cross-platform .NET care ruleaza pe Windows, Mac, și Linux. Folosiți acest mod când doriți pentru a construi consola web sau aplicații care pot rula pe orice platformă, inclusiv în interiorul containerelor Docker. Aceasta nu include UWP/aplicații desktop în prezent.

Xamarin este utilizat pentru construirea de aplicații mobile, care pot rula pe iOS, Android sau Windows Phone.

Xamarin de obicei rulează pe partea de sus Mono, care este o versiune de .NET, care a fost construit pentru suport cross-platform înainte Microsoft a decis să merge oficial cross-platform cu .NET Core. Ca Xamarin, Unitatea de platformă, de asemenea, ruleaza pe partea de sus de Mono.


Un punct comun de confuzie este în cazul în care ASP.NET de Bază se potrivește. ASP.NET Core poate rula pe partea de sus de ori .NET Framework (Windows) sau .NET Core (cross-platform), după cum este detaliat în acest răspuns: Diferența între ASP.NET de Bază (.NET Core) și ASP.NET de Bază (.NET Framework)

Comentarii (6)

Puteți face referire în această linie - https://stackoverflow.com/questions/37684508/difference-between-asp-net-core-net-core-and-asp-net-core-net-framework/37684644#37684644

Xamarin nu este o dezbatere, la toate. Când vrei să construiești mobile (iOS, Android și Windows Mobile) aplicații folosind C#, Xamarin este doar alegerea ta.

La .NET Framework suportă Windows și aplicații Web. Astăzi, puteți utiliza Windows Forms, WPF, și UWP pentru a construi aplicații pentru Windows în .NET Framework. ASP.NET MVC este folosit pentru a construi aplicații Web în .NET Framework.

.NET Core este nou open-source și cross-platform cadru pentru a construi aplicații pentru sistemul de operare, inclusiv Windows, Mac, și Linux. .NET Core suportă UWP și ASP.NET de Bază numai. UWP este folosit pentru a construi de Windows 10 obiective Windows și aplicații mobile. ASP.NET Core este folosit pentru a construi browser-ul web bazate pe aplicații.

vrei mai multe detalii, consultați acest link https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/ https://docs.microsoft.com/en-us/dotnet/articles/standard/choosing-core-framework-server

Comentarii (0)
  1. .NET este Ecosistem bazat pe c# limba
  2. .NET Standard este Standard (cu alte cuvinte, caietul de sarcini) de .NET Ecosistem .

.Net Core Class Library este construit pe .Net Standard. .NET Standard puteți face doar clasa-proiect de bibliotecă, care nu poate fi executat independent și ar trebui să fie referite de un alt .NET Core sau .NET Framework executabil proiect.Dacă doriți să pună în aplicare o bibliotecă care este portabil la .Net Framework, .Net Core și Xamarin, pentru a alege un .Net Standard Biblioteca

  1. .NET Framework este un cadru bazat pe .NET și suportă Windows și aplicații Web

(se poate face executabil proiect (cum ar fi Consola de cerere, sau ASP.NET cerere) cu .NET Framework

  1. ASP.NET este o aplicație web dezvoltare de tehnologie, care este construit de-a lungul .NET Framework
  2. .NET Core, de asemenea, un cadru bazat pe .NET.

Acesta este noul open-source și cross-platform cadru pentru a construi aplicații pentru sistemul de operare, inclusiv Windows, Mac, și Linux.

  1. Xamarin este un cadru pentru a dezvolta un cross-platform aplicație mobilă(iOS, Android și Windows Mobile) utilizând C#

suport pentru Implementarea de .NET Standard[albastru] și minim platformă viabilă pentru sprijinul deplin al .NET Standard (cele mai recente: [https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support])

Comentarii (2)

.NET Core este versiunea curentă a .NET, care ar trebui să fie folosind acum (mai multe caracteristici , bug-uri fixe , etc.)

Xamarin este o platformă care oferă soluții pentru cross-platform mobile problemele codate în C# , astfel încât să don't nevoie pentru a utiliza Swift separat pentru IOS și același lucru este valabil și pentru Android.

Comentarii (2)

actualizat în Mai 2019

ar trebui să utilizați .Net Core 3.0 și mai târziu upgrade la următoarea versiune .Net 5, tot ce ai nevoie este doar o platformă unificată .Net5

Nu va fi doar unul .NET merge înainte, și va fi capabil să-l folosească pentru a-țintă >Windows, Linux, macOS, iOS, Android, tvOS, watchOS și WebAssembly și mai mult. https://devblogs.microsoft.com/dotnet/introducing-net-5/

Comentarii (1)