In .NET (Visual Studio), quando si crea un nuovo assieme?

9

Sto lavorando a un'applicazione Silverlight. L'ho diviso in diversi assembly:

  • Dominio
  • Repository (tutto con la permanenza nel database Sterling)
  • UI
  • ...

È così che l'ho imparato, ma mi chiedevo. Se sai che le DLL non verranno riutilizzate, è necessario dividerle? Oppure potresti mettere tutto in un unico assieme e usare cartelle e spazi dei nomi per tenerlo in ordine?

Ho visto anche progetti con troppi assembly. Invece di usare namespace dove sarebbe stato appropriato.

Quindi: quando crei un nuovo assembly per qualche nuovo pezzo di codice? Qualche buona risorsa su questo argomento? E dividi il codice tecnicamente (dominio, dati, ui, ecc.) E / o funzionalmente (ad esempio, amministrazione del paziente, paziente-medico, logistica ospedaliera, ... - probabilmente solo per applicazioni di livello aziendale più grandi)?

    
posta Peter 06.07.2011 - 11:58
fonte

2 risposte

1

Raccomando di creare assembly separati per le classi che rientrano logicamente in "moduli". Non solo è buono per il riutilizzo e la manutenzione, ma è anche un modo per imporre il minor numero di dipendenze tra le classi.

La missione sarà quella di ridurre al minimo il numero di riferimenti ad altri assembly di cui ogni assemblaggio ha bisogno, principalmente questo sarà fatto attraverso interfacce ed eventi. Avere classi in diversi assembly renderà le dipendenze molto ovvie. A differenza che se usi un solo assemblaggio, è molto facile trascurare di pensare alle dipendenze poiché tutto è accessibile.

Ovviamente non dovresti esagerare ma separare se del caso. Pensaci in questo modo: "Queste classi appartengono insieme e non hanno bisogno di sapere su queste classi" e si separano lungo quelle linee

    
risposta data 06.07.2011 - 12:05
fonte
14

Un assembly è l'unità di distribuzione per un'applicazione .NET; di conseguenza, dovresti considerare di abbinare il taglio degli assiemi con la tua architettura di implementazione.

Gli assembly sono utili anche quando è necessario il controllo della versione separato su alcuni codici. Ad esempio, se si dispone di interfacce comuni che trarrebbero vantaggio dal controllo di versione indipendente, è necessario separare tale codice in un assembly.

Ricorda che gli spazi dei nomi possono estendersi su assiemi. In molti casi è sufficiente separare il comportamento usando i namespace. Guarda il mscorlib.dll di .NET che in un singolo assembly contiene codice che copre una vasta gamma di comportamenti separati solo da namespace.

Se vuoi un po 'di autorità su questo argomento, non guardare oltre:

Linee guida per la progettazione di framework: convenzioni, idiomi e schemi per le librerie .NET riutilizzabili (2a edizione) di Krzysztof Cwalina e Brad Abrams.

    
risposta data 06.07.2011 - 13:29
fonte

Leggi altre domande sui tag