Mi sono imbattuto in questo interessante articolo: Come mi è piaciuto amare COM Interoperabilità su CodeProject, che mi ha fatto pensare ...
L'autore sostiene che non vogliono alcuna COM-libreria nella propria libreria .NET perché toglie la bellezza della propria libreria .NET. Piuttosto, preferirebbe scrivere una libreria Interop separata che esponga la loro libreria .NET a COM. Questa libreria di interoperabilità gestirà il fatto che COM non supporta i costruttori con parametri, metodi sovraccaricati, generici, ereditarietà, metodi statici, ecc.
E anche se penso che sia molto originale, non si limita a completare il progetto?
- Ora è necessario testare la libreria .NET e una libreria Interop.
- Ora hai bisogno di dedicare del tempo a capire come aggirare la tua bellissima libreria .NET ed esporla a COM.
- Devi, efficacemente, raddoppiare o triplicare il conteggio delle classi.
Posso sicuramente capire se hai bisogno della tua libreria per supportare sia COM che non COM. Tuttavia, se si intende utilizzare solo la COM, questo tipo di progettazione offre vantaggi che non vedo? Guadagni solo i vantaggi del linguaggio C #?
Oppure, rende più semplice il controllo delle versioni della tua biblioteca fornendoti un wrapper? Rende più veloci i test delle unità non richiedendo l'uso di COM?