Quelle est la différence? between.NET Core,. NET Framework, et Xamarin?

Microsoft a maintenant .NET Core, .net Framework et Xamarin (Mono) dans sa famille .NET.

Il semble y avoir beaucoup de chevauchement ici. Quelle est la différence entre ces types de .NET? Quand dois-je choisir D'utiliser .NET Core dans mon projet, au lieu de .net Framework ou Xamarin?

240
demandé sur Nate Barbettini 2016-06-28 00:53:13

3 réponses

vous devez utiliser .NET Core, au lieu de .net Framework ou Xamarin, dans les 6 scénarios typiques suivants selon la documentation ici .

1. Besoins multiplateformes

clairement, si votre objectif est d'avoir une application (web/service) qui devrait être capable de fonctionner à travers les plateformes (Windows, Linux et MacOS), le meilleur choix dans l'écosystème .NET est d'utiliser .NET Core comme son runtime (CoreCLR) et les bibliothèques sont multiplateformes. L'autre choix est d'utiliser le Projet Mono.

les deux choix sont open source, mais .net Core est directement et officiellement soutenu par Microsoft et aura un investissement lourd aller de l'avant.

lors de l'utilisation de .net Core à travers les plateformes, La meilleure expérience de développement existe sur Windows avec L'IDE Visual Studio qui prend en charge de nombreuses fonctionnalités de productivité, y compris la gestion de projet, le débogage, le contrôle à la source, remaniement, édition riche y compris Intellisense, Test et bien plus encore. Mais rich development est également pris en charge en utilisant Visual Studio Code sur Mac, Linux et Windows, y compris intellisense et le débogage. Même les éditeurs tiers comme Sublime, Emacs, VI et plus de travail bien et peut obtenir l'éditeur intellisense en utilisant le projet Omnisharp open source.

2. Microservices 151960920"

lorsque vous construisez un système orienté microservices composé de plusieurs microservices indépendants, évolutifs, stateful ou apatrides, le grand avantage que vous avez ici est que vous pouvez utiliser différentes technologies/cadres/langues à un niveau de microservices. Cela vous permet d'utiliser la meilleure approche et la meilleure technologie par micro-zone dans votre système, donc si vous voulez construire des micro-services très performants et évolutifs, vous devriez utiliser .NET Core. Éventuellement, si vous avez besoin d'utiliser une bibliothèque .net Framework qui n'est pas compatible avec .NET Core, il n'y a pas de problème, vous pouvez construire ce microservice avec le Framework .NET et à l'avenir vous pourriez être en mesure de le remplacer avec le noyau .NET.

La plate-forme d'infrastructure que vous pourriez utiliser sont nombreux. Idéalement, pour les systèmes microservice complexes et de grande taille, vous devriez utiliser du tissu de Service Azure. Mais pour les microservices apatrides, vous pouvez également utiliser D'autres produits comme Azure App Service ou fonctions Azure.

notez qu'à partir de juin 2016, Toutes les technologies Azure prend en charge le noyau .NET, mais le support de .net Core dans Azure augmentera considérablement maintenant que .NET Core est disponible.

3. Systèmes les plus performants et évolutifs

quand votre système a besoin de la meilleure performance possible et de l'évolutivité afin que vous obtenez la meilleure réactivité, peu importe le nombre d'utilisateurs que vous avez, alors est où. ASP.NET le noyau brille vraiment. Plus vous pouvez faire avec la même quantité d'infrastructure / matériel, le riche de l'expérience que vous aurez de vos utilisateurs finaux, à un coût moindre.

les jours de la Loi de Moore améliorations de la performance pour les CPU simples ne s'applique plus; pourtant, vous devez faire plus alors que votre système est en croissance et ont besoin d'une plus grande évolutivité et de performances pour les utilisateurs plus exigeants de tous les jours qui sont en croissance exponentielle en nombre. Vous devez obtenir plus efficace, optimiser partout, et une meilleure échelle à travers les grappes de machines, VMS et CPU cœurs, finalement. Il ne s'agit pas seulement d'une question de satisfaction de l'utilisateur; cela peut également faire une énorme différence dans le rapport coût/coût total. C'est pourquoi il est important de viser la performance et l'évolutivité.

comme mentionné, si vous pouvez isoler de petits morceaux de votre système en tant que microservices ou toute autre approche faiblement couplée, ce sera mieux car vous serez en mesure non seulement de faire évoluer chaque petit morceau/microservice indépendamment et avoir une meilleure agilité et maintenance à long terme, mais aussi vous serez capable d'utiliser n'importe quelle autre technologie au niveau micro-service si ce que vous devez faire n'est pas compatible avec .NET Core. Et éventuellement, vous serez en mesure de le remanier et de l'apporter au noyau .NET lorsque c'est possible.

4. Développement de style de ligne de commande pour Mac, Linux ou Windows.

cette approche est facultative lorsque vous utilisez .NET Core. Vous pouvez également utiliser L'IDE Visual Studio complet, bien sûr. Mais si vous êtes un développeur qui veut se développer avec léger les éditeurs et l'utilisation intensive de la ligne de commande, .net Core est conçu pour le CLI. Il fournit des outils en ligne de commande simples disponibles sur toutes les plateformes prises en charge, permettant aux développeurs de construire et de tester des applications avec une installation minimale sur les machines de développement, de laboratoire ou de production. Les éditeurs comme Visual Studio Code utilisent les mêmes outils de ligne de commande pour leurs expériences de développement. Et IDE est comme Visual Studio utiliser les mêmes outils CLI mais les cacher derrière une riche expérience IDE. Les développeurs peuvent maintenant choisir le niveau ils veulent interagir avec la chaîne d'outils de CLI à Editeur en IDE.

5. Besoin de versions côte à côte de .NET par niveau d'application.

si vous voulez pouvoir installer des applications avec des dépendances sur différentes versions de frameworks dans .NET, vous devez utiliser .NET Core qui fournit 100% côte à côte comme expliqué précédemment dans ce document.

6. Windows 10 UWP. net apps.

en outre, vous pouvez également lire:

  1. quand devrais-je utiliser et non ?
  2. Quand dois-je toujours utiliser .NET Framework 4.x, au lieu de .NET Core?
  3. Quand dois-je utiliser Xamarin, au lieu de .net Core?
180
répondu Fiona Bi 2018-09-07 13:46:12

Voici comment Microsoft l'explique:

.NET Framework, .NET Core, Xamarin

.net Framework est la saveur "complète" ou "traditionnelle" de .NET qui est distribué avec Windows. Utilisez cette option lorsque vous construisez une application Windows ou UWP, ou lorsque vous travaillez avec des ASP.NET 4.6+.

.net Core est multiplateformes .NET qui fonctionne sur Windows, Mac, et Linux. Utilisez cette option lorsque vous voulez construire des applications console ou web qui peuvent fonctionner sur n'importe quelle plate-forme, y compris à l'intérieur des conteneurs Docker. Ceci n'inclut pas UWP/desktop apps actuellement.

Xamarin est utilisé pour créer des applications mobiles qui peuvent fonctionner sur iOS, Android, ou Windows Phone appareils.

Xamarin fonctionne habituellement sur le dessus de Mono , qui est une version de .NET qui a été construit pour le soutien multiplateforme avant Microsoft a décidé d'aller officiellement multiplate-forme avec .net Core. Comme Xamarin, la plate-forme de L'Unité court aussi sur le Mono.


un point commun de confusion est où ASP.NET le noyau s'adapte. ASP.NET Core peut s'exécuter sur .net Framework (Windows) ou .net Core (cross-platform), comme détaillé dans cette réponse: différence entre ASP.NET Central (.net Core) et ASP.NET cadre de base (.NET))

129
répondu Nate Barbettini 2017-12-20 15:49:05

vous pouvez vous référer à cette ligne - différence entre ASP.NET Central (.net Core) et ASP.NET Central (.net Framework)

.NET Framework, .NET Core, Xamarin

Xamarin n'est pas un débat du tout. Quand vous voulez construire des applications mobiles (iOS, Android, et Windows Mobile) en utilisant C#, Xamarin est votre seul choix.

the .NET Framework prend en charge les applications Windows et Web. Aujourd'hui, vous pouvez utiliser les formulaires Windows, WPF, et UWP pour construire des applications Windows dans le cadre .NET. ASP.NET MVC est utilisé pour construire des applications Web dans le cadre de .NET.

.NET Core est le nouveau cadre open-source et multiplate-forme pour construire des applications pour tous les systèmes d'exploitation, y compris Windows, Mac et Linux. .NET Core prend en charge UWP et ASP.NET Noyau Seulement. UWP est utilisé pour construire Windows 10 cibles Windows et les applications mobiles. ASP.NET Core est utilisé pour construire des applications Web basées sur le navigateur.

vous voulez plus de détails référez-vous à ces liens

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

10
répondu logeshpalani98 2018-05-05 22:24:52