Ich bin auf diesen interessanten Artikel gestoßen : Wie ich die COM-Interoperabilität auf CodeProject liebte, was mich zum Nachdenken brachte ...
Der Autor argumentiert, dass sie keine COM-ities in ihrer .NET-Bibliothek haben möchten, da dies die Schönheit ihrer .NET-Bibliothek beeinträchtigt. Stattdessen schreiben sie lieber eine separate Interop-Bibliothek, die ihre .NET-Bibliothek für COM verfügbar macht. Diese Interop-Bibliothek würde die Tatsache behandeln, dass COM keine Konstruktoren mit Parametern, überladenen Methoden, Generika, Vererbung, statischen Methoden usw. unterstützt.
Und obwohl ich denke, dass das sehr neu ist, schließt es das Projekt nicht einfach ab?
- Jetzt müssen Sie Ihre .NET-Bibliothek UND eine Interop-Bibliothek einem Komponententest unterziehen.
- Jetzt müssen Sie Zeit damit verbringen, herauszufinden, wie Sie Ihre schöne .NET-Bibliothek umgehen und sie COM zugänglich machen können.
- Sie müssen Ihre Klassenanzahl effektiv verdoppeln oder verdreifachen.
Ich kann sicher verstehen, ob Sie Ihre Bibliothek benötigen, um sowohl COM als auch Nicht-COM zu unterstützen. Wenn Sie jedoch nur COM verwenden möchten, bringt diese Art von Design Vorteile, die ich nicht sehe? Nutzen Sie nur die Vorteile der C # -Sprache?
Oder erleichtert es die Versionierung Ihrer Bibliothek, indem es Ihnen einen Wrapper zur Verfügung stellt? Werden Ihre Unit-Tests dadurch schneller ausgeführt, ohne dass COM erforderlich ist?