Vue d'ensemble des assemblys

Mise à jour : novembre 2007

Les assemblys sont un élément fondamental de la programmation avec le .NET Framework. 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.

Voir aussi

Concepts

Aspects de la sécurité des assemblys

Versioning des assemblys

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

Autres ressources

Assemblys dans le Common Language Runtime

Déploiement d'applications .NET Framework