Le .NET Framework
Qu’est-ce que le .NET Framework ?
L’objectif de Microsoft est de faire d’Internet une véritable plate-forme de programmation distribuée, permettant aux ordinateurs, systèmes et services de communiquer et de collaborer entre eux. Cela signifie que dans cet environnement, un code Python pourra instancier un objet C++ qui hérite d’une classe Eiffel. Au sein de la plate-forme .NET, des programmes écrits dans différents langages pourront ainsi faire appel à des fonctionnalités développées dans d’autres langages. Côté développeur, quelques opérations seront nécessaires pour adapter les programmes et côté client, il suffira d’avoir installé le fameux .NET Framework.Le .NET Framework se compose de trois grandes parties :
- Le CLR ou runtime (Common Language Runtime ou moteur d’exécution en langage commun). Avec les langages .NET, vous ne compilez plus le code des programmes directement en code machine mais dans un langage intermédiaire nommé IL. Ce code est ensuite pris en charge par le runtime : celui-ci se charge de la compilation finale au moment de l’installation ou de la première exécution du programme. Le .NET Framework n’étant pas sensible à un langage particulier, vous pouvez construire les programmes .NET dans de nombreux langages, y compris C++, Microsoft Visual Basic.NET, JScript sans oublier C#. Un grand nombre de langages d’autres éditeurs sont également utilisables comme les langages COBOL, Eiffel, Perl, Python ou Smalltalk.
- Les bibliothèques de classes représentent une manne de fonctionnalités dans laquelle les programmeurs des langages .NET peuvent puiser. Ces bibliothèques sont tout à fait équivalentes à celles disponibles avec C++, sauf qu’elles sont orientées .NET et donc accessibles pour tous les langages .NET.
- ASP.NET. .NET Framework est une technologie essentielle pour le développement ASP.NET. Elle offre les services système de base supportant ASP.NET, ainsi que le développement des Windows Forms, la technologie de développement client fournie par .NET. .NET Framework apporte à Windows XP, Windows 2000, Windows NT 4.0, et Windows 98/ME, les services système de base pour supporter les technologies .NET. Le Framework sera bien sûr intégré aux futures versions des systèmes d’exploitation Windows de type serveur, dont Windows .NET Server fait partie.
Téléchargement
Microsoft .NET Framework 3.0 est le nouveau modèle de programmation de code managé pour Windows®. Il associe la puissance du .NET Framework version 2.0 et les nouvelles technologies de génération d’applications. Ces nouvelles technologies sont Windows Presentation Foundation, Windows Communication Foundation, Windows Workflow Foundation et Windows CardSpace.Le .NET Framework 3.0 est inclus en tant que partie intégrante du système d’exploitation Windows Vista™ ; vous pouvez l’installer ou le désinstaller à l’aide des fonctionnalités Windows du Panneau de configuration. Un package redistribuable est disponible sur le site de Microsoft (www.microsoft.com/downloads/) pour les plates-formes Windows XP et Windows Server 2003.
Téléchargez ensuite le Kit de développement pour Windows Vista (SDK) qui inclut tout ce dont vous avez besoin pour écrire, générer et tester des applications .NET Framework 3.0 et Win32 qui bénéficient des nouvelles fonctionnalités de Windows Vista. Vous trouverez les fichiers à télécharger ainsi qu’une série d’articles descriptifs sur la page http://msdn.microsoft.com/fr-fr/netframework/aa731542.aspx du site MSDN.
CLR
Le CLR (ou runtime) fournit un environnement d’exécution pour tous les programmes écrits dans un des langages .NET. Il gère l’exécution du code .NET, et en particulier la mémoire et la durée de vie des objets. Avec C#, le successeur 100% .NET des langages C, C++ ou Java, les programmeurs n’ont plus besoin d’effacer de la mémoire les objets dont ils n’ont plus besoin. C’est le programme de récupération de mémoire du CLR – le Garbage Collector – qui se charge de ces opérations. En plus de ces services de gestion, le runtime permet aux développeurs d’étendre le débogage, la gestion des exceptions et l’implémentation de l’héritage à un environnement multilangage.Pour que votre programme puisse bénéficier de l’environnement d’exécution du CLR, vous devez bien sûr faire appel à un compilateur compatible avec le runtime comme Visual C++, Visual Basic, C#, JScript, ou l’un des nombreux compilateurs tiers tel que Perl ou Cobol.
À savoir
Vous trouverez un article très intéressant intitulé « Créez un compilateur de langage pour .NET Framework » sur la pagehttp://msdn.microsoft.com/fr-fr/magazine/cc136756.aspx
du MSDN magazine. Même si telle n’est pas votre intention, il vous permet de bien comprendre tout le mécanisme depuis l’écriture du programme jusqu’à l’exécution du code en langage machine.
Tous les fichiers requis pour développer en Visual Basic, C++ ou C# étant installés avec le SDK, vous n’avez pas besoin d’acquérir un compilateur particulier pour générer les exemples de ce chapitre. Les fichiers du runtime et les compilateurs se trouvent dans le répertoire \Répertoire Windows\Microsoft.NET\Framework\version du SDK.
Voici les fichiers les plus importants du SDK :
- Mscorlib.dll : cette bibliothèque fournit l’espace de noms System que tout programme .NET utilise. Les langages Visual Basic et C# font implicitement référence à cette bibliothèque, mais dans les extensions managées pour programme C++ vous devez introduire la directive de préprocesseur #using <mscorlib.dll> .
- Vbc.exe : le compilateur Visual Basic .NET.
- Cl.exe : le compilateur C++ .NET.
- Csc.exe : le compilateur C#.
Ces compilateurs doivent aussi suivre la CLS (Common Language Specification), qui décrit un sous-ensemble des types de données supportés par le runtime et communs à tous les langages utilisés dans .NET. Puisqu’il s’agit d’un environnement d’exécution multilangage, le runtime supporte une large gamme de types de données et de fonctionnalités de langage. Selon le compilateur de langage utilisé, des fonctionnalités du runtime seront disponibles et vous concevrez votre code pour les utiliser. En effet, c’est le compilateur et non le runtime qui impose la syntaxe de votre code. Si votre composant doit pouvoir être utilisé par des composants écrits dans d’autres langages, les types de données exportés doivent exposer uniquement les fonctionnalités de langage incluses dans la CLS.
Les compilateurs de langage individuels compilent le code écrit par les développeurs dans un langage intermédiaire nommé IL ou MSIL (Microsoft Intermediate Language). Ce langage intermédiaire est compilé en code natif par le runtime soit au moment de l’installation, soit au moment de la première exécution (mode Just-In-Time).
Le code compilé en IL et géré par le runtime est appelé code managé. Il se nomme ainsi parce que le runtime prend en charge la gestion de l’exécution du code, y compris l’instanciation des objets, l’allocation de la mémoire ainsi que la destruction des objets inutilisés en mémoire. Pour que vos programmes puissent tirer parti de cet environnement d’exécution managé, vous allez écrire le code à l’aide des extensions managées pour C++.
Les composants écrits en code managé et exécutés par le runtime sont nommés assemblages managés .NET, ou simplement assemblages. Les assemblages représentent l’élément de base du déploiement dans l’univers .NET. Ils contiennent un manifeste, qui est l’ensemble des métadonnées décrivant le contenu de cet assemblage. Ces métadonnées décrivent les types (classes) présents dans votre code y compris la définition de chacun d’eux, la signature de chaque membre de type, les membres auxquels votre code fait référence et d’autres données utilisées par le runtime au moment de l’exécution. Entre autres avantages, la nature autodescriptive des assemblages .NET signifie qu’ils n’ont pas à être enregistrés sur un ordinateur pour fonctionner ! Les métadonnées désignent également les dépendances et les informations de version associées à un assemblage. Il est ainsi plus facile de s’assurer que toutes les dépendances nécessaires d’un assemblage sont satisfaites, mais ceci signifie également que plusieurs versions du même assemblage peuvent être exécutées côte à côte sur le même ordinateur sans conflit.
À savoir
En langage .NET, un assemblage XE "assemblage" est une collection d’un ou plusieurs fichiers qui vont être déployés ensemble. L’assemblage des programmes fournis en exemple dans ce chapitre sera uniquement constitué du fichier .exe, et cette caractéristique sera notée dans le manifeste intégré à l’exécutable.Bibliothèque de classes du .NET Framework
La bibliothèque de classes du .NET Framework est conçue pour faciliter la tâche des développeurs en fournissant les classes de base desquelles ils peuvent hériter. Il s’agit d’un ensemble hiérarchique de classes, d’interfaces, et de types de valeur inclus dans le SDK .NET Framework.Ces classes fournissent à la fois les fonctionnalités de base et des fonctionnalités avancées facilement réutilisables par les développeurs. Elles incluent les classes supportant les types de données de base les plus courants, les classes offrant l’accès aux données, et les classes supportant les services système. Cette bibliothèque est conçue pour constituer la base sur laquelle les applications, composants et contrôle .NET sont construits.
Le texte original de cette fiche pratique est extrait de
«Tout sur le C++» (Christine EBERHARDT, Collection
CommentCaMarche.net, Dunod, 2009)