{
    "id": 313,
    "type": "post",
    "title": ".NET : la plateforme multi-langages de Microsoft",
    "slug": "net",
    "url": "https://www.dico-micro.com/net/",
    "description": ".NET est la plateforme multi-langages de Microsoft dont le moteur CLR compile tout code, quel que soit le langage d’origine, vers un langage intermédiaire commun.",
    "chapo": ".NET est la plateforme multi-langages de Microsoft dont le moteur CLR compile tout code, quel que soit le langage d’origine, vers un langage intermédiaire commun.",
    "date_published": "2023-07-01T13:29:56+02:00",
    "date_modified": "2026-09-26T16:32:35+02:00",
    "language": "fr-FR",
    "translations": null,
    "categories": [
        {
            "name": "Actus high-tech",
            "url": "https://www.dico-micro.com/sujet/actus-high-tech/"
        }
    ],
    "tags": [],
    "word_count": 712,
    "reading_time_min": 4,
    "image": "https://www.dico-micro.com/wp-content/uploads/2026/09/net.jpg",
    "image_alt": ".NET : la plateforme multi-langages de Microsoft",
    "author": {
        "name": "Dico Micro",
        "url": "https://www.dico-micro.com/author/dico-micro/",
        "bio": "La rédaction de Dico Micro : matériel, logiciels et culture geek, expliqués sans jargon.",
        "avatar": "https://www.dico-micro.com/uploads/auteurs/dico-micro-robot.webp"
    },
    "content_markdown": "**.NET** (on prononce « dotnet ») désigne une plateforme de développement proposée par Microsoft pour construire des applications d’entreprise multi-niveaux à base de composants. C’est la réponse de Microsoft à la plateforme J2EE de Sun, portée dès l’origine par une communauté d’utilisateurs dont les retours ont façonné les spécifications. Ces spécifications ont ensuite été ratifiées par l’ECMA (European Computer Manufacturers Association), un organisme international de normalisation, ce qui a permis à des éditeurs tiers de proposer leurs propres implémentations sur d’autres systèmes d’exploitation que Windows.\n\nDans la pratique, on parle plutôt de « framework » (littéralement « socle ») pour désigner l’ensemble des services et de l’infrastructure d’exécution que .NET met à disposition d’un développeur. Trois briques composent ce socle, et comprendre leur rôle respectif aide à situer où intervient chaque outil quand on travaille avec .NET.\n\n## L’environnement d’exécution : CLR, MSIL et JIT\n\nLe cœur du framework est un moteur d’exécution appelé CLR (Common Language Runtime). Il compile le code source de l’application en un langage intermédiaire baptisé MSIL (Microsoft Intermediate Language), un peu à la manière du bytecode d’une machine virtuelle Java. Lors de la première exécution, ce code MSIL est à son tour compilé à la volée en code natif spécifique au système, grâce à un compilateur JIT (Just In Time).\n\nAutour de ce moteur central, deux environnements d’exécution répondent à deux usages différents : ASP.NET pour les applications et services web, et WinForms pour les applications de bureau dites « lourdes ». C’est cette distinction qui explique pourquoi un même socle .NET peut servir aussi bien à faire tourner un site marchand qu’un logiciel de comptabilité installé localement.\n\n  **MSIL, la clé de la portabilité**\n\nComme le code source est compilé une première fois vers un langage intermédiaire commun, un programme .NET peut, en théorie, s’exécuter sur n’importe quelle plateforme disposant d’un CLR compatible, sans être recompilé depuis les sources.\n\n## Les services : la Framework Class Library\n\nLa deuxième brique regroupe les services sous la forme d’un ensemble hiérarchisé de classes, la FCL (Framework Class Library). Cette bibliothèque orientée objet fournit des fonctionnalités toutes prêtes pour les besoins courants d’un développeur : manipulation de fichiers, accès réseau, gestion des collections, sécurité, et bien d’autres. Le SDK (Software Development Kit) fournit l’implémentation concrète de ces classes, prête à être utilisée dans un projet.\n\n![Schéma des couches du framework .Net : CLR, langage intermédiaire MSIL et bibliothèque FCL](https://www.dico-micro.com/images/net-framework.png)\n\n## Un socle multi-langages\n\nGrâce au CLR, la plateforme .NET reste indépendante du langage de programmation utilisé et prend nativement en charge un grand nombre d’entre eux, parmi lesquels C#, C++, Visual Basic, Cobol, Fortran, Eiffel, Pascal, Perl, Python ou encore J#. Cette liste, longue, illustre un principe simple : le CLR ne se soucie pas du langage d’origine, seul compte le MSIL qu’il produit en sortie.\n\n  **Un langage compilé en MSIL peut en appeler un autre**\n\nDeux composants écrits dans deux langages différents, l’un en C# et l’autre en Visual Basic par exemple, peuvent s’appeler mutuellement sans conversion, du moment qu’ils passent tous les deux par le CLR.\n\n## Le langage C#\n\nParmi tous ces langages, C# occupe une place particulière : il a été développé spécifiquement pour .NET. Il s’appuie sur les principes de la [programmation par objets](https://www.dico-micro.com/glossaire/p/#programmation-par-objets) et reste dérivé de C++, dont il reprend les grandes caractéristiques tout en simplifiant nettement l’écriture du code, notamment sur la gestion de la mémoire et la syntaxe des classes.\n\n## Visual Studio .NET, l’outil et non le socle\n\nUne confusion revient souvent : Visual Studio .NET ne fait pas partie du framework .NET. Il s’agit d’un environnement de développement intégré, proposé par Microsoft, pour écrire, déboguer et compiler des applications conformes aux spécifications .NET. On peut très bien développer en .NET sans Visual Studio, avec un simple éditeur de texte et le SDK en ligne de commande : ce serait juste beaucoup moins confortable.\n\n  **Une norme, pas un simple produit Microsoft**\n\nLe passage par l’ECMA a transformé .NET en standard ouvert sur le papier, ce qui a rendu possibles des implémentations tierces capables de faire tourner du code .NET en dehors de Windows.\n\nRetenez la hiérarchie : le CLR exécute, la FCL fournit les briques logicielles, et un langage comme C# sert à écrire le code source qui sera compilé en MSIL. Visual Studio, lui, reste un outil de confort autour de cet ensemble, pas une pièce du moteur.",
    "content_html": "<p><strong>.NET</strong> (on prononce « dotnet ») désigne une plateforme de développement proposée par Microsoft pour construire des applications d’entreprise multi-niveaux à base de composants. C’est la réponse de Microsoft à la plateforme J2EE de Sun, portée dès l’origine par une communauté d’utilisateurs dont les retours ont façonné les spécifications. Ces spécifications ont ensuite été ratifiées par l’ECMA (European Computer Manufacturers Association), un organisme international de normalisation, ce qui a permis à des éditeurs tiers de proposer leurs propres implémentations sur d’autres systèmes d’exploitation que Windows.</p>\n\n<p>Dans la pratique, on parle plutôt de « framework » (littéralement « socle ») pour désigner l’ensemble des services et de l’infrastructure d’exécution que .NET met à disposition d’un développeur. Trois briques composent ce socle, et comprendre leur rôle respectif aide à situer où intervient chaque outil quand on travaille avec .NET.</p>\n\n<h2>L’environnement d’exécution : CLR, MSIL et JIT</h2>\n\n<p>Le cœur du framework est un moteur d’exécution appelé CLR (Common Language Runtime). Il compile le code source de l’application en un langage intermédiaire baptisé MSIL (Microsoft Intermediate Language), un peu à la manière du bytecode d’une machine virtuelle Java. Lors de la première exécution, ce code MSIL est à son tour compilé à la volée en code natif spécifique au système, grâce à un compilateur JIT (Just In Time).</p>\n\n<p>Autour de ce moteur central, deux environnements d’exécution répondent à deux usages différents : ASP.NET pour les applications et services web, et WinForms pour les applications de bureau dites « lourdes ». C’est cette distinction qui explique pourquoi un même socle .NET peut servir aussi bien à faire tourner un site marchand qu’un logiciel de comptabilité installé localement.</p>\n\n<aside class=\"bluf bluf-bleu\">\n<strong>MSIL, la clé de la portabilité</strong>\n<p>Comme le code source est compilé une première fois vers un langage intermédiaire commun, un programme .NET peut, en théorie, s’exécuter sur n’importe quelle plateforme disposant d’un CLR compatible, sans être recompilé depuis les sources.</p>\n</aside>\n\n<h2>Les services : la Framework Class Library</h2>\n\n<p>La deuxième brique regroupe les services sous la forme d’un ensemble hiérarchisé de classes, la FCL (Framework Class Library). Cette bibliothèque orientée objet fournit des fonctionnalités toutes prêtes pour les besoins courants d’un développeur : manipulation de fichiers, accès réseau, gestion des collections, sécurité, et bien d’autres. Le SDK (Software Development Kit) fournit l’implémentation concrète de ces classes, prête à être utilisée dans un projet.</p>\n\n<p align=\"center\"><img style=\"vertical-align: middle;\" src=\"/images/net-framework.png\" alt=\"Schéma des couches du framework .Net : CLR, langage intermédiaire MSIL et bibliothèque FCL\"></p>\n\n<h2>Un socle multi-langages</h2>\n\n<p>Grâce au CLR, la plateforme .NET reste indépendante du langage de programmation utilisé et prend nativement en charge un grand nombre d’entre eux, parmi lesquels C#, C++, Visual Basic, Cobol, Fortran, Eiffel, Pascal, Perl, Python ou encore J#. Cette liste, longue, illustre un principe simple : le CLR ne se soucie pas du langage d’origine, seul compte le MSIL qu’il produit en sortie.</p>\n\n<aside class=\"bluf bluf-vert\">\n<strong>Un langage compilé en MSIL peut en appeler un autre</strong>\n<p>Deux composants écrits dans deux langages différents, l’un en C# et l’autre en Visual Basic par exemple, peuvent s’appeler mutuellement sans conversion, du moment qu’ils passent tous les deux par le CLR.</p>\n</aside>\n\n<h2>Le langage C#</h2>\n\n<p>Parmi tous ces langages, C# occupe une place particulière : il a été développé spécifiquement pour .NET. Il s’appuie sur les principes de la <a href=\"/glossaire/p/#programmation-par-objets\">programmation par objets</a> et reste dérivé de C++, dont il reprend les grandes caractéristiques tout en simplifiant nettement l’écriture du code, notamment sur la gestion de la mémoire et la syntaxe des classes.</p>\n\n<h2>Visual Studio .NET, l’outil et non le socle</h2>\n\n<p>Une confusion revient souvent : Visual Studio .NET ne fait pas partie du framework .NET. Il s’agit d’un environnement de développement intégré, proposé par Microsoft, pour écrire, déboguer et compiler des applications conformes aux spécifications .NET. On peut très bien développer en .NET sans Visual Studio, avec un simple éditeur de texte et le SDK en ligne de commande : ce serait juste beaucoup moins confortable.</p>\n\n<aside class=\"bluf bluf-orange\">\n<strong>Une norme, pas un simple produit Microsoft</strong>\n<p>Le passage par l’ECMA a transformé .NET en standard ouvert sur le papier, ce qui a rendu possibles des implémentations tierces capables de faire tourner du code .NET en dehors de Windows.</p>\n</aside>\n\n<p>Retenez la hiérarchie : le CLR exécute, la FCL fournit les briques logicielles, et un langage comme C# sert à écrire le code source qui sera compilé en MSIL. Visual Studio, lui, reste un outil de confort autour de cet ensemble, pas une pièce du moteur.</p>",
    "alternates": {
        "html": "https://www.dico-micro.com/net/",
        "markdown": "https://www.dico-micro.com/net.md",
        "json": "https://www.dico-micro.com/api/post/net.json"
    },
    "site": {
        "name": "Dico Micro",
        "url": "https://www.dico-micro.com/"
    },
    "license": "Reproduction autorisée avec lien vers la source."
}