Problemi che affrontiamo
- mantenere un’applicazione esistente con COM / ActiveX / OCX;
- risolvere problemi di registro, RegAsm, regsvr32 e privilegi amministrativi;
- collegare un componente a 32 bit a un’applicazione a 64 bit;
- rendere più manutenibile il confine tra .NET e C++;
- usare un vecchio componente da una nuova applicazione senza sostituirlo subito.
I problemi COM dipendono spesso non solo dal codice, ma anche da bitness del processo, destinazione della registrazione, host, autorizzazioni e modello di threading.
Temi particolarmente adatti
- sviluppo e modifica di componenti COM;
- indagine, registrazione e distribuzione di ActiveX / OCX;
- uso di COM senza registrazione;
- architetture che attraversano il confine 32/64 bit;
- wrapper tramite C++/CLI, bridge COM o processi separati.
Svolgimento
- Inventariamo applicazione host, componenti, bitness e stato della registrazione.
- Decidiamo se mantenere l’uso in-process, separare il processo o sostituire gradualmente.
- L’implementazione comprende registrazione, distribuzione, autorizzazioni, log e rollback affinché la configurazione sia riproducibile sul campo.
Situazioni adatte
- le competenze per mantenere COM / ActiveX stanno diminuendo;
- un cambio di bitness in Visual Studio o Office ha bloccato un componente;
- una nuova applicazione .NET deve riutilizzare specifiche esistenti;
- prima della sostituzione completa occorre rendere sicuri e chiari i confini.