Assemblys dans le Common Language Runtime

Les assemblys sont les blocs de construction des applications .NET Framework ; ils constituent l'unité fondamentale dans le déploiement, le contrôle de version, la réutilisation, la portée d'activation et les autorisations de sécurité. Un assembly est une collection de types et de ressources qui sont générés pour fonctionner ensemble et former une unité logique de fonctionnalités. Un assembly fournit au Common Language Runtime les informations dont il a besoin pour reconnaître les implémentations des types. Pour le runtime, un type n'existe pas en dehors du contexte d'un assembly.

Un assembly exécute les fonctions suivantes :

  • Il contient le code que le Common Language Runtime exécute. Le code MILS (Microsoft Intermediate Language) figurant dans un fichier exécutable portable ne sera pas exécuté s'il ne possède pas de manifeste d'assembly associé. Notez que chaque assembly ne peut avoir qu'un seul point d'entrée (DllMain, WinMain ou Main).

  • Il forme une limite de sécurité. Un assembly correspond à l'unité au niveau de laquelle les autorisations sont demandées et accordées. Pour plus d'informations sur les limites de sécurité applicables aux assemblys, consultez Aspects de la sécurité des assemblys.

  • Il forme une limite de type. L'identité de chaque type inclut le nom de l'assembly dans lequel il réside. Un type nommé MyType chargé dans la portée d'un assembly est différent d'un type nommé MyType chargé dans la portée d'un autre assembly.

  • Il forme une limite de portée de référence. Le manifeste d'assembly contient les métadonnées de l'assembly qui permettent de résoudre les types et de satisfaire aux demandes des ressources. Il spécifie les types et les ressources qui sont exposés en dehors de l'assembly. Le manifeste énumère également les autres assemblys dont il dépend.

  • Il forme une limite de version. L'assembly correspond à la plus petite unité versionable du Common Language Runtime ; la version de tous les types et les ressources figurant dans le même assembly est gérée sous la forme d'une unité. Le manifeste d'assembly décrit les dépendances de version que vous spécifiez pour les assemblys dépendants. Pour plus d'informations sur le versioning, consultez Versioning des assemblys.

  • Il forme une unité de déploiement. Lorsqu'une application démarre, seuls les assemblys que l'application appelle initialement doivent être présents. Les autres assemblys, tels que les ressources de localisation ou les assemblys contenant des classes d'utilitaire, peuvent être récupérés à la demande. Cela permet aux applications de rester simples et basiques lors de leur premier téléchargement. Pour plus d'informations sur le déploiement des assemblys, consultez Déploiement d'applications.

  • Il s'agit de l'unité au niveau de laquelle l'exécution côte à côte est prise en charge. Pour plus d'informations sur l'exécution de plusieurs versions d'un assembly, consultez Assemblys et exécution côte à côte.

Les assemblys peuvent être statiques ou dynamiques. Les assemblys statiques peuvent inclure les types .NET Framework (interfaces et classes), ainsi que les ressources de l'assembly (bitmaps, fichiers JPEG, fichiers de ressources...). Les assemblys statiques sont stockés sur le disque dans des fichiers exécutables portables. Vous pouvez également utiliser le .NET Framework pour créer des assemblys qui sont directement exécutés à partir de la mémoire et qui ne sont pas enregistrés sur le disque avant leur exécution. Vous pouvez enregistrer des assemblys dynamiques sur le disque après leur exécution.

Il existe plusieurs modes de création d'assemblys. Vous pouvez utiliser des outils de développement, tels que Visual Studio 2005, que vous avez autrefois utilisés pour créer des fichiers .dll ou .exe. Vous pouvez utiliser les outils fournis avec le Kit de développement logiciel (SDK) Windows pour créer des assemblys avec des modules créés dans d'autres environnements de développement. Vous pouvez également utiliser les API du Common Language Runtime, telles que Reflection.Emit, pour créer des assemblys dynamiques.

Rubriques connexes

Titre

Description

Avantages des assemblys

Décrit comment les assemblys permettent de résoudre les problèmes de versioning et les conflits de DLL.

Contenu d'un assembly

Décrit les éléments qui constituent un assembly.

Manifeste d'assembly

Décrit les données dans le manifeste d'assembly, et comment elles sont stockées dans les assemblys.

Global Assembly Cache

Décrit le Global Assembly Cache et son utilisation avec des assemblys.

Assemblys avec nom fort

Décrit les caractéristiques des assemblys à nom fort.

Aspects de la sécurité des assemblys

Expose la manière dont fonctionne la sécurité avec des assemblys.

Versioning des assemblys

Offre une vue d'ensemble de la stratégie de versioning du .NET Framework.

Emplacement des assemblys

Explique où se trouvent les assemblys.

assemblys et exécution côte à côte

Offre une vue d'ensemble de l'utilisation simultanée de plusieurs versions du runtime ou de l'assembly.

Programmation à l'aide d'assemblys

Décrit comment créer et signer des assemblys et leur affecter des attributs.

Émission d'assemblys et de méthodes dynamiques

Décrit comment créer des assemblys dynamiques.

Méthode de localisation des assemblys par le runtime

Décrit comment le .NET Framework résout les références d'assembly au moment de l'exécution.

Référence

System.Reflection.Assembly