Récemment, dans un blog officiel sur .NET Framework, il a été annoncé que .NET Core deviendrait open source .
Ironiquement, l'auteur mentionne que ce qu'est .NET Core sera expliqué dans le prochain post. Quelques détails supplémentaires sont mentionnés dans un autre message d'annonce .
À partir d'un schéma fourni:
et le texte des articles lui-même, je suppose que .NET Core (à côté de choses évidentes comme être open-source) est une réimplémentation modulaire du .NET complet. C'est-à-dire que les composants du framework sont chargés si nécessaire, un peu comme les packages NuGet sont chargés maintenant. Et maintenant, ASP.NET 5 est l'un des modules qui est déjà implémenté. Ma compréhension de .NET Core est-elle correcte? Peut-être que je manque quelque chose?
J'ai trouvé un article récent que j'ai trouvé à la fois court et très bon. Il couvre .NET Standard, .NET Core et .NET Framework et leur relation. Je le recommande fortement.
Réponses:
Extrait du blog .NET annonçant l'aperçu de .NET 2015: une nouvelle ère pour .NET :
Et:
En bref: d'abord, il y avait Microsoft .NET Framework , qui se compose d'un runtime qui exécute le code d'application et de bibliothèque, et d'une bibliothèque de classes standard presque entièrement documentée .
Le runtime est Common Language Runtime , qui implémente Common Language Infrastructure , fonctionne avec le compilateur JIT pour exécuter le bytecode CIL (anciennement MSIL) .
La spécification et l'implémentation de .NET par Microsoft étaient, compte tenu de son histoire et de son objectif, très centrées sur Windows et IIS et "grosses". Il existe des variantes avec moins de bibliothèques, d'espaces de noms et de types , mais peu d'entre elles étaient utiles pour le développement Web ou de bureau ou sont difficiles à porter d'un point de vue légal .
Ainsi, afin de fournir une version non Microsoft de .NET, qui pourrait fonctionner sur des machines non Windows, une alternative a dû être développée. Non seulement le runtime doit être porté pour cela, mais également la bibliothèque de classes Framework entière pour être bien adoptée. En plus de cela, pour être totalement indépendant de Microsoft, un compilateur pour les langues les plus couramment utilisées sera nécessaire.
Mono est l'une des rares, sinon la seule implémentation alternative du runtime , qui s'exécute sur différents systèmes d'exploitation en plus de Windows, presque tous les espaces de noms de la bibliothèque de classes Framework à partir de .NET 4.5 et d'un compilateur VB et C # .
Entrez .NET Core: une implémentation open-source du runtime et une bibliothèque de classes de base minimale. Toutes les fonctionnalités supplémentaires sont fournies via les packages NuGet, déployant le runtime spécifique, les bibliothèques de framework et les packages tiers avec l'application elle-même.
ASP.NET Core est une nouvelle version de MVC et WebAPI, associée à une abstraction de serveur HTTP mince, qui s'exécute sur le runtime .NET Core - mais également sur .NET Framework.
la source
Il s'agit d'un sous-ensemble du .NET Framework, démarré avec l'édition Compact Framework. Il a progressé dans Silverlight, Windows Store et Windows Phone. Il s'est concentré sur la réduction du déploiement, adapté aux téléchargements rapides et aux appareils avec des capacités de stockage limitées. Et il est plus facile d'évoquer sur des plates-formes non Windows, et c'est sûrement la raison pour laquelle il a été choisi comme édition open source. Les parties "difficiles" et "coûteuses" du CLR et les bibliothèques de classes de base sont omises.
Sinon, il est toujours facile de reconnaître quand vous ciblez une telle version du framework, car beaucoup de goodies seront manquants. Vous allez utiliser un ensemble distinct d'assemblys de référence qui exposent uniquement ce qui est pris en charge par le runtime. Il est stocké sur votre machine dans le
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore
répertoire.Mise à jour: après la sortie de .NET Core 2.0, j'ai vu des chiffres représentatifs qui donnent un aperçu décent. Ils ont travaillé d'arrache-pied pour le back-porting des API du framework vers .NET Core au cours des deux dernières années. .NET Core 1.0 a initialement pris en charge 13 000 API. .NET Core 2.0 a ajouté 20 000 API, ce qui porte le total à 32 000 et permet de porter environ 70% des packages NuGet existants. Il existe un ensemble d'API trop fortement intégrées à Windows pour être faciles à porter sur Linux et MacOS. Couvert par le pack de compatibilité Windows récemment publié, il ajoute 20 000 API supplémentaires.
la source
.NET Core
version 5.0 annoncée est supérieure à la dernière version complète du framework. Je suppose que cela signifie que c'est quelque chose de différent.J'ai trouvé un article récent que j'ai trouvé à la fois court et très bon. Il couvre .NET Standard, .NET Core et .NET Framework et leur relation. Je le recommande fortement. Malheureusement, je n'ai pas le temps de m'adapter et de le mettre ici.
Contenu de la réponse originale ci-dessous:
Donc, sur la base de la dernière entrée officielle sur le sujet, voici quelques points clés tels que je les vois:
Donc .NET Native et ASP.NET 5 ne sont que des «sujets» de test pour la nouvelle configuration du framework, en partie peut-être parce qu'ils sont assez différents:
Vous voyez, ils ont même besoin de bas niveau séparés, mais une grande partie de BCL est toujours courante:
C'est-à-dire que les rectangles magenta sur le dessus seront ajoutés massivement avec les nouveaux modèles d'application, mais la base restera commune.
Déploiement NuGet:
Relation avec les cadres actuels:
Résumé:
Fondamentalement, cela peut être considéré comme un .NET 4.6 avec un modèle de distribution modifié, qui, en même temps, est en train de devenir open source.
la source
La documentation actuelle contient une bonne explication de ce qu'est .NET Core, des domaines à utiliser, etc. Les caractéristiques suivantes définissent le mieux .NET Core:
Et voici ce que .NET Core comprend:
la source
.NET Core est une nouvelle implémentation multiplateforme des normes .NET (ECMA 335) similaire à Mono mais réalisée par Microsoft lui-même.
Voir docs.microsoft.com
la source
Microsoft a reconnu le futur paradigme open source Web et a décidé d'ouvrir .NET à d'autres systèmes d'exploitation. .NET Core est un .NET Framework pour Mac et Linux. Il s'agit d'un .NET Framework «léger», donc certaines fonctionnalités / bibliothèques sont manquantes.
Sous Windows, je continuerais à exécuter .NET Framework et Visual Studio 2015. .NET Core est plus convivial avec le monde open source comme Node.js , npm, Yeoman , Docker , etc.
Vous pouvez développer des sites Web à part entière et des API RESTful sur Mac ou Linux avec Visual Studio Code + .NET Core, ce qui n'était pas possible auparavant. Donc, si vous aimez Mac ou Ubuntu et que vous êtes un développeur .NET, allez-y et configurez-le.
Pour Mono vs .NET Core, Mono a été développé en tant que .NET Framework pour Linux qui est maintenant acquis par Microsoft (société appelée Xamarin ) et utilisé dans le développement mobile. Finalement, Microsoft peut fusionner / migrer Mono vers .NET Core. Je ne m'inquiéterais pas pour Mono en ce moment.
la source
J'essayais de créer un nouveau projet dans Visual Studio 2017 aujourd'hui (récemment mis à niveau à partir de Visual Studio 2015) et j'ai remarqué un nouvel ensemble de choix pour le type de projet. Soit ils sont nouveaux, soit ça fait un moment que j'ai commencé un nouveau projet !! :)
Je suis tombé sur ce lien de documentation et l' ai trouvé très utile, donc je partage. Les détails des balles sont également fournis dans l'article. Je poste juste des balles ici:
Ce lien fournit un glossaire des termes .NET.
la source
Depuis le site Web de Microsoft :
Ces technologies sont différentes de celles du .NET natif en ce qu'elles s'exécutent à l'aide du runtime CoreCLR (utilisé dans la plateforme Windows universelle ).
Comme vous l'avez mentionné dans votre question, .NET Core n'est pas seulement open-source, mais également portable [fonctionne sur MacOS, Windows et Linux]
Les composants internes de .NET Core sont également optimisés pour ne pas utiliser différents modules de sa bibliothèque principale, sauf si cela est requis par l'application.
la source
Microsoft vient d'annoncer .NET Core v 3.0, qui est une version très améliorée de .NET Core.
Pour plus de détails, visitez cet excellent article: Différence entre .NET Framework et .NET Core d'avril 2019.
la source
.NET Core est un framework logiciel gratuit et open source géré pour les systèmes d'exploitation Windows, Linux et macOS. Il s'agit d'un successeur open source multiplateforme de .NET Framework.
Les applications .NET Core sont prises en charge sur Windows, Linux et macOS. En résumé, .NET Core est similaire au .NET Framework, mais il est multiplateforme, c'est-à-dire qu'il permet aux applications .NET de s'exécuter sur Windows, Linux et MacOS. Les applications du framework .NET ne peuvent s'exécuter que sur le système Windows. Ainsi, la différence fondamentale entre .NET Framework et .NET Core est que .NET Core est multiplateforme et .NET Framework ne fonctionne que sur Windows.
En outre, .NET Core dispose d'une injection de dépendances intégrée par Microsoft et vous n'avez pas à utiliser de logiciels tiers / fichiers DLL pour l'injection de dépendances.
la source
.NET Core est une version open source et multiplateforme de .NET. Les produits Microsoft, en plus des grandes capacités dont ils disposent, ont toujours été chers pour les utilisateurs habituels, en particulier les utilisateurs finaux de produits fabriqués par les technologies .NET.
La plupart des clients de bas niveau préfèrent utiliser Linux comme système d'exploitation et avant .NET Core, ils n'aimeraient pas utiliser les technologies Microsoft, malgré leurs grandes capacités. Mais après la production de .NET Core, ce problème est complètement résolu et nous pouvons satisfaire nos clients sans tenir compte de leur système d'exploitation, etc.
la source
.NET Core est une version open source et multiplateforme de .NET Framework.
la source