Qu'est-ce que le .NET Framework? La réponse de Microsoft à Java

Qu'est-ce que le .NET Framework? .NET défini

 .NET est un framework de développement logiciel - et un écosystème connexe d'outils, de langages et d'exécutions - créé par Microsoft pour faciliter le développement d'applications sur différentes plates-formes, des ordinateurs de bureau aux appareils mobiles. Bien que .NET (prononcé dot net, et parfois écrit comme .Net) était à l'origine lié au système d'exploitation Windows et aux plates-formes propriétaires de Microsoft lors de son lancement au début des années 2000, les applications .NET peuvent désormais être écrites pour le Web, MacOS, iOS. , Android, Linux, etc. - et .NET est un standard formel et officiellement disponible en open source.

Microsoft décrit .NET comme «un environnement de programmation orienté objet cohérent, que le code objet soit stocké et exécuté localement, exécuté localement mais distribué sur Internet ou exécuté à distance». .NET vise à fournir une exécution sûre du code, à offrir de meilleures performances que les langages interprétés et à rendre l'expérience des développeurs cohérente dans une grande variété d'applications. 

Principaux composants du .NET Framework

Le .NET Framework existe depuis près de 20 ans et a subi de nombreux changements, avec des composants en cours de déploiement et plus tard obsolètes au cours de cette période. Pour le moment, il existe trois couches principales pour .NET:

  • La bibliothèque standard .NET comprend les composants qui formeront l'infrastructure pour à peu près toutes les applications que vous écririez - des classes et des types utiles pour effectuer des tâches quotidiennes telles que le traitement des chaînes et des primitives, la création de connexions à la base de données, l'exécution d'E / S opérations, et ainsi de suite.
  • Les modèles d'application facultatifs contiennent du code de plomberie pour les différentes plates-formes sur lesquelles vous pouvez déployer votre application .NET. Il existe un certain nombre de modèles d'applications pour les applications Windows (héritage de l'étroite association de .NET avec le système d'exploitation phare de Microsoft en constante évolution) et pour d'autres plates-formes également: ASP.NET pour les applications Web, par exemple, et des modèles pour le Mac et divers plates-formes mobiles.
  • L' infrastructure commune est la couche de base des composants qui permettent à l'ensemble de l'écosystème de s'exécuter réellement dans la pratique, des compilateurs aux langages en passant par les composants d'exécution. Celles-ci sont essentielles pour comprendre ce que .NET a à offrir, nous les examinerons donc plus en détail dans les sections suivantes. 

Fonctionnement du .NET Framework

Les principaux composants du .NET Framework fonctionnent ensemble pour faciliter le processus d'écriture des applications. La bibliothèque standard et les modèles d'application fournissent beaucoup de code pour gérer les tâches de programmation de base pour vous afin que vous n'ayez pas à réinventer la roue avec chaque application que vous créez. Et l'infrastructure commune prend en charge une grande partie du travail de scut de déploiement de ces applications.

Le code écrit dans l'un des langages .NET (plus d'informations sur lequel dans un instant) est compilé dans un langage de bytecode intermédiaire appelé Common Intermediate Language , ou CIL. Le code CIL n'est pas lisible par l'homme, mais peut être porté sur des systèmes d'exploitation et des plates-formes. Le CIL est ensuite compilé à nouveau par le Common Language Runtime , ou CLR. Les implémentations CLR sont spécifiques à la plateforme et compilent le code CIL en code lisible par machine qui peut être exécuté sur la plateforme du moment. Différentes versions de CLR prennent en charge les compilations juste à temps et à l'avance.

Dans le processus de création de code local lisible par machine, le CLR gère également de nombreuses fonctionnalités d'application de bas niveau, telles que le ramasse-miettes et le threading, qui sont cruciales pour les performances des applications mais souvent fastidieuses à gérer pour les développeurs. Ensemble, le CIL et le CLR constituent l'infrastructure de langage commun .NET (CLI, et oui, nous savons que toutes ces abréviations sont similaires et prêtent à confusion).

Tout cela devrait sembler familier à quiconque a travaillé avec la plate-forme Java, car elle suit le même paradigme de base: les grandes bibliothèques de classes disponibles, le bytecode intermédiaire et le runtime spécifique à la plate-forme qui automatise la gestion de la mémoire sont toutes des fonctionnalités des deux offres. .NET a été développé à la fin des années 90, à l'apogée initiale de Java, et se positionnait à l'origine comme un concurrent de la plate-forme Java Enterprise Edition; le langage Java et C #, le premier et le plus important langage .NET, sont tous deux dérivés de C et sont sémantiquement similaires.

Quels sont les langages de programmation .NET?

C #, annoncé en grande pompe lors du lancement de .NET en 2000, est le langage de programmation .NET le plus connu et le plus utilisé. Il a été développé en interne par Microsoft dans le cadre de l'initiative .NET, et la plupart des classes de la bibliothèque standard .NET sont écrites en C #. Le langage est orienté objet et est conçu pour être suffisamment similaire au C pour être facile à apprendre et à utiliser pour les développeurs C, C ++, Java et JavaScript.

Microsoft met également au premier plan deux autres langages de programmation qui peuvent être utilisés pour écrire pour le .NET Framework. L'un est F #, un langage de programmation fonctionnel qui fait partie de la famille des langages ML qui a finalement des racines dans LISP; l'autre est Visual Basic, le vénérable langage de programmation de Microsoft pour le développement d'applications client-serveur. Mais ce ne sont que la pointe de l'iceberg: étant donné que .NET est composé de standards ouverts, n'importe qui peut écrire un langage qui se compile en bytecode CIL et peut être exécuté par le CLR. Wikipedia a une liste de plus de 20 projets de langage CLI actuellement maintenus. Presque tous représentent des ports .NET de langages existants, de Pascal à JavaScript en passant par COBOL.

Le fait que cette diversité de langages puisse coexister au sein du .NET Framework est l'une des forces de la plateforme. Comme le code est entièrement compilé en bytecode CIL, .NET ne se soucie pas vraiment de la langue dans laquelle vous l'écrivez; vous pouvez choisir une langue en fonction de vos propres préférences, des différentes forces et faiblesses de chaque langue, ou des différents aspects du .NET Framework auxquels chaque langue vous donne accès (il existe quelques variantes ici). Comme indiqué, la plupart de la bibliothèque standard a été écrite en C #, mais cela ne vous empêche pas d'accéder à ces classes à partir de code écrit dans d'autres langages CLI. En effet, les composants écrits dans différents langages CLI peuvent librement interagir à travers une application .NET.

.NET Framework contre .NET Core (et au-delà) 

Vous remarquerez que nous avons utilisé «.NET Framework» tout au long de cet article pour faire référence à la plateforme en général. À proprement parler, ce n'est pas correct: Microsoft utilise cette expression pour faire référence à sa propre implémentation de longue date de .NET Standard, qui se concentre exclusivement sur Windows. Il y a eu historiquement d'autres implémentations de .NET; l'un des plus connus est Mono, une implémentation open source lancée pour la première fois en 2004 et qui a permis d'exécuter des applications .NET sous Linux. (La publication a donné lieu à une controverse, car c'était l'époque où il y avait encore un peu de mauvais sang entre Microsoft et la communauté open source.) Mono forme maintenant la base de la plate-forme Xamarin, ce qui permet de construire .NET applications pour iOS, Android et MacOS ainsi que Linux. Xamarin a commencé sa vie comme une idée originale des fondateurs de Mono,mais la société qu'ils ont fondée pour soutenir le projet a finalement été rachetée par Microsoft.

La troisième implémentation majeure de .NET de Microsoft est .NET Core, une implémentation multiplateforme de .NET Standard qui a été publiée en open source en 2016. .NET Core a été conçu à partir de zéro et a supprimé une partie de la cruauté qui s'était accumulée dans .NET Framework, mais il lui manquait également la gamme complète de fonctionnalités. Avoir plusieurs versions du .NET Standard, toutes de Microsoft, est naturellement quelque peu déroutant. En 2017, le chroniqueur Simon Bisson s'est demandé quelle implémentation utiliser dans quels contextes.

Mais tout cela va changer dans un avenir pas si lointain. En novembre 2020, Microsoft a l'intention d'unifier les trois implémentations .NET en .NET 5. .NET 5 sera essentiellement la prochaine génération de .NET Core, avec de nombreux composants du .NET Framework et de Xamarin intégrés. Cependant, un certain nombre d'API .NET Framework ne feront pas le déplacement vers .NET 5. Le mouvement vise à simplifier les choses pour les développeurs et à concentrer les efforts de Microsoft.

De quel .NET Framework ai-je?

Au moment d'écrire ces lignes, cependant, c'est plus d'un an de congé. La dernière version actuelle de .NET Framework est 4.8; la version actuelle de .NET Core est 3.0. Microsoft a une page avec des instructions sur la façon dont vous pouvez savoir quelle version du .NET Framework est actuellement installée sur votre ordinateur.

À quoi sert .NET? 

Donc, tout cela vous donne beaucoup de quoi et comment; mais ce que vous vous demandez peut-être encore, c'est pourquoi. Pourquoi utiliser le .NET Framework? Le blog Altexsoft présente une bonne répartition des avantages et des inconvénients de .NET. Du côté positif, .NET fournit un modèle de programmation orienté objet avec un système de mise en cache fiable et simple et un IDE mature, et il permet un déploiement flexible et une maintenance facile. En outre, la nature multiplateforme de .NET permet au code d'être porté vers de nombreux types de points de terminaison. .NET est le plus approprié si vous créez des applications multiplateformes sur des infrastructures à l'échelle de l'entreprise que vous souhaitez pouvoir mettre à l'échelle sans avoir à complètement rééquiper.

Téléchargez le .NET Framework

Prêt à commencer à expérimenter avec .NET? Téléchargez le .NET Framework (pour Windows) ou .NET Core (pour Windows, Linux ou MacOS) à partir du site Web de Microsoft; Des images Docker sont également disponibles. Vous pouvez trouver Xamarin pour iOS et Android sur GitHub. Bonne exploration!