Per progettare in modo tale che sia facile distribuire le dipendenze con la tua app, e in modo tale che gli ambienti di sviluppo siano facili da configurare, è vantaggioso isolare le dipendenze di un'applicazione dal suo ambiente. Ciò significa che l'app può ottenere le sue dipendenze da un gestore di pacchetti e non sarà influenzata dal suo ambiente di distribuzione (come il GAC). Questo principio proviene dalla sezione Dipendenze degli molto interessanti standard "Twelve-Factor App".
In .Net, immagino che ciò significherebbe esplicitamente l'uso delle dipendenze dalla cartella bin di un'app? Sono preoccupato che questo potrebbe causare problemi per gli assembly condivisi e con nomi forti. In questo articolo Microsoft , Ferrandez afferma che i conflitti di blocco possono verificarsi se le app non condividono gli assembly con nome sicuro tramite GAC, poiché l'assembly viene caricato in un dominio condiviso.
L'app a 12 fattori descrive i pezzi necessari per soddisfare questo principio come un manifesto di dichiarazione di dipendenza e uno strumento di isolamento di dipendenza .
Qualcuno ha una configurazione consolidata per isolare le dipendenze che sta funzionando per te ed è sicuro per gli assembly con nomi forti? Siamo nel mondo .Net bloccato con la separazione di tutte le nostre app in VM per raggiungere l'isolamento?
Personal context: I maintain a SAAS app where each server instance runs a few services/apps which engage in some inter-process communication. They have some strongly-named dependencies in common. Having the dependencies in the GAC makes deployment complex, setting up dev environments a pain, and restricts freedom to choose deployment environments. Even without the strong naming or shared dependency issue, I am interested to know how people do dependency declaration and/or isolation. Thanks!