Я натрапив на цю цікаву статтю: Як я полюбив сумісність COM у програмі CodeProject, яка змусила мене задуматися ...
Автор стверджує, що вони не хочуть ніяких COM-програм у своїй бібліотеці .NET, оскільки це відбирає красу їхньої бібліотеки .NET. Натомість вони б краще написати окрему бібліотеку Interop, яка виставляє їхню .NET-бібліотеку до COM. Ця бібліотека Interop поводиться з тим, що COM не підтримує конструкторів за допомогою параметрів, перевантажених методів, генеричних даних, спадкування, статичних методів тощо.
І хоча я думаю, що це дуже нове, чи це не просто завершує проект?
- Тепер вам потрібно протестувати свою бібліотеку .NET і бібліотеку Interop.
- Тепер вам потрібно витратити час на з'ясування того, як обійти вашу прекрасну бібліотеку .NET і виставити її на COM.
- Потрібно, фактично, подвоїти чи потроїти кількість своїх класів.
Я, безумовно, можу зрозуміти, чи потрібна вам ваша бібліотека для підтримки як COM, так і не COM. Однак якщо ви лише маєте намір використовувати COM, чи приносить такий дизайн дизайн якісь переваги, яких я не бачу? Чи отримуєте ви лише переваги мови C #?
Або це спрощує версію вашої бібліотеки, надаючи вам обгортку? Це робить ваші тестові одиниці роботи швидшими, не вимагаючи використання COM?