Je suis tombé sur cet article intéressant: How I Came to Love COM Interoperability on CodeProject, qui m'a fait réfléchir ...
L'auteur soutient qu'ils ne veulent pas de COM-ities dans leur bibliothèque .NET car cela enlève à la beauté de leur bibliothèque .NET. Au lieu de cela, ils préfèrent écrire une bibliothèque Interop distincte qui expose leur bibliothèque .NET à COM. Cette bibliothèque Interop gérerait le fait que COM ne prend pas en charge les constructeurs avec paramètres, méthodes surchargées, génériques, héritage, méthodes statiques, etc.
Et même si je pense que c'est très nouveau, cela ne complique-t-il pas simplement le projet?
- Vous devez maintenant tester à l'unité votre bibliothèque .NET ET une bibliothèque Interop.
- Vous devez maintenant passer du temps à découvrir comment contourner votre belle bibliothèque .NET et l'exposer à COM.
- Vous devez, effectivement, doubler ou tripler votre nombre de classes.
Je peux certainement comprendre si vous avez besoin de votre bibliothèque pour prendre en charge COM et non-COM. Cependant, si vous avez l'intention d'utiliser COM uniquement, ce type de conception apporte-t-il des avantages que je ne vois pas? Bénéficiez-vous uniquement des avantages du langage C #?
Ou, cela facilite-t-il la gestion des versions de votre bibliothèque en vous fournissant un wrapper? Est-ce que cela accélère l'exécution de vos tests unitaires en ne nécessitant pas l'utilisation de COM?