Caricamento dinamico dell'assieme vs più eseguibili

1

Ho un'applicazione web e-commerce, che può connettersi a più sistemi di archiviazione. Attualmente sto usando nuget per distribuirlo.

Vorrei dividere la mia applicazione in parti (per sistema di archiviazione), perché richiede molto tempo per compilarla ed eseguirne il debug (tutti gli assembly di riferimento sono scansionati per DI). Ci sarà un solo sistema di storage per applicazione alla volta.

Ho fatto qualche ricerca:
 # 1. crea un'applicazione web separata per sistema di archiviazione (progetto con tutti i pacchetti a cui si fa riferimento) Pro:
 - Nessuna differenza tra la build di sviluppo e la build del client
 - Facile gestione delle librerie native (saranno copiate da msbuild)
 - facile configurazione e distribuzione
Contro:
 - referenziare più progetti di cui ha bisogno
 - più eseguibili = problemi con l'implementazione, la licenza ecc.

# 2 carica dinamicamente l'assembly in fase di esecuzione dal pacchetto nuget
Pro:
 - singolo eseguibile
 - può sfruttare questo sistema per caricare in modo dinamico plug-in più piccoli (come i pagamenti, ecc.)  - design estensibile (in futuro può aggiungere cataloghi aggiuntivi ecc. con plugin)
Contro:
 - configurazione più difficile (i devops possono tentare di utilizzare insieme componenti non validi o non aggiornati)  - problemi con librerie native e file di contenuto (saranno archiviati in pacchetti separati di nuget)
 - più difficile da testare (gli sviluppatori probabilmente useranno ancora il metaprogetto per testarlo piuttosto che il caricamento dinamico, quindi qualcosa potrebbe essere fottuto sulla versione prod)

Ci sono altre cose che devo prendere in considerazione quando si prende questa decisione?

    
posta Shadow 16.02.2017 - 11:56
fonte

0 risposte

Leggi altre domande sui tag