Questo va in giro e lo so ma non riesco a trovare una risposta soddisfacente.Rivisitazione di installazioni GAC
Gli assembly devono essere inseriti nel GAC? Queste domande: when-and-when-not-to-install-into-the-gac e What are the advantages and disadvantages of using the GAC, si riferiscono esattamente a questo, ma le risposte sono molto "si raccomanda che ..." o "si dovrebbe solo ...". Perché???
Un sacco di blog Naysaying GAC sembrano risalire a 5/6 anni fa quando la stella di .Net stava iniziando la sua ascesa. Siamo ancora lì adesso? Sicuramente DLL-Hell è una cosa del passato con il GAC che supporta l'installazione affiancata di diverse versioni dello "stesso" assembly?
Lasciami incarnare le mie preoccupazioni. Abbiamo una suite crescente di app Web (5 finora). Queste sono, in sostanza, estensioni di un'applicazione di terze parti tramite chiamate API ed estensioni del database. Ovviamente, tutte queste app condividono una grande quantità di codice in comune e stiamo sviluppando una nuova serie di librerie condivise di base per migliorare la nostra qualità, manutenibilità, ecc.
Sicuramente voglio questa funzionalità condivisa installata una volta e condivisa. Tutti gli argomenti sull'apertura di un incubo di manutenzione sembrano basati su un mondo di scarsa disciplina. Se si interrompe l'ABI, è sufficiente superare la AssemblyVersion per mantenere attive le app esistenti.
Il GAC è davvero una trappola per il miele per gli ignari? Sono ingenuo? Sono inutilmente severo quando rigetto gli argomenti che citano la perdita dell'installazione di XCopy come lazy lanciando? O sta diventando un po '"Religioso" e dovrei semplicemente andare con quello che sembra giusto?
Grazie per avermi aiutato a vedere la luce.
Dan
In seguito alla risposta di David, ho tratto la conclusione che il GAC è un luogo eccellente e rispettabile per archiviare le nostre assemblee, purché siamo attenti ai cambiamenti che apportiamo. Penso che una singola entità installabile in un singolo luogo identificabile renderà la nostra strategia di sviluppo e implementazione complessiva più facile da gestire e mantenere. Quindi, grazie ancora a David per la sua risposta. L'ho contrassegnato come una risposta anche se questa è chiaramente un'area di una certa soggettività. Dan –