.NET Framework

logiciel informatique

Le .NET Framework[N 1] (abr. NetFx[réf. nécessaire]) est un cadriciel (framework) propriétaire de Microsoft qui s’exécute principalement sur Microsoft Windows, et Microsoft Windows Mobile depuis la version 5[réf. nécessaire] (.NET Compact Framework). Il s’agissait de l’implémentation principale de la Common Language Infrastructure (CLI), jusqu’à la sortie d’une nouvelle implémentation multiplateforme appelée simplement .NET.

.NET Framework
Description de l'image Microsoft .NET logo.svg.
Description de l'image DotNet.svg.
Informations
Développé par Microsoft
Première version Voir et modifier les données sur Wikidata
Dernière version 4.8.1 ()[1]Voir et modifier les données sur Wikidata
Système d'exploitation Microsoft WindowsVoir et modifier les données sur Wikidata
Environnement Windows
Formats lus Microsoft .NET XML Resource template (UTF-8) (d), Microsoft .NET XML Resource template (d), .NET Framework Resource data (d), .NET Micro Framework TinyFont (d) et .NET Micro Framework PE executable (d)Voir et modifier les données sur Wikidata
Formats écrits Microsoft .NET XML Resource template (UTF-8) (d), Microsoft .NET XML Resource template (d), .NET Framework Resource data (d), .NET Micro Framework TinyFont (d) et .NET Micro Framework PE executable (d)Voir et modifier les données sur Wikidata
Type Infrastructure de développement
Politique de distribution incorporé dans Windows et téléchargement gratuit
Licence CLUF propriétaire
Site web dotnet.microsoft.comVoir et modifier les données sur Wikidata

Chronologie des versions

Une version légère et limitée fournie avec un moteur d'exécution fonctionnant à l'intérieur d'un navigateur ou d'un périphérique mobile[pas clair] a été rendue disponible sous le nom de Silverlight. La version 3.0 du cadriciel a été intégrée à Windows Vista et à la plupart des versions de Windows Server 2008. La version 4.5.1 est intégrée à Windows 8, la version 4.6 est intégrée à Windows 10[réf. nécessaire] et la version 4.8 à Windows 11.

Environnement d’exécution

modifier

.NET Framework s'appuie sur la norme Common Language Infrastructure (CLI), qui est indépendante du langage de programmation utilisé. Ainsi, tous les langages compatibles respectant la norme CLI ont accès à toutes les bibliothèques installées (installables) dans l'environnement d'exécution; un logiciel écrit en C# peut par exemple utiliser des bibliothèques implémentées en Visual Basic .NET. Le cadriciel .NET Framework est un sous ensemble de la technologie Microsoft .NET.[réf. souhaitée]

Il a pour but de faciliter la tâche des développeurs en proposant une approche unifiée à la conception d'applications Windows ou web, tout en introduisant des facilités pour le développement, le déploiement et la maintenance d'applications. Il a besoin d'être installé sur la machine de l'utilisateur final, rendant les applications créées sous cet environnement impropres à un usage portable.

Les programmes utilisant le .NET framework s’exécutent en effet dans un environnement d’exécution logiciel plutôt que directement sur le hardware de la machine hôte. Cet environnement virtualisé, le Common Language Runtime (CLR), est similaire à une machine virtuelle fournissant des services intégrés tels que la gestion mémoire, des couches de sécurité, la gestion d’exceptions…

Par ailleurs, .NET Framework fournit une bibliothèque standard nommée Framework Class Library (FCL). La combinaison de FCL et CLR constitue le framework à proprement parler.

La plate-forme .Net hérite du Framework .Net et du CLR

modifier

.NET Framework s'inscrit dans la plateforme logicielle Microsoft .NET, laquelle permet en outre de gérer tous les aspects de l'exécution d'une application dans un environnement d'exécution dit « managé » :

  • allocation de mémoire pour le stockage des données et des instructions du programme ;
  • autorisation ou refus des droits à l'application ;
  • démarrage et gestion de l'exécution ;
  • gestion de ré-allocation de la mémoire pour les ressources qui ne sont plus utilisées.

Elle est composée de deux principaux blocs : une bibliothèque logicielle .NET et une machine virtuelle compatible Common Language Infrastructure (CLI), sous les noms de Common Language Runtime (CLR) et Dynamic Language Runtime (DLR). CLR est le composant de machine virtuelle pour le cadriciel .NET framework. Il s'agit de l'implémentation par Microsoft du standard Common Language Infrastructure (CLI) qui définit l'environnement d'exécution des codes de programmes. Le CLR fait tourner un bytecode nommé Common Intermediate Language (CIL). Le compilateur à la volée transforme le code CIL en code natif spécifique au système d'exploitation.

Bibliothèques de classes .NET

modifier

Il y a trois couches au-dessus du Common Language Runtime (CLR), chacune comportant des classes apportant des fonctionnalités de plus en plus évoluées.

Base Class Library

modifier

Dans la première couche se trouve la Base Class Library (BCL), rassemblant des classes permettant les manipulations de chaînes de texte, la gestion des entrées/sorties, des communications réseaux, des processus légers et le design des interfaces graphiques. Ces classes sont similaires à celles présentes dans l'API Java développée par Sun Microsystems. La manipulation des chaînes de caractères, par exemple, est disponible dans la classe String, dans les deux langages ; la différence étant qu'en Java il n'existe pas de type de base pour manipuler les chaînes (on manipule des objets String), alors qu'en .NET, le type string (avec un « s » minuscule) a spécifiquement été défini.

Classes d'accès aux données

modifier

La deuxième couche est composée de deux bibliothèques de classes d'accès aux données. Tout d'abord, ADO.NET, s'élevant sur les bases de l'ancien ADO (ActiveX Data Objects) utilisé par les développeurs ASP, et permettant l'accès sous format XML aux interfaces de bases de données SQL Server, ODBC, OLE DB, Oracle et Sybase, et bien sûr aux fichiers XML. Les XML Classes permettent de manipuler les données XML. On y trouve par exemple les classes XSLT permettant la transformation d'un document XML vers n'importe quel type d'autre document. Un autre exemple, il est très facile de charger un document XML dans une table, et vice versa, grâce au XML sous-jacent.

XML Web Services, Web Forms, Windows Forms

modifier

La dernière couche, la plus élevée, est utilisée pour la création de services web, de pages Web, et d'applications Windows. Les deux premiers forment ASP.NET, là aussi une référence à l'ancien langage de programmation Web. Les pages internet ayant pour extension .aspx sont généralement des pages Web écrites en .NET, tandis que les pages écrites en ASP se terminent généralement en .asp.

Infrastructure .NET

modifier
 
La pile de composants du .NET Framework

Structure d'une application .NET

modifier

L'unité de base d'une application .NET est appelée un assemblage (assembly). Il s'agit d'un ensemble de code, de ressources et de métadonnées. Un assemblage est toujours accompagné par un manifeste (assembly manifest) qui décrit ce qu'il contient : nom, version, types de données exposées, autres assemblages utilisés, instructions de sécurité. Un assemblage est composé d'un ou plusieurs modules qui contiennent le code.

Compilation et exécution d'une application .NET

modifier

Tout comme en Java, quand une application .NET est compilée, elle n'est pas compilée en code binaire machine, mais dans un code binaire intermédiaire CIL. Une application consiste donc en un ensemble d'assemblages contenus dans un ou plusieurs fichiers exécutables ou fichiers DLL en Common Intermediate Language (CIL). Au moins un de ces assemblages doit contenir un point d'entrée afin de démarrer l'application.

Quand l'exécution d'un programme démarre, le premier assemblage est chargé en mémoire. Le CLR commence par examiner les permissions demandées par cet assemblage et les compare à la politique de sécurité (security policy) du système. Puis, si l'assemblage est autorisé à s'exécuter, un processus est créé pour exécuter l'application. Le premier morceau de code nécessaire à l'exécution est chargé en mémoire et est compilé en code binaire natif par le compilateur juste à temps (Just-In-Time, JIT). Une fois compilé, le code est exécuté et stocké en mémoire sous forme de code natif, garantissant ainsi que chaque portion de code n'est compilée qu'une seule fois lors de l'exécution de l'application.

Versions

modifier

Microsoft a commencé le développement du .NET Framework à la fin des années 1990 sous le nom de Next Generation Windows Services (NGWS ou « Prochaine génération de services Windows »). La première version bêta du framework (.Net 1.0) est disponible à la fin de l'an 2000.

Versions du framework .NET
Version CLR Sortie Livré avec
Visual Studio
Préinstallé avec Windows Comprend
Client Serveur
1.0 1.0 13 février 2002 .NET 2002 NC NC NC
1.1 1.1 24 avril 2003 .NET 2003 NC 2003
2.0 2.0 7 novembre 2005 2005 NC 2003 R2
3.0 6 novembre 2006 NC Vista NC 2.0
3.5 3.5 19 novembre 2007 2008 NC NC 3.0 SP1 (2.0 SP1)
3.5.1 4 février 2008 NC NC 2008
3.5 SP1 11 août 2008 2008 SP1 NC NC 3.0 SP2 (2.0 SP2)
3.5.1 SP1 22 juillet 2009 NC 7 2008 R2
4 4.0 4.0 12 avril 2010 2010 NC NC NC
(mise à jour sur place)
4.5 15 août 2012 2012 8 2012
4.5.1 17 octobre 2013 2013 8.1 2012 R2
4.5.2 5 mai 2014 NC NC NC
4.6 2015 10 v1507 NC
4.6.1 2015 U1 10 v1511 NC
4.6.2 2017 v15.0 10 v1607 2016
4.7 2017 v15.3 10 v1703 NC
4.7.1 2017 v15.5 10 v1709 v1709
4.7.2 2017 v15.8 10 v1803–1809 v1803–1809, 2019
4.8 2019 v16.3 10 v1903–22H2, 11 v21H2 v1903–20H2, 2022
4.8.1 2022 v17.3 11 v22H2 NC


Pour connaître quelle(s) version(s) du Framework est(sont) installée(s) sur un poste Windows, il suffit de consulter le répertoire C:\WINDOWS\Microsoft.NET\Framework (chaque sous-répertoire non vide correspondant à une version présente) ou le panneau de configuration Ajouter ou supprimer des programmes.

.NET Framework 1.0

modifier

Première version du .Net Framework. Elle est disponible depuis le et fonctionne sur les plates-formes Windows : Windows 98, NT 4.0, 2000, XP.

.NET Framework 1.1

modifier

C'est la première évolution majeure du .NET Framework. Elle est disponible sous la forme d'un composant redistribuable ou d'un kit de développement et a été publiée le . C'est aussi une partie de la deuxième version de Microsoft Visual Studio .NET (connue sous le nom de Visual Studio .NET 2003). C'est la première version du .NET Framework à faire partie d'un système d'exploitation Windows Server 2003.

Changements depuis la version 1.0

modifier
  • Support intégré pour les contrôles ASP.NET ; il fallait anciennement installer un composant supplémentaire
  • Modification de la sécurité : Autorise les assemblages Windows Forms à s'exécuter dans un environnement de confiance modéré à partir d'Internet et ajoute la notion de Code Acces Security dans les applications ASP.NET
  • Support pour ODBC et les bases de données Oracle ; il fallait anciennement installer un composant supplémentaire
  • .NET Compact Framework, une version du .NET Framework compatible avec Windows CE
  • Support pour IPv6
  • Divers changements dans les API

.NET Framework 2.0

modifier

Disponible avec Visual Studio 2005, Microsoft SQL Server 2005 et BizTalk Server 2006, le .NET Framework 2.0 en version redistribuable est disponible gratuitement sur le site de Microsoft et a été publié le . Il est aussi inclus sous forme d'option gratuite à Windows Server 2003 R2.

Le kit de développement (SDK) peut être téléchargé gratuitement sur le site de Microsoft ; il est inclus avec Visual Studio 2005 et Microsoft SQL Server 2005.

C'est la dernière version compatible avec Windows 2000, Windows 98 et Windows ME.

Changement depuis la version 1.1

modifier

.NET Framework 3.0

modifier

.NET Framework 3.0, anciennement WinFX[2], inclut des nouvelles API de code managé. Elles font partie intégrante des systèmes d'exploitation Windows Vista et de Windows Server 2008. Ces API sont aussi disponibles en téléchargement pour Windows XP SP2 et Windows Server 2003. Il n'y a pas de changements majeurs inclus avec cette version. Le .NET Framework 3.0 utilise le Common Language Runtime de la version 2.0 du Framework[3]. Contrairement aux autres évolutions du Framework, il n'y a pas eu d'équivalent à cette version pour le .NET Compact Framework.

Le .NET Framework 3.0 est constitué de quatre parties principales :

Le nouvel environnement inclut également les autres éléments du Framework .NET :

.NET Framework 3.5

modifier

La version 3.5 du .NET Framework est officiellement disponible (en RTM) depuis le . De même que la version 3.0, la version 3.5 utilise la version 2.0 de la CLR. Cette version du framework inclut le .NET Framework 2.0 SP1 qui ajoute des méthodes et des propriétés aux bibliothèques de bases de la version 2.0. Celles-ci sont nécessaires à certaines fonctionnalités du framework 3.5 telle que LINQ. Ces modifications n'affectent pas les applications écrites avec la version 3.5.

Un nouveau .NET Compact Framework 3.5 est aussi disponible en tandem avec cette évolution dans le but de fournir de nouvelles fonctionnalités pour les appareils fonctionnant avec Windows Mobile et Windows Embedded CE.

Le code source des bibliothèques de classes de bases a été partiellement dévoilé avec cette version sous la licence sources partagées[5].

La version 3.5 du framework inclut le framework Language Integrated Query (LINQ) permettant des requêtes objet aussi bien sur des Data, des Collections, du XML ou des DataSets. Elle intègre également le framework Ajax.Net avec de nouveaux protocoles (AJAX, JSON, REST, RSS, Atom) et d'autres standards WS-*.

Récapitulatif des changements avec la version 3.5

modifier

SP1 (nom de code « Arrowhead »)

modifier

Le .NET Framework 3.5 SP1 va améliorer le support pour les applications partiellement connectées et fournit un support pour le modèle MVC de Microsoft ASP.NET. Arrowhead améliorera les performances du démarrage à froid (démarrage quand aucune application nécessitant le .NET Framework n'a encore été lancée) à hauteur de 25 à 40 %. Cette mise à jour accélérera aussi certains effets de Windows Presentation Foundation (WPF) telles que les ombres, mais aussi les performances générales. Un ensemble d'autres contrôles WPF seront aussi disponibles, et notamment un DataGrid.

.NET Framework 4.0

modifier

Annonces

modifier

Le , Microsoft a annoncé que la prochaine version du framework .Net se nommerait .NET Framework 4.0. Bien que tous les détails exacts n'aient pas été communiqués, certaines directions de la compagnie ont alors été rendues publiques.

L'une de ces directions était notamment le traitement parallèle de l'information, applicable aux systèmes multi-core ou distribués[6]. Dans cette optique, ils prévoyaient de publier la technologie PLINQ (Parallel Language Integrated Query)[7], une implémentation de la bibliothèque LINQ, qui exécute les requêtes en tirant profit des capacités parallèles du système[8].

Versions du .Net Framework 4.0

modifier

Début 2010, le .Net Framework 4.0 est disponible dans sa version 4.0.30319[9],[10] pour plateformes Windows XP SP3, Windows Server 2008, Windows Vista et Windows 7.

Microsoft a également annoncé sa volonté d'inclure le .NET Framework et ASP.NET dans la version « Server Core » du système d'exploitation qui suivra Windows Server 2008[11].

.NET Framework 4.5

modifier

Sorti en mars 2012, le .Net Framework 4.5[12] n'est supporté qu'à partir de Windows Vista.

.NET Framework 4.8.1

modifier

Sortie le , la version 4.8.1 du framework .NET ajoute le support natif des applications 64 bits Arm sur les appareils équipés de Windows 11, des infobulles respectant la norme WCAG 2.1 pour les applications Windows Forms (sur Windows 11 uniquement) et WPF (sur Windows 10 également), et des améliorations supplémentaires vis-à-vis de l'accessibilité pour les applications Windows Forms. Elle est supportée uniquement sur Windows 10 version 20H2 (ou une version ultérieure), Windows 11 et Windows Server 2022[13].

Notes et références

modifier
  1. Prononcé /dɒt nɛt/ en anglais, car dot est l'équivalent anglophone du mot « point », dans le contexte d'une adresse web.

Références

modifier
  1. « .NET Framework 4.8.1 is available on Windows Update and Catalog June 27, 2023 », (consulté le )
  2. (en) WinFX name change announcement.
  3. « .NET Framework 3.0 Versioning and Deployment Q&A » (consulté le ).
  4. (en) WPF SDK sur le site de l'éditeur.
  5. Scott Guthrie, « Releasing the Source Code for the NET Framework » (consulté le ).
  6. (en) S. Somasegar, « The world of multi and many cores » (consulté le ).
  7. (en) « Parallel LINQ: Running Queries On Multi-Core Processors » (consulté le ).
  8. (en) « Parallel Performance: Optimize Managed Code For Multi-Core Machines » (consulté le ).
  9. Programme d'installation Web Microsoft .NET Framework 4 www.microsoft.com
  10. Programme d'installation de la plate-forme Développeur .NET Framework 4 www.microsoft.com
  11. (en) « PDC2008 Sessions Overview », Microsoft, (consulté le )
  12. Microsoft .NET Framework 4.5 Microsoft Download Center
  13. (en-US) « Announcing .NET Framework 4.8.1 », sur devblogs.microsoft.com, (consulté le )

Voir aussi

modifier

Articles connexes

modifier

Liens externes

modifier
  NODES
INTERN 2
Note 4