Me encontré con este interesante artículo: Cómo llegué a amar la interoperabilidad COM en CodeProject, que me hizo pensar ...
El autor argumenta que no quieren COM-ities en su biblioteca .NET porque les quita la belleza de su biblioteca .NET. En cambio, prefieren escribir una biblioteca Interop separada que exponga su biblioteca .NET a COM. Esta biblioteca de interoperabilidad manejaría el hecho de que COM no admite constructores con parámetros, métodos sobrecargados, genéricos, herencia, métodos estáticos, etc.
Y si bien creo que es muy novedoso, ¿no solo completa el proyecto?
- Ahora necesita probar su biblioteca .NET Y una biblioteca Interop.
- Ahora debe dedicar tiempo a descubrir cómo solucionar su hermosa biblioteca .NET y exponerla a COM.
- Necesita, efectivamente, duplicar o triplicar el recuento de clases.
Ciertamente puedo entender si necesita que su biblioteca sea compatible con COM y no COM. Sin embargo, si solo tiene la intención de usar COM, ¿este tipo de diseño trae algún beneficio que no veo? ¿Solo obtiene los beneficios del lenguaje C #?
¿O facilita el control de versiones de su biblioteca al proporcionarle un contenedor? ¿Hace que sus pruebas unitarias se ejecuten más rápido al no requerir el uso de COM?