Diagramas de camada: diretrizes
Você pode descrever a arquitetura do seu aplicativo em um alto nível criando diagramas da camada no Visual Studio final.Para certificar-se de que o código fique consistente com seu design, valide o código com um diagrama de camada no Visual Studio Ultimate ou no Visual Studio Premium.Você também pode incluir validação de camada no processo de compilação.Consulte Exibição do canal 9: Criar e validar a arquitetura usando diagramas de camada.
O que é um diagrama de camada?
Como um diagrama tradicional de arquitetura, um diagrama de camada identifica os componentes principais ou as unidades funcionais de design e suas interdependências.Cada nó no diagrama chamado, uma camada, representa um grupo, lógico de namespaces de projetos, ou outros artefatos.Você pode desenhar as dependências que devem existir em seu design.Ao contrário de um diagrama tradicional de arquitetura, você pode verificar que as dependências reais no código-fonte estejam de acordo com as dependências pretendidas que você especificou.Fazendo a parte de validação de uma compilação normal em Team Foundation Server, você pode garantir que o código de programa continue a aderir a arquitetura do sistema através das alterações futuras.Consulte Diagramas de camada: referência.
Como criar ou atualizar seu aplicativo com diagramas de camada
As etapas a seguir fornece uma visão geral de como usar diagramas de camada dentro do processo de desenvolvimento.As seções posteriores neste tópico descrevem mais detalhes sobre cada etapa.Se você estiver desenvolvendo um novo design, omitir as etapas que se referem ao código existente.
Observação |
---|
Estas etapas aparecem na ordem próximo.Você provavelmente desejará sobrepor as tarefas, para reorganizar-las para atender sua própria situação, e para revisitá-las no início de cada iteração em seu projeto. |
Crie um diagrama de camada para o aplicativo inteiro, ou para uma camada nela.
Defina camadas para representar áreas funcionais ou componentes principais do seu aplicativo.Nomeie essas camadas de acordo com sua função, por exemplo, “apresentação” ou “serviços”.Se você tiver uma solução de Visual Studio , você pode associar cada camada com uma coleção de artefatos, como projetos, namespaces, arquivos, e assim por diante.
Descobrir as dependências existentes entre camadas.
Editar as camadas e dependências para mostrar o design atualizado que você deseja que o código refletir.
Novos áreas de design do seu aplicativo criando mergulha para representar dependências os blocos ou componentes e a definição arquitectónicos chave para mostrar como cada camada usa para outro.
Edite o layout e aparência do diagrama para ajudá-lo a descreve com os colegas.
Validar o código no diagrama de camada para realçar os conflitos entre o código e arquitetura que você precisa.
Atualizar código para estar de acordo com a sua nova arquitetura.Torne iterativa e o código do refatorar até a validação não mostra nenhum conflito.
Incluir validação de camada no processo de compilação para garantir que o código continue a aderir ao seu design.
Crie um diagrama de camada
Um diagrama de camada deve ser criado dentro do projeto modelando.Você pode adicionar um novo diagrama da camada modelando um projeto existente, criar um novo projeto modelando para o diagrama de camada, ou copiar um diagrama existente na camada no mesmo projeto modelando.
Importante |
---|
Não adicionar, não arrastar, ou copiar um diagrama existente da camada de um projeto modelando a outro projeto modelando ou para outro local na solução.Um diagrama de camada que é copiado dessa maneira terá as mesmas referências que o diagrama original, mesmo se você alterar o diagrama.Isso evitará que a validação de camada funcione corretamente e pode causar outros problemas, como os elementos ausentes ou outros erros ao tentar abrir o diagrama. |
Consulte Criar diagramas de camada a partir do código.
Defina camadas para representar áreas funcionais ou componentes
As camadas representam grupos lógicos de artefatos, como projetos, arquivos de código, namespaces, classes, e métodos.Você pode criar camadas de artefatos de projetos do Visual basic .NET e do .NET Visual Basic., ou você pode anexar especificações ou planos a uma camada vinculando documentos, como arquivos do Word ou apresentações do Powerpoint.Cada camada aparece como um retângulo no diagrama e mostra o número de artefatos que são associados a ele.Uma camada pode conter as camadas aninhadas que descrevem as tarefas mais granuladas.
Como diretriz geral, o nome mergulha de acordo com sua função, por exemplo, “apresentação” ou “serviços”.Se os artefatos são a interdependentes, coloque-os na mesma camada.Se os artefatos podem ser atualizados separada ou usado em aplicativos separados, coloque-os em diferentes níveis.Para aprender sobre padrões de camadas, didático do site padrões e práticas sobre https://go.microsoft.com/fwlink/?LinkId=145794.
Dica |
---|
Há determinados tipos de artefatos que você pode vincular camadas mas que não suportar a validação contra o diagrama de camada.Para ver se o produto suporta validação, Mergulhe Explorer aberto para examinar a propriedade de Validação de suporte de link do produto.Consulte Gerenciando links entre camadas e artefatos. |
Ao atualizar um aplicativo irrelevante, você pode usar elementos gráficos de dependência para ajudá-lo a explorar e entender o código.Esses elementos gráficos podem ajudá-lo a descobrir conjuntos e dependências no código.Você também pode usar a arquitetura Explorer para explorar namespaces e classes, que correspondem bem frequentemente camadas existentes.Isso pode ajudar a facilitar para que você atribua artefatos camadas.Você pode usar diagramas de camada para ajudá-lo a atualizar o código.
Para obter mais informações, consulte os seguintes tópicos:
Descobrir dependências existentes entre camadas
Uma dependência existe em qualquer lugar que um produto que está associado com uma camada tem uma referência a um produto que está associado com outra camada.Por exemplo, uma classe em uma camada declara uma variável que tenha uma classe em outra camada.Você pode descobrir dependências existentes pela engenharia reversa eles.
Observação |
---|
As dependências não podem ser certos tipos que projetados dos artefatos.Por exemplo, nenhuma dependência que será projetada ou a uma camada que está vinculada a um arquivo de texto.Para ver que artefatos tem dependências que você pode fazer engenharia reversa do, clique com o botão direito do mouse em um ou mais camadas, e clique em Exibir Links.Em Camada Explorer, examine a coluna de Validação de suporte .As dependências que não serão projetadas para os artefatos para que essa coluna mostra False. |
As dependências existentes de engenharia reversa em entre camadas
- Selecione uma camada ou de várias camadas, clique com o botão direito do mouse uma camada selecionada, e clique em Gerar dependências.
Normalmente, você verá algumas dependências que não devem existir.Você pode editar as dependências para alinhar-las com o design esperado.
Editar camadas e dependências para mostrar o design esperado
Para descrever as alterações que você planejar fazer ao seu sistema ou à arquitetura pretendido, use as seguintes etapas para editar o diagrama de camada.Você também pode considerar fazer algumas alterações de refatoração para melhorar a estrutura de código antes de estender-lo.Consulte Melhorando a estrutura de código.
Para |
Executar estas etapas |
---|---|
Excluir uma dependência que não deve existir |
Clique na dependência, e pressione EXCLUIR. |
Alterar ou restringir a direção de uma dependência |
Defina sua propriedade de Direção . |
Criar novas dependências |
Use Dependência e ferramentas de Dependência bidirecional . Para desenhar várias dependências, clique duas vezes na ferramenta.Quando você terminar, clique na ferramenta de Ponteiro ou pressione a tecla de ESC . |
Especificar que os artefatos associados com uma camada não podem depender de namespaces especificadas |
Digite namespaces na propriedade de Dependências proibidas de namespace de camada.Use um ponto-e-vírgula (;) para separar os namespaces. |
Especificar que os artefatos associados com uma camada não devem pertencer a namespaces especificadas |
Digite namespaces na propriedade de Namespaces proibidas de camada.Use um ponto-e-vírgula (;) para separar os namespaces. |
Especificar que os artefatos associados com uma camada devem pertencer a uma das especificadas namespaces |
Digite o namespace na propriedade de Namespaces necessários da camada.Use um ponto-e-vírgula (;) para separar os namespaces. |
Melhorando a estrutura de código
As alterações de Refatoração são as melhorias que não afetam o comportamento do aplicativo, mas ajudam a facilitar o código alterar no futuro e estender.O código bem estruturado tem um design que seja fácil de abstract a um diagrama de camada.
Por exemplo, se você criar uma camada para cada namespace no código e no engenharia reversa nas dependências, se houver um conjunto mínimo de unidirecionais dependências entre camadas.Se você criar um diagrama mais detalhado usando classes ou métodos como as camadas, o resultado também deve ter as mesmas características.
Se esse não for o caso, o código será mais difícil de alterar ao longo de sua vida e será menos apropriado para validação usando diagramas de camada.
Novos áreas de design do seu aplicativo
Quando você começar o desenvolvimento de um novo projeto, ou uma nova área em um novo projeto, você pode desenhar camadas e dependências para ajudar a identificar os componentes principais antes de iniciar para desenvolver código.
Padrão arquitectónicos identificáveis de apresentação em seus diagramas de camada, se possível.Por exemplo, um diagrama de camada que descrevesse um aplicativo de área de trabalho pode incluir camadas como a apresentação, a lógica de domínio, e o armazenamento de dados.Um diagrama de camada que abrangesse um único recurso em um aplicativo pode ter camadas como o modelo, a exibição, e o controlador.Para obter mais informações sobre padrões de tais, consulte Padrões e práticas: Arquitetura do aplicativo.
Se você criar geralmente padrão semelhantes, crie uma ferramenta personalizada.Consulte Como: definir um Item da caixa de ferramentas de modelagem de personalizado.
Crie um produto de código para cada camada como namespace, classe, ou componente.Isso facilita a seguir o código e vincular os artefatos de código camadas.Assim que você criar cada produto, você a camada apropriado.
Você não tem que vincular a maioria das classes e outros artefatos a camadas porque está dentro de artefatos maiores como namespaces que você já tiver associado a camadas.
Crie um novo diagrama para um novo recurso.Normalmente, haverá um ou mais diagramas de camada que descrevem o aplicativo inteiro.Se você estiver criando um novo recurso dentro do aplicativo, não adicione a nem alterar os diagramas existentes.Em vez disso, crie seu próprio diagrama que reflete as novas partes do código.As camadas no novo diagrama podem incluir a apresentação, a lógica de domínio, e as camadas de banco de dados para o novo recurso.
Quando você cria o aplicativo, seu código será validado contra o diagrama total e o diagrama mais detalhado de recurso.
Edite o layout de apresentação e a discussão
Para ajudá-lo a identificar camadas e dependências ou a discutir-los com os membros da equipe, editar a aparência e o layout do diagrama das seguintes maneiras:
Alterar os tamanhos, formas, e as posições das camadas.
Alterar as cores das camadas e as dependências.
- Selecione uma ou várias camadas ou dependências, clique com o botão direito do mouse, e clique em Propriedades.Na janela de Propriedades , edite a propriedade de Cor .
Validar o código no diagrama
Quando você editou o diagrama, você pode validar-lo contra o código manualmente a qualquer momento ou automaticamente sempre que você executa uma compilação local ou Team Foundation Build.
Consulte:
Incluir validação de camada no processo de compilação
Atualizar código para estar de acordo com a nova arquitetura
Normalmente, os erros aparecerão na primeira vez que você valide código contra um diagrama atualizado de camada.Esses erros podem ter várias causas:
Um produto é atribuído a camada incorreta.Nesse caso, mova o produto.
Um produto, como uma classe, usa uma outra classe em uma forma que conflite com a arquitetura.Nesse caso, refatora o código para remover a dependência.
Para resolver esses erros, atualizar o código até que não mais erro aparecer durante a validação.Isso é geralmente um processo iterativo.Para obter mais informações sobre esses erros, consulte Validar o código com diagramas de camada.
Observação |
---|
Como você desenvolve ou refatora o código, você pode ter novos artefatos a vincular ao diagrama de camada.No entanto, isso não pode ser necessário, por exemplo, quando você tem as camadas que representam namespaces existentes, e o novo código adiciona somente mais material 2 esses namespaces. |
Durante o processo de desenvolvimento, você pode desejar suprimir alguns dos conflitos relatadas durante a validação.Por exemplo, talvez queira suprimir erros que você já de resolução ou que não for relevante para seu cenário específico.Quando você suprime um erro, é uma boa prática registrar um item de trabalho em Team Foundation.Para executar esta tarefa, consulte Validar o código com diagramas de camada.
Incluir validação de camada no processo de compilação
Para garantir que as alterações futuras no código estejam de acordo com a diagramas de camada, incluir validação de camada o processo de compilação padrão da solução.Sempre que outros membros da equipe à solução, todas as diferenças entre as dependências no código e o diagrama de camada serão relatadas como erros de compilação.Para obter mais informações sobre incluir de validação de camada no processo de compilação, consulte Validar o código com diagramas de camada.