Ciao Marco,
Allora dovrei distribuire questa DLL a dei nostri clienti, per farla integrare nei loro applicativi.
Ok, allora creati assolutamente un repository NuGet aziendale e distribuiscila come pacchetto. Non solo è un modello di distribuzione più professionale e ben documentato, ma ti eviterà di sprecare ore in assistenza per rispondere ai clienti che vogliono una certa versione X per il framework Y, sulla piattaforma Z.
Con NuGet, tutte le versioni restano sempre visibili e immodificabili, così eviti anche le lamentele del tipo "...ma la versione che mi avevi inviato per email 6 mesi fa funzionava, mentre quella che mi hai inviato oggi non funziona più".
Detto questo, resta valido l'approccio che ti dicevo nel post precedente. Prendi ad esempio il codice di Newtonsoft.Json e creati delle soluzioni diverse per ogni target framework. Poi crea degli script PowerShell per avviare la compilazione. Trovi i file da cui prendere spunto nella cartella build del repository GitHub.
https://github.com/JamesNK/Newtonsoft.Json/tree/master/Build
Questa DLL ha la funzione di scrivere su un database e/o file
Opzionalmente, se pensi che sia il caso, puoi spezzare il progetto in più sotto-progetti. Cioè: se un tuo cliente vuole scrivere su file, non gli dare anche il codice per scrivere nel database.
Puoi crearti un pacchetto NuGet "essenziale" che conterrà il grosso della logica della libreria. Per la persistenza, invece, crea un pacchetto per ogni meccanismo che intendi supportare e che conterrà solo la logica di salvataggio. Ti troverai quindi con dei pacchetti chiamati così:
NomeLibreria (contiene la logica essenziale e indipendente dal meccanismo di persistenza)
NomeLibreria.SqlServer (dipende dal pacchetto NomeLibreria e serve a persistere su db)
NomeLibreria.FileDiTesto (dipende dal pacchetto NomeLibreria e serve a persistere su file di testo)
Gli sviluppatori dei tuoi clienti potranno così scegliere liberamente solo i pacchetti che intendono effettivamente utilizzare. E' lo stesso principio usato da molti altri pacchetti popolari, come quelli prodotti da Microsoft stessa (vedi
esempio).
ciao,
Moreno
Modificato da BrightSoul il 04 gennaio 2017 14.01 -