Ca y est, nous savons accéder au framework .NET.
Mais d’ailleurs, comment se fait-il que nous puissions accéder aux méthodes du framework .NET sans nous poser de question ? Il est magique ce framework ? Où se trouve le code qui permet de récupérer la date du jour ?
Judicieuse question. Si on y réfléchit, il doit falloir beaucoup de code pour renvoyer la date du jour ! Déjà, il faut aller la lire dans l’horloge système, il faut peut-être l’adapter au fuseau horaire, la formater d’une façon particulière en fonction de la langue, etc. Tout ça est déjà fait, heureusement, dans la bibliothèque de méthodes du framework .NET.
Alors, où est-elle cette bibliothèque ? Et le reste ?
Dans des assemblys bien sûr. Comme on a vu, les assemblys possèdent des fragments de code compilés en langage intermédiaire. S’ils sont réutilisables, ils se trouvent dans des fichiers dont l’extension est .dll.
Le framework .NET est composé d’une multitude d’assemblys qui sont installés sur votre système d’exploitation, dans le GAC (
global assembly cache) qui est un endroit où sont stockées ces assemblys afin de les rendre accessible depuis nos programmes.
Pour pouvoir utiliser ces assemblys dans notre programme, nous devons indiquer que nous voulons les utiliser. Pour ça, il faut les référencer dans le projet.
Si l’on déplie les références dans notre explorateur de solutions, nous pouvons voir que nous avons déjà pas mal de références qui ont été ajoutées par Visual C# express :
Ce sont des assemblys qui sont très souvent utilisées, c’est pour ça que Visual C# express nous les a automatiquement référencées. Toujours ce souci de nous simplifier le travail, qu’il est sympa !
Prenons par exemple la référence
System.Xml. Son nom nous suggère que dedans est réuni tout ce qu’il nous faut pour manipuler le XML.
Commençons à taper
System.Xml., la complétion automatique nous propose plusieurs choses.
On ne sait pas du tout à quoi elle sert, mais déclarons par exemple une variable de l’énumération
ConformanceLevel :
Code : C# | System.Xml.ConformanceLevel level;
|
et compilons. Pas d’erreur de compilation.
Si vous supprimez la référence à
System.Xml. (bouton droit,
Supprimer),
et que vous compilez à nouveau, vous pouvez voir que
ConformanceLevel est désormais souligné en rouge, signe qu’il y a un problème.
Par ailleurs, la compilation provoque l’erreur suivante :
Citation : CompilateurLe type ou le nom d'espace de noms 'ConformanceLevel' n'existe pas dans l'espace de noms 'System.Xml' (une référence d'assembly est-elle manquante ?)
Loin d’être bête, Visual C# express nous affiche un message d’erreur plutôt explicite.
En effet, cette énumération est introuvable car elle est définie dans une assembly qui n’est pas référencée. C’est comme si on nous demandait de prendre le marteau pour enfoncer un clou, mais que le marteau n’est pas à coté de nous, mais au garage bien rangé !
Il faut donc référencer le marteau afin de pouvoir l’utiliser.
Pour ce faire, faisons un clic sur
Références et ajoutons une référence.
Ici, nous avons plusieurs onglets (selon la version de Visual Studio que vous possédez, vous aurez peut-être une présentation légèrement différente).
Chaque onglet permet d’ajouter une référence à une assemblys.
- L’onglet .NET permet de référencer une assembly présente dans le GAC, c’est ici que nous viendrons chercher les assemblys du framework .NET
- L’onglet COM permet de référencer une dll COM. Vous ne savez pas ce qu’est COM ? On peut dire que c’est l’ancêtre de l’assembly. Techniquement, on ne référence pas directement une dll COM, mais Visual C# express génère ce qu’on appelle un wrapper permettant d’utiliser la dll COM. Un wrapper est en fait une espèce de traducteur permettant d’utiliser la dll COM comme si c’était une assembly. Mais ne nous attardons pas sur ce point qui ne va pas nous servir, nous qui sommes débutants.
- L’onglet Projets permet de référencer des assemblys qui se trouvent dans notre solution. Dans la mesure où notre solution ne contient qu’un seul projet, l’onglet sera vide. Nous verrons plus tard comment utiliser cet onglet lorsque nous ajouterons des assemblys à nos solutions.
- L’onglet Parcourir va permettre de référencer une assembly depuis un emplacement sur le disque dur. Cela peut-être une assembly tierce fournie par un collègue, ou par un revendeur, etc …
- Enfin, l’onglet Récent, comme son nom le suggère, permet de référencer des assemblys récemment référencées.
Retournons à nos moutons, repartons sur l’onglet
.NET et recherchons l’assembly que nous avons supprimée, à savoir
System.Xml.
Une fois trouvée, appuyez sur
OK. Maintenant que la référence est ajoutée, nous pouvons à nouveau utiliser cette énumération…
Ouf !
Je ne comprends pas, j’ai supprimé toutes les références, mais j’arrive quand même à utiliser la date, le nom de l’utilisateur ou la méthode Console.WriteLine. Si j’ai bien compris, je ne devrais pas pouvoir utiliser des méthodes dont les assemblys ne sont pas référencées… C’est normal ?
Eh oui, il existe une assembly qui n’apparait pas dans les références et qui contient tout le cœur du framework .NET. Cette assembly doit obligatoirement être référencée, il s’agit de
mscorlib.dll. Comme elle est obligatoire, elle est référencée par défaut dès que l’on crée un projet.