Qu’est-ce que .NET ?

Effectué

Quand quelqu’un utilise le terme .NET, sa signification dépend surtout du contexte. Dans cette unité, vous allez découvrir .NET en l’examinant en tant qu’écosystème. En d’autres termes, .NET est un ensemble de pièces et de personnes qui, réunies, créent un puissant environnement pour concevoir des applications.

.NET est un écosystème pour le développement d’applications

Le terme écosystème décrit les multiples facettes d’un environnement de développement d’applications et la communauté qui l’entoure. Ces facettes se combinent et justifient l’investissement dans l’apprentissage de .NET et la création d’applications .NET.

Utiliser les langages et compilateurs .NET pour exécuter des applications dans le runtime .NET

Les développeurs de logiciels utilisent des langages .NET comme C# et F# pour écrire du code source. Chaque ligne de code qu’ils écrivent exprime une instruction ou une commande que l’ordinateur doit traiter durant l’exécution du programme.

Pour pouvoir exécuter leur code, les développeurs doivent d’abord le compiler. Le compilateur .NET est un programme qui convertit le code source (pour un langage de programmation pris en charge) dans un langage portable appelé langage intermédiaire (IL). Le compilateur .NET enregistre le code IL dans un fichier appelé assembly .NET. En compilant le code dans un format intermédiaire, vous pouvez utiliser la même base de code partout où vous exécutez le code, que ce soit sur Windows, Linux ou sur du matériel informatique 32 bits / 64 bits.

Le runtime .NET est un environnement d’exécution de votre assembly .NET compilé. En d’autres termes, le runtime .NET est ce qui exécute et gère votre application lorsqu’elle s’exécute sur un système d’exploitation hôte. Nous aborderons plus en détail ce que fait le runtime .NET dans un instant.

Heureusement, en tant que développeur de logiciels qui commence à débute avec .NET, vous n’avez pas besoin de connaître dans les détails le fonctionnement de ces mécanismes. Avec l’expérience, vous serez plus à même de comprendre et apprécier la puissance sous-jacente des langages, des compilateurs et du runtime .NET.

Conseil

Les gens pensent souvent que le langage de programmation C# est .NET. Pourtant, C# et .NET sont distincts. C# est une syntaxe de langage de programmation. Dans le cadre de la syntaxe, vous pouvez référencer et appeler des méthodes définies dans des bibliothèques de code .NET ou des assemblys. Vous allez ensuite utiliser le compilateur C# installé avec le kit de développement logiciel (SDK) .NET pour créer un assembly .NET à partir de votre code C#. Le runtime .NET exécute ensuite les assemblys .NET. Ces distinctions sont des concepts importants dans votre découverte de .NET et C#.

Utiliser les bibliothèques et frameworks d’application .NET pour tirer parti des fonctionnalités prédéfinies

Tous les logiciels sont créés sous forme de couches, ce qui signifie qu’ils s’exécutent à différents niveaux d’abstraction sur un ordinateur :

  • Au niveau le plus bas, le logiciel communique directement avec le matériel de votre ordinateur. Il contrôle le flux des données sur la carte mère, les processeurs, la mémoire et les disques durs.
  • Au niveau suivant, le logiciel permet à l’utilisateur final de fournir des instructions via un système d’exploitation.
  • Au niveau suivant, un logiciel comme .NET vous permet de développer et d’exécuter des applications.
  • Au niveau suivant, des infrastructures d’application et des bibliothèques de fonctionnalités vous permettent de créer rapidement de riches applications en déployant moins d’efforts qu’avec des méthodes de développement plus anciennes.

Une bibliothèque de code encapsule la fonctionnalité pour un usage spécifique dans un assembly unique. Pour .NET, des milliers de bibliothèques sont disponibles. Ces bibliothèques peuvent être propriétaires ou tierces, et peuvent être commerciales ou open source. Les bibliothèques fournissent un large éventail de fonctionnalités que vous pouvez utiliser dans vos applications. Il vous suffit de référencer ces assemblys et d’appeler les méthodes dont vous avez besoin. Ainsi, en tant que développeur, vous vous appuyez sur le travail d’autres développeurs de logiciels. Vous économisez du temps et de l’énergie, car vous n’avez pas à créer et à gérer chaque fonctionnalité vous-même.

Un framework d’application combine plusieurs bibliothèques associées, ainsi que des projets de démarrage, des modèles de fichiers, des générateurs de code et d’autres outils. Vous pouvez utiliser ces ressources pour générer des applications entières dans un but précis. Ces frameworks d’application sont appelés modèles d’application. Par exemple, des infrastructures d'application .NET sont disponibles pour les modèles d’application populaires comme le développement web, le développement mobile et le développement d’application de bureau, ainsi que le développement de jeux.

Vous pouvez installer le SDK .NET directement ou en installant Visual Studio 2022. Le SDK .NET préinstalle un ensemble complet de bibliothèques et de frameworks d’application nommé bibliothèque de classes de base. Vous pouvez utiliser cette bibliothèque de code dans vos programmes, indépendamment de la plateforme ou des modèles d’application à générer.

Pour les autres bibliothèques tierces, les développeurs utilisent des gestionnaires de package tels que NuGet pour rechercher et intégrer des bibliothèques de code à partir de référentiels de packages comme la galerie NuGet.

Quels sont les principaux modèles d’application ?

Vous vous demandez peut-être quels sont les frameworks qui prennent en charge les différents modèles d’application. Utilisez le tableau suivant pour associer un modèle d’application à un framework .NET.

Modèle d’application Infrastructure Notes
Web ASP.NET Core Infrastructure pour générer une logique côté serveur.
Web ASP.NET Core MVC Infrastructure pour générer une logique côté serveur pour les pages ou les API web.
Web ASP.NET Core Razor Pages Infrastructure pour créer une application HTML générée par le serveur.
Client web Blazor Blazor fait partie de ASP.NET Core. Ses deux modes autorisent soit la manipulation de Document Object Model (DOM) par le biais de sockets en tant que véhicule de communication pour l’exécution de code côté serveur, soit une implémentation de WebAssembly pour l’exécution du langage C# compilé sur un navigateur.
Bureau .NET pour Mac Permet aux développeurs .NET de créer des applications pour les appareils Mac avec une interface utilisateur native et un accès aux API.
Bureau WinForms Infrastructure pour créer des applications de style Windows « battleship gray ».
Bureau Windows Presentation Foundation (WPF) Framework pour la génération d’applications de bureau dynamiques conformes à différents facteurs de forme. WPF permet aux éléments de formulaire d’effectuer des mouvements, des fondus, des glissements et d’autres effets à l’aide d’une bibliothèque enrichie d’animations.
Mobile .NET pour Android Permet aux développeurs .NET de créer des applications pour les appareils Android avec une interface utilisateur native et un accès aux API.
Mobile .NET pour iOS Permet aux développeurs .NET de créer des applications pour iOS et iPadOS avec une interface utilisateur native et un accès aux API.
Interface utilisateur d’application multiplateforme .NET MAUI Premier moyen de créer des applications pour iOS, Android, Mac et Windows à partir d’une seule base de code partagée avec une interface utilisateur native et un accès aux API natives.

.NET alimente aussi les moteurs et environnements de développement de jeux tiers et open source populaires, comme Unity.

Utiliser les outils .NET pour générer des applications .NET

Les développeurs de logiciels s’appuient sur des outils pour écrire du code, ajouter des références aux bibliothèques de code, compiler du code et déboguer du code. Cette section décrit plusieurs outils .NET que vous allez utiliser pour générer des applications .NET.

Visual Studio 2022 est l’environnement de développement phare de Microsoft. Des millions de développeurs l’utilisent pour générer des applications .NET. Une interface graphique utilisateur (qui comprend des menus, des fenêtres, des concepteurs visuels, des boîtes de dialogue et des Assistants) guide les développeurs tout au long du processus de développement d’applications. Visual Studio 2022 est disponible en trois éditions : Community, Professional et Enterprise. Chaque édition inclut différents outils et est concédée sous licence à des fins différentes.

Visual Studio Code est l’éditeur de code phare de Microsoft. Il prend en charge plusieurs langages de programmation et est lui-même pris en charge sur Windows, Mac et Linux. L’extension C# Dev Kit offre un meilleur développement C# orienté éditeur à Visual Studio Code. Elle améliore l’expérience de travail avec les projets .NET avec une prise en charge d’un explorateur de solutions, d’un système de projet, d’améliorations des tests et d’un explorateur, d’un développement assisté par l’IA et d’un puissant service de langage pour des fonctionnalités de langage C# optimales, telle que la navigation du code, la refactorisation, la sensibilisation sémantique, etc.

Les développeurs qui préfèrent un workflow en ligne de commande peuvent utiliser une combinaison de Visual Studio Code, l’éditeur de code le plus connu au monde, et de l’interface de ligne de commande .NET, également appelée CLI .NET.

En outre, vous pouvez choisir parmi de nombreux outils internes et tiers pour de nombreux cas d’usage .NET avancés. Les options incluent des profileurs de code, des exécuteurs de tests unitaires et des analyseurs de couverture du code.

Vous pouvez trouver d’autres outils .NET pour d’autres scénarios. Par exemple, plus loin dans ce module, vous allez utiliser avec Try .NET. Vous allez découvrir cette interface basée sur un navigateur pour écrire des applications simples qui vont vous aider à apprendre le langage de programmation C#.

Trouver des solutions et des réponses dans la documentation et les tutoriels

Microsoft propose activement un ensemble complet de documentation, tutoriels et formations. Vous trouverez des supports de formation dans des modalités appréciées pour vous aider à chaque étape de votre processus d’apprentissage.

Le tableau suivant présente quelques ressources intéressantes à ajouter à vos favoris et à consulter autant de fois que nécessaire.

Ressource Objectif
Microsoft Learn Fournit des tutoriels de démarrage rapide et une documentation de référence définitive.
Modèles et pratiques Aide les développeurs et les architectes de logiciels à trouver des solutions pour répondre aux besoins courants en matière de développement d’applications. Les ressources transcendent souvent les informations générales sur l’écriture de code pour s’intéresser au choix des produits et services qui permettent des architectures scalables apparemment illimitées.
Vidéos .NET Fournit des vidéos de tutoriels de l’équipe .NET. Ces vidéos guident les développeurs dans les scénarios d’utilisation courants.
Prise en main de C# Fournit des ateliers pratiques pour vous aider à développer vos compétences en combinant des enseignements, des exercices, des supports multimédias, des contrôles des connaissances et un moyen de suivre votre progression.

Interagir avec la communauté .NET pour apprendre et partager des solutions

L’écosystème .NET s’étend au-delà des langages, des bibliothèques et des outils pour vous. Vous êtes libre à la fois d’apprendre auprès de la communauté et d’y contribuer.

  • Apprendre : Les membres de la communauté .NET organisent des événements en ligne en direct et des réunions en présentiel. Ils créent des logiciels open source, participent à forums de questions/réponses et enregistrent des tutoriels vidéo. Ils écrivent des livres et rédigent des billets de blog qui vous permettent d’apprendre et d’avancer quand vous vous retrouvez bloqué.
  • Contribuer : .NET est disponible en open source sur GitHub. Les projets de ce dépôt sont gérés par la .NET Foundation. Cette organisation indépendante a vocation à développer un écosystème fiable, commercialement viable et open source autour de la plateforme de développement .NET. Dans ce dépôt, vous pouvez partager votre point de vue et votre vision pour aider les autres utilisateurs à apprendre.

Où se situe l’écosystème .NET par rapport aux autres ?

Si vous connaissez bien le monde du développement de logiciels, vous vous demandez peut-être où se situe l’écosystème .NET par rapport aux autres. Pour être honnête, d’autres écosystèmes peuvent revendiquer les mêmes choses que nombre des affirmations faites jusqu’à présent dans cette unité.

Toutefois, l’une des caractéristiques les plus distinctives de .NET est que son développement et son support continus proviennent non seulement d’un leader majeur du secteur des nouvelles technologies, mais également de la communauté. Des parties significatives de .NET ont été développées par des moyens open source. La participation et les contributions communautaires sont bienvenues et encouragées. En fait, 87 % des contributeurs ne font pas partie de Microsoft. En s’appuyant sur la participation communautaire, Microsoft fait activement évoluer la plateforme grâce à des améliorations de fonctionnalités et de performances ainsi que des correctifs de bogues. Plus de 100 000 demandes de tirage (pull request) émanant de la communauté ont été acceptées.

En outre, l’écosystème .NET connait un véritable élan :

  • Le nombre de développeurs .NET dépasse les 5 millions !
  • Les résultats des sondages Stack Overflow montrent régulièrement que .NET Core et .NET sont les frameworks qui ont le plus de succès.
  • Les étudiants aiment .NET ; 40 % des développeurs qui découvrent .NET sont des étudiants.
  • Les dépôts GitHub pour .NET et ASP.NET sont classés parmi les 30 projets OSS (logiciel Open Source) les plus rapides.
  • GitHub liste le C# parmi les cinq premiers langages de programmation, et celui-ci gagne en popularité selon l’index TIOBE 2020.
  • .NET dispose du framework web le plus rapide de la planète, d’après les benchmarks TechEmpower, un ensemble de benchmarks de performance web indépendants et open source, qui comparent des dizaines de langages et de frameworks d’application.

Un bref historique de .NET

Le programme .NET Framework d’origine a été publié pour la première fois début 2002. Depuis, de nombreuses mises à jour et fonctionnalités ont suivi. Après des années d’améliorations et de nouvelles fonctionnalités, le programme .NET Framework d’origine, et notamment les bibliothèques de codes clés, se sont considérablement multipliés.

Après 2002, Microsoft a déployé des efforts pour créer une version de .NET compatible avec plusieurs plateformes. L’objectif était de permettre aux développeurs d’écrire une seule base de code pour l’utiliser sur des systèmes d’exploitation macOS, Linux et Windows.

Grâce à ces efforts, .NET Core a été introduit courant 2014. Microsoft a conservé le .NET Framework d’origine, mais a décidé que les nouvelles fonctionnalités et améliorations seraient réservées au .NET Core. Core a par la suite été supprimé du nom. Les versions majeures qui ont suivi sont .NET 5, .NET 6, .NET 7, .NET 8 et ainsi de suite. Des versions sont généralement publiées chaque année en novembre.

Pourquoi l’historique de .NET mérite-t-il d’être mentionné ? Parce qu’il y a de fortes chances pour que vous trouviez des billets de blog, des vidéos et du code source ciblant le programme .NET Framework d’origine. Dans certains cas, les instructions ou le code fonctionnent encore, mais dans d’autres, vous aurez peut-être besoin d’effectuer des ajustements pour correspondre au nouveau .NET.