Recentemente ho iniziato un nuovo progetto il cui nucleo deve essere basato su un'architettura a plug-in. Non avendo vincoli di sorta, ho voluto provare ad utilizzare il namespace System.AddIn aggiunto nel .NET Framework 3.5.
Devo ammettere che il primo impatto con queste classi è stato un po' "traumatico": basti pensare che, per realizzare un sistema di plug-in minimale, bisogna realizzare almeno 5 Class Library e salvare i file in ben precise cartelle, altrimenti si otterranno errori in fase di esecuzione. Cercando un po' su Internet, ho trovato un post che spiega passo-passo come costruire questo tipo di architettura. Lo consiglio a chiunque voglia approfondire la conoscenza del namespace System.AddIn e degli strumenti che mette a disposizione.
Per fortuna, dopo aver compreso come funziona il sistema a plug-in del .NET Framework 3.5, ci si può tranquillamente dimenticare di gran parte dei dettagli implementativi descritti nel post di cui sopra e utilizzare invece un Add-In per Visual Studio, il Pipeline Builder, in grado di generare in modo automatico tutte le librerie necessarie a partire da un singolo file con la definizione del contratto dell'add-in. Ma di esso parlerò in uno dei miei prossimi post…