In che modo isoliamo le dipendenze per un'installazione di app .Net in un modo che sia sicuro per un assembly con nome deciso?

7

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!

    
posta Jordan Morris 08.05.2014 - 00:07
fonte

1 risposta

1

L'uso di Nuget per le dipendenze della libreria è molto importante per la dichiarazione e l'isolamento delle dipendenze.

Il file packages.config associato a ciascun progetto può essere letto come una dichiarazione di dipendenza.

Se tali riferimenti ai pacchetti sono contrassegnati come "privati", vengono raggruppati nella cartella bin degli output di build e presumibilmente raggruppati per la distribuzione. Ciò evita il requisito che tutti gli assembly di riferimento siano GAC'd nella casella di distribuzione.

    
risposta data 31.10.2014 - 17:40
fonte

Leggi altre domande sui tag