COM Interop
La création de composants .NET compilés avec l’option COM Interop permet l’évolution et la migration progressive d’anciennes applications pour un coût réduit ainsi que la création de passerelles qui modernisent et conservent l’homogénéité d’un ensemble de traitements.
Le .NET Framework est une suite logique de COM dans la mesure où les deux modèles partagent de nombreux thèmes centraux, notamment la réutilisation de composants et la neutralité vis-à-vis du langage employé. Pour assurer une compatibilité ascendante, COM Interop fournit un accès aux composants COM existants sans nécessiter la modification des composants d'origine. Vous pouvez incorporer des composants COM dans une application .NET Framework en utilisant des outils de COM Interop pour importer les types COM pertinents. Une fois importés, les types COM sont prêts à l'emploi.
COM Interop offre également une compatibilité descendante en permettant aux clients COM d'accéder au code managé aussi simplement qu'à d'autres objets COM. COM Interop donne là aussi la possibilité d'exporter de façon transparente les métadonnées d'un assembly vers une bibliothèque de types et inscrit le composant managé en tant que composant COM standard. Les deux utilitaires d'importation et d'exportation donnent des résultats conformes aux spécifications COM. Au moment de l'exécution, le Common Language Runtime marshale les données entre les objets COM et les objets managés, en fonction des besoins.
Modèles COM Interop et d'appel de plate-formeLe Common Language Runtime fournit deux mécanismes permettant l'interopération avec du code non managé :
- L'appel de plate-forme, qui permet au code managé d'appeler des fonctions exportées à partir d'une bibliothèque non managée.
- COM interop, qui permet au code managé d'interagir avec des objets COM par l'intermédiaire d'interfaces.
L'appel de plate-forme et COM interop utilisent le marshaling Interop pour envoyer et retourner correctement des arguments de méthode entre l'appelant et l'appelé, si cela est requis. Comme le montre l'illustration suivante, hormis les cas utilisant les fonction de rappel, un appel de méthode d'appel de plate-forme circule à partir du code managé vers le code non managé, jamais dans le sens inverse. Même si les appels de plate-forme ne peuvent circuler qu'à partir du code managé vers le code non managé, les données peuvent circuler dans les deux directions en tant que paramètres en entrée ou out. Les appels de méthode COM interop peuvent circuler dans l'une ou l'autre direction.
Flux d'appel de plate-forme et COM interop

Au niveau le plus bas, ces deux mécanismes utilisent le même service marshaling Interop ; cependant, certains types de données sont pris en charge en mode exclusif par COM interop ou par l'appel de plate-forme.