Dopo una breve introduzione dell'architect sulle problematiche deil'estensibilità di una applicazione, la parola passa a Jesse Kaplan, autore dell'articolo sugli AddIn su msdn magazine.
Alla creazione del plugin e dell'host i primi problemi che sorgono, tipicamente sono:
- Discovery
- Activation
- Isolation
- Lifetime Management
- Sandboxing
- Unloading
Poi nelle versioni successive sorgono i problemi della compatibilità delle versioni precedenti e future.
Si parte dallo scenario Host, cioè una applicazione che vuole hostare degli addin di terze parti con sole tre righe di codice: Installlare l'AddIn, Cercarlo ed installarlo.
- Install: AddInStore.Update(path);
- Find: ILIst<AddInToken> tokens = AddInStore.FindAddins(...);
- Activate: token.Activate(AddInSecurityLevel.Internet);
Viene quindi introdotta l'architettura che prevede le view sia per l'host che per l'AddIn, e altrettanti adapter per eliminare il problema del versioning. In pratica scrivendo solo un nuovo adapter, questa struttura permette di supportare versioni successive di AddIn senza dover toccare l'host.
La fantastica notizia è che a breve verrà rilasciato un tool che via reflection crea automaticamente tutti i layer di astrazione necessari a questa archiettura. Il tool funzionerà sia da command line che come plugin di Visual Studio.
Complimenti agli speaker per la chiarezza e la qualità della presentazione.