Estou trabalhando em um aplicativo Silverlight. Dividi-o em várias montagens:
- Domínio
- Repositórios (tudo com persistência no banco de dados Sterling)
- UI
- ...
Foi assim que aprendi, mas me perguntei. Se você sabe que as DLLs não serão reutilizadas, é necessário dividi-las? Ou você pode colocar tudo em um assembly e usar pastas e espaços para nome para mantê-lo organizado?
Eu também vi projetos que têm muitas assembléias. Em vez de usar espaços para nome onde seria apropriado.
Então: quando você cria um novo assembly para algum novo pedaço de código? Algum bom recurso sobre este assunto? E você divide o código tecnicamente (domínio, dados, interface do usuário, etc.) e / ou funcionalmente (ou seja, administração do paciente, médico do paciente, logística do hospital, ... - provavelmente apenas para aplicativos de nível empresarial maiores)?
A
,B
,C
,D
,E
,F
,G
,H
,I
,J
,K
. Onde quer que você faz referência a montagemA
, você também deve fazer referência a seus assemblies dependentes:B
,C
,D
. Mas montagemC
é dependente:E
,F
,G
,H
então vamos precisar os demais. Portanto, sempre que você precisar de alguma função, precisaráA
extrair 7 conjuntos adicionais para fazê-lo funcionar; certificando-se de obter as versões corretas de cada montagem. Bem-vindo à nova DLL Hell.Um assembly é a unidade de implantação de um aplicativo .NET; portanto, considere combinar o corte de seus assemblies com sua arquitetura de implantação.
Os assemblies também são úteis quando você precisa de controle de versão separado em algum código. Por exemplo, quando você possui interfaces comuns que se beneficiariam do controle de versão independente, você deve separar esse código em um assembly.
Lembre-se de que os espaços para nome podem abranger assemblies. Em muitos casos, basta separar o comportamento usando namespaces. Observe o .NET
mscorlib.dll
que, em um único assembly, contém código que cobre uma grande variedade de comportamentos separados apenas pelo espaço para nome.Se você quiser alguma autoridade sobre esse assunto, não procure mais:
Diretrizes de design da estrutura: convenções, expressões idiomáticas e padrões para bibliotecas .NET reutilizáveis (2ª edição) por Krzysztof Cwalina e Brad Abrams.
fonte