Fermer

mars 30, 2020

La différence entre .NET Core, .NET Framework et Xamarin


Découvrez la différence entre .NET Core, .NET Framework et Xamarin et que vous devez utiliser pour le développement de vos applications.

Si vous développez sur la pile Microsoft ou si vous entendez des mises à jour concernant les technologies liées à Microsoft pour la création de logiciels, vous rencontrerez probablement des termes tels que .NET Framework, .NET Core, .NET Standard et Xamarin. Vous avez peut-être lu la documentation à leur sujet, mais vous ne savez toujours pas en quoi ils diffèrent et quand choisir l'un plutôt que l'autre. Dans cet article, je parlerai de .NET Framework, .NET Core, Xamarin et de leurs différences.

.NET Framework

Le .NET Framework a été publié en 2002 et fonctionne principalement sur Windows. Il est livré avec le système d'exploitation Windows et se met à jour via Windows Update lorsque de nouvelles versions deviennent disponibles ou via des programmes d'installation autonomes en option. Il comprend la bibliothèque de classes (.NET Framework Class Library) qui fournit l'interopérabilité des langues entre les langues prises en charge et le Common Language Runtime (CLR), qui est l'environnement dans lequel le code est exécuté.

The Inception of Xamarin

The .NET Framework s'exécute principalement sur Windows et si vous utilisez Linux, vous ne pouvez pas développer d'applications .NET sur Linux ou publier vos programmes .NET sur des systèmes d'exploitation non Windows. Cependant, Microsoft a publié plus tard la Common Language Infrastructure qui est une spécification ouverte développée par Microsoft et normalisée par ISO et Ecma. Avec cette norme, une version du .NET Framework a été développée pour fonctionner sous Linux et s'appelle Mono . Mono a évolué pour prendre en charge une large gamme de systèmes d'exploitation et d'applications. Mono est une implémentation multiplateforme du .NET Framework et il est utilisé pour créer des applications de bureau et mobiles pour n'importe quel système d'exploitation.

Xamarin est une entreprise qui a démarré en 2011 en mettant l'accent sur la création d'une suite d'outils permettant développement de plateforme avec C #. Ils ont maintenu le projet Mono, y compris MonoTouch qui a permis aux développeurs de créer des applications iOS avec C # et Mono pour Android pour créer des applications Android en C #. Le projet Mono a évolué depuis que Xamarin a pris le relais et ils ont publié Xamarin.iOS, Xamarin.Android, Xamarin.Mac et d'autres outils qui permettent le développement d'applications natives multiplateformes en C #.

Xamarin.iOS et Xamarin.Android sont des implémentations de Mono pour iPhone et smartphones basés sur Android. En février 2016, Microsoft a acquis Xamarin Inc. et a progressivement intégré la plate-forme et les outils Xamarin à l'offre Visual Studio et .NET. Aujourd'hui, Xamarin est une plate-forme qui étend la plate-forme de développement .NET avec des outils et des bibliothèques pour créer des applications pour Android, iOS, tvOS, watchOS, macOS et Windows. Les applications Xamarin utilisent Mono comme implémentation .NET pour exécuter les applications et vous pouvez créer ces projets à partir de Visual Studio ou Visual Studio pour Mac. Les fonctionnalités uniques que Xamarin apporte à l'écosystème .NET incluent:

  • Framework de base pour accéder aux fonctionnalités natives
  • Extensible Markup Language connu sous le nom de XAML, pour créer des applications mobiles dynamiques en utilisant C #
  • Bibliothèques pour les modèles courants tels que Model View ViewModel (MVVM)
  • Bibliothèques spécifiques à la plate-forme
  • Extensions de l'éditeur pour fournir la coloration syntaxique, l'achèvement du code, les concepteurs et d'autres fonctionnalités spécifiques au développement de pages mobiles.

Évolution vers. NET Core

.NET Framework est un cadre monolithique qui s'exécute uniquement sur Windows et doit être installé pour chaque machine qui doit exécuter des applications .NET sur Windows. Sa nature monolithique a également provoqué un cycle de libération lent. Dans le monde d'aujourd'hui où les architectures sans serveur et microservices sont largement adoptées, nous avons besoin d'un cadre léger avec peu d'empreinte mémoire pour exécuter nos applications, et le cadre .NET ne fonctionne pas bien dans cet espace. Cependant, Microsoft souhaite innover et satisfaire cette base d'utilisateurs. Ainsi, .NET Core a été conçu à partir de zéro pour jeter les bases de l'avenir de la plate-forme .NET et pour inclure une architecture flexible et modulaire qui permettrait à Microsoft d'innover sur ses offres.

.NET Core est un système léger et modulaire et l'implémentation multiplateforme de .NET pour créer des applications Web, des microservices, des bibliothèques et des applications de console modernes qui s'exécutent sur Windows, Linux et macOS. .NET Core est composé de packages Nuget afin que vous puissiez installer uniquement les modules ou packages nécessaires pour exécuter votre application, et que vous pouvez les regrouper avec votre application et vos utilisateurs n'ont pas besoin d'installer le framework sur leur machine.

Son architecture modulaire signifie un cycle de publication plus rapide de la part de l'équipe .NET. Étant léger, modulaire, rapide et multiplateforme, vous pouvez l'utiliser pour des applications de microservices et les déployer dans des conteneurs Linux. Vous pouvez également l'exécuter sur des plates-formes sans serveur.

Bien qu'il existe différentes implémentations de .NET, l'objectif est de maintenir une API cohérente via la spécification standard .NET. Alors que la Common Language Interface (spécification ECMA 335) établit un petit ensemble de bibliothèques standard pour l'implémentation .NET, la spécification .NET Standard englobe une gamme plus large d'API. Son objectif est de:

  • Définir un ensemble uniforme d'API BCL pour toutes les implémentations .NET à implémenter, indépendamment de la charge de travail
  • Permettre aux développeurs de produire des bibliothèques de classes portables utilisables dans les implémentations .NET, en utilisant ce même ensemble d'API
  • Réduire la compilation conditionnelle de sources partagées

Conclusion

Dans cet article, j'ai brièvement parcouru l'histoire de .NET et ses différentes implémentations. L'interface de langage commun est une spécification ouverte normalisée par ISO et Ecma, qui définit un ensemble d'API auxquelles toute implémentation de .NET doit adhérer. Le .NET Framework classique est une implémentation de cette spécification, tout comme .NET Core (qui est une évolution de .NET Framework mais conçu pour être indépendant de la plate-forme et modulaire) et Xamarin (qui comprend Mono, Xamarin.iOS, Xamarin.Mac et Xamarin.Android).





Source link