Diagramas de camada: Diretrizes

Em Visual Studio Ultimate, você pode descrever a estrutura de um aplicativo em um alto nível e verificar que o código está de acordo com esse design de alto nível por meio de diagramas de camada. Para garantir que o código permanece consistente com o design, você pode incluir validação de camada como parte do processo de compilação.

Como um diagrama de arquitetura tradicional, um diagrama de camada identifica os componentes ou principais unidades funcionais do design e suas interdependências. Cada nó no diagrama, chamado um camada, representa um grupo lógico de namespaces, projetos ou outros artefatos. Você pode desenhar as dependências que devem existir em seu design. Ao contrário de um diagrama de arquitetura tradicional, você pode verificar que as dependências reais no código fonte está de acordo com as dependências pretendidas que você especificou. Fazendo parte da validação de uma compilação regular, em Team Foundation Server, você pode garantir que o código do programa continua a aderir a arquitetura do sistema por meio de alterações futuras.

Para obter informações sobre os elementos de diagramas de camada e suas propriedades, consulte Diagramas de camada: Referência.

Como criar ou atualizar o seu aplicativo usando diagramas de camada

As etapas a seguintes fornecem uma visão geral de como usar diagramas de camada dentro do processo de desenvolvimento. As seções posteriores deste tópico descrevem mais detalhadamente sobre cada etapa. Se você estiver desenvolvendo um novo design, omita as etapas que se referem ao código existente.

ObservaçãoObservação

Essas etapas são exibidas na ordem aproximada. Você provavelmente deseja sobrepor as tarefas, reordená-los de acordo com sua própria situação e visitá-las no início de cada iteração em seu projeto.

  1. Criar um diagrama de camada para o aplicativo inteiro ou para uma camada dentro dele.

  2. Definir camadas para representar as principais áreas funcionais ou componentes do seu aplicativo. Essas camadas de acordo com suas funções, por exemplo, "apresentação" de nome. ou "Serviços". Se você tiver um Visual Studio solução, você pode associar cada camada com uma coleção de artefatos, como, por exemplo, projetos, namespaces, arquivos e assim por diante.

  3. Descubra as dependências existentes entre camadas.

  4. Editar as camadas e dependências para mostrar o documento atualizado design que você deseja que o código para refletir.

  5. Criar novas áreas de seu aplicativo , criando a camadas para representar os principais blocos de arquiteturais ou componentes e definem as dependências para mostrar como cada camada usa as outras.

  6. Editar o layout e aparência do diagrama de para ajudá-lo a discuti-lo com colegas.

  7. Validar o código contra o diagrama de camada para realçar os conflitos entre o código e a arquitetura que você precisa.

  8. Atualizar o código de acordo com sua nova arquitetura. Iterativamente, desenvolver e refatorar o código até que a validação não mostra nenhum conflito.

  9. Incluir validação de camada no processo de compilação para garantir que o código continua a obediência a seu design.

Criar um diagrama de camada

Um diagrama de camada deve ser criado dentro de um projeto de modelagem. Você pode adicionar um novo diagrama de camada para um projeto de modelagem existente, ou você pode criar uma nova modelagem em sua solução para o novo diagrama de camada.

Para adicionar um novo diagrama de camada para um projeto de modelagem

  1. Sobre o arquitetura menu, clique em Novo diagrama.

  2. Em modelos de, clique em Diagrama de camada de.

  3. Nome do diagrama.

  4. Em Adicionar ao projeto de modelagem, procure e selecione um projeto de modelagem existente em sua solução.

    - ou -

    Clique em criar um novo projeto de modelagem para adicionar um novo projeto de modelagem para a solução.

    ObservaçãoObservação

    O diagrama de camada deve existir dentro de um projeto de modelagem. No entanto, você pode vinculá-lo a artefatos que existam na solução.

Você também pode copiar um diagrama de camada existente dentro do mesmo projeto de modelagem.

ObservaçãoObservação

Não adicionar, arrastar ou copiar um diagrama de camada existente de um projeto de modelagem para outro projeto de modelagem ou para outro local na solução. Um diagrama de camada é copiado dessa maneira terá as mesmas referências como diagrama original, mesmo se você modificar o diagrama. Isso impedirá a validação da camada de funcionar corretamente e pode causar outros problemas, como, por exemplo, elementos ausentes ou outros erros ao tentar abrir o diagrama.

Para copiar um diagrama de camada, siga estas etapas:

Para copiar um diagrama de camada existente

  1. Adicione um novo diagrama de camada para o projeto de modelagem.

  2. Copie os elementos do diagrama de camada de origem para o novo diagrama de camada.

Definir camadas para representar áreas funcionais ou componentes

Camadas representam grupos lógicos de artefatos, como, por exemplo, projetos, arquivos de código, namespaces, classes e métodos. É possível criar camadas de artefatos em seu Visual Studio solução, ou você pode anexar as especificações ou planos para uma camada vinculando documentos, tais 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 estão vinculados a ele. Uma camada pode conter camadas aninhadas que descrevem as tarefas mais granulares.

Como diretriz geral, nomeie as camadas de acordo com a sua função, por exemplo, "apresentação" ou "Serviços". Se os artefatos estão intimamente interdependentes, colocá-los na mesma camada. Se os artefatos podem ser atualizados separadamente ou usado em aplicativos separados, colocá-los em diferentes camadas. Para saber sobre os padrões de camadas, visite os padrões & Site de práticas em https://go.microsoft.com/fwlink/?LinkId=145794.

ObservaçãoObservação

Há determinados tipos de artefatos que você pode vincular a camadas, mas que não oferecem suporte a validação de diagrama de camada. Para ver se o artefato oferece suporte à validação, abra Explorer de camada para examinar o Oferece suporte à validação a propriedade do vínculo artefato. Para obter mais informações, consulte Gerenciando Links entre camadas e artefatos.

Ao atualizar um aplicativo não familiar, você pode usar gráficos de dependência para ajudá-lo a explorar e entender o código. Esses gráficos podem ajudá-lo a descobrir os clusters e dependências no código. Você também pode usar o Explorer de arquitetura para explorar os namespaces e classes, que geralmente correspondem bem às camadas existentes. Isso pode ajudar a facilitar atribuir os artefatos para 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:

Use as seguintes tarefas para criar camadas:

Para

Execute essas etapas.

Crie uma camada para um único artefato

  1. Arraste o artefato do diagrama de camada de qualquer uma das seguintes fontes:

    Uma camada aparece no diagrama e o artefato está vinculada.

  2. Renomear a camada para refletir as responsabilidades do código associado ou artefatos.

Crie uma camada única para todos os artefatos selecionados

Arraste todos os artefatos selecionados para o diagrama ao mesmo tempo.

Uma camada aparece no diagrama e está vinculada ao grupo inteiro de artefatos.

Crie uma camada para cada artefato selecionado

Pressione e mantenha pressionado o SHIFT chave enquanto arrasta todos os artefatos para o diagrama de camada ao mesmo tempo.

ObservaçãoObservação
Se você usar o SHIFT chave para selecionar um intervalo de itens, solte a tecla depois de selecionar os artefatos.Pressione e mantenha-o novamente quando você arrasta os artefatos ao diagrama.

Uma camada para cada artefato aparece no diagrama e está vinculada a este artefato.

Adicionar um artefato a uma camada

Arraste o artefato à camada.

Criar uma nova camada desvinculada

No Toolbox, expanda o Diagrama de camada seção e, em seguida, arraste um camada para o diagrama de camada.

Para adicionar várias camadas, clique duas vezes na ferramenta. Quando tiver terminado, clique no ponteiro ferramenta ou pressione a ESC chave.

- ou -

Clique com o botão direito do diagrama de camada, aponte para Adde em seguida, clique em camada.

Por exemplo, você pode fazer isso para representar uma parte do aplicativo que ainda não começaram a se desenvolver. É uma prática útil para criar o código de espaço reservado para tais camadas mais cedo possível.

Criar camadas aninhadas

Arraste uma camada existente de outra camada.

- ou -

Uma camada com o botão direito, aponte para Adde em seguida, clique em camada.

Criar uma nova camada que contém duas ou mais camadas existentes

Selecione as camadas, uma camada selecionada com o botão direito e, em seguida, clique em grupo.

Alterar a cor de uma camada

Definir seu cor propriedade para a cor desejada.

Especificar que os artefatos associados a uma camada não podem depender de namespaces especificados

Digite os namespaces na camada de Proibido dependências do Namespace propriedade. Use um ponto e vírgula (;) para separar os espaços para nome.

Especificar que os artefatos associados a uma camada não devem pertencer a namespaces especificados

Digite os namespaces na camada de Proibido Namespaces propriedade. Use um ponto e vírgula (;) para separar os espaços para nome.

Especificar que os artefatos associados a uma camada devem pertencer a um dos namespaces especificados

Digite o namespace na camada de Necessário Namespaces propriedade. Use um ponto e vírgula (;) para separar os espaços para nome.

  1. No diagrama de camada, uma camada com o botão direito e clique em Exibir Links.

    Camada Explorer mostra os artefatos que estão vinculados à camada selecionada. Para ver todos os artefatos que estão vinculados às camadas no diagrama, clique no diagrama.

  2. Use as seguintes tarefas para gerenciar esses links:

    Para

    No Explorer de camada

    Excluir o vínculo entre a camada e um artefato

    Clique com o botão direito do artefato e, em seguida, clique em Excluir.

    Mover o link de uma camada para outra

    Arraste o link de artefato a uma camada existente no diagrama.

    - ou -

    1. Clique com o botão direito do artefato e, em seguida, clique em Recortar.

    2. No diagrama de camada, clique com o botão direito na camada e clique em Colar.

    Copie o link de uma camada para outra

    1. Clique com o botão direito do artefato e, em seguida, clique em Copy.

    2. No diagrama de camada, clique com o botão direito na camada e clique em Colar.

    Criar uma nova camada a partir de um link existente do artefato

    Arraste o link de artefato para uma área em branco no diagrama.

    Verificar se um artefato vinculado suporta a validação de diagrama de camada.

    Examine o Oferece suporte à validação coluna para o link do artefato.

    Artefatos não oferecem suporte a validação de um diagrama de camada incluem projetos do C++, sites da Web, documentos do Office e arquivos de texto sem formatação. Você pode vincular tais artefatos em camadas, mas o processo de validação irá ignorá-las. Erros de validação não aparecerá para referências a projetos ou assemblies que são vinculados a camadas separadas, quando nenhuma dependência aparece entre essas camadas. Tais referências não são consideradas dependências, a menos que o código usa essas referências.

Descubra as dependências existentes entre camadas

Uma dependência existe sempre que um artefato que está associado uma camada tem uma referência a um artefato que está associada a outra camada. Por exemplo, uma classe em uma camada declara uma variável que possui uma classe em outra camada. Você pode descobrir dependências existentes com a engenharia reversa-los.

ObservaçãoObservação

Dependências não podem ser com engenharia reversa para determinados tipos de artefatos. Por exemplo, não há dependências serão com engenharia reversa de ou para uma camada vinculada a um arquivo de texto. Para ver quais artefatos tem dependências que você pode fazer engenharia reversa, uma ou várias camadas com o botão direito e clique em Exibir Links. Em Explorer de camada de, examine o Oferece suporte à validação coluna. Dependências não será com engenharia reversa de artefatos para o qual esta coluna mostra False.

A engenharia reversa dependências existentes entre camadas

  • Selecione uma camada ou várias camadas, uma camada selecionada com o botão direito e, em seguida, clique em Gerar dependências.

Normalmente, você verá algumas dependências que não devem existir. Você pode editar essas dependências para alinhá-los com o design pretendido.

Editar as camadas e dependências para mostrar o Design pretendido

Descrever as alterações que você planeja fazer seu sistema, você pode editar o diagrama para refletir o design atualizado. Você também pode considerar fazer algumas alterações de refatoração para melhorar a estrutura do código antes de estendê-lo. Para obter mais informações, consulte melhorando a estrutura do código de.

Para

Execute essas etapas.

Excluir uma dependência que não deve existir

Clique na dependência e então pressione Excluir.

Alterar ou restringir a direção de uma dependência.

Defina seu direção propriedade.

Criar novas dependências

Use o dependência e Bidirecional dependência ferramentas.

Para desenhar várias dependências, clique duas vezes na ferramenta. Quando tiver terminado, clique no ponteiro ferramenta ou pressione a ESC chave.

Especificar que os artefatos associados a uma camada não podem depender de namespaces especificados

Digite os namespaces na camada de Proibido dependências do Namespace propriedade. Use um ponto e vírgula (;) para separar os espaços para nome.

Especificar que os artefatos associados a uma camada não devem pertencer a namespaces especificados

Digite os namespaces na camada de Proibido Namespaces propriedade. Use um ponto e vírgula (;) para separar os espaços para nome.

Especificar que os artefatos associados a uma camada devem pertencer a um dos namespaces especificados

Digite o namespace na camada de Necessário Namespaces propriedade. Use um ponto e vírgula (;) para separar os espaços para nome.

Melhorando a estrutura do código

Alterações de refatoração são aprimoramentos que afetam o comportamento do aplicativo, mas ajudam a tornar o código mais fácil alterar e estender no futuro. Código bem estruturado possui um design que é fácil de abstrair a um diagrama de camada.

Por exemplo, se você criar uma camada de cada namespace no código e, em seguida, fazer engenharia reversa as dependências, deve haver um conjunto mínimo de dependências unidirecionais entre as 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 não for esse o caso, o código será mais difícil alterar ao longo do tempo e será menos adequado para validação usando diagramas de camada.

Design de novas áreas de seu aplicativo.

Quando você iniciar 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 principais componentes antes de começar a desenvolver o código.

  • Mostrar os padrões arquitetônicos identificáveis nos diagramas de camada, se possível. Por exemplo, um diagrama de camada que descreve um aplicativo de desktop pode incluir camadas como, por exemplo, apresentação, lógica de domínio e armazenamento de dados. Um diagrama de camada abrange um único recurso dentro de um aplicativo pode ter camadas como modelo, o modo de exibição e o controlador. Para obter mais informações sobre tais padrões, consulte padrões & Práticas recomendadas: Arquitetura de aplicativos.

    Se você cria freqüentemente padrões similares, crie uma ferramenta personalizada. Para obter mais informações, consulte Como: Definir um Item da caixa de ferramentas de modelagem de personalizado.

  • Criar um artefato de código para cada camada como, por exemplo, um namespace, classe ou componente. Isso torna mais fácil de seguir o código e vincular os artefatos de código em camadas. Assim que você cria cada artefato, vinculá-lo à camada apropriada.

  • Não é necessário vincular camadas a maioria das classes e outros artefatos por estarem situados dentro de artefatos maiores, como, por exemplo, namespaces que já ligou para camadas.

  • Criar um novo diagrama para um novo recurso. Normalmente, haverá um ou mais diagramas de camada, descrevendo o aplicativo inteiro. Se você estiver criando um novo recurso dentro do aplicativo, não adicionar ou 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, lógica de domínio e camadas de banco de dados para o novo recurso.

    Quando você constrói o aplicativo, seu código será validado tanto contra o diagrama geral e o seu diagrama mais detalhado do recurso.

Editar o Layout de apresentação e discussão

Para ajudá-lo a identificar as camadas e dependências ou discuti-los com membros da equipe, edite a aparência e o layout do diagrama das seguintes maneiras:

  • Altere os tamanhos, formas e posições das camadas.

  • Altere as cores das camadas e dependências.

    • Selecione uma ou mais camadas ou dependências, com o botão direito e clique Propriedades. No Propriedades janela, edite o cor propriedade.

Validar o código contra o diagrama

Quando você tiver editado o diagrama, você pode validá-lo contra o código manualmente a qualquer momento ou automaticamente toda vez que você executar uma compilação local. Você também pode executar validação automaticamente sempre que você criar usando Team Foundation Server.

Para obter mais informações, consulte:

Para adicionar assemblies ou projetos manualmente para validação

  1. Em Solution Explorer, clique com o botão direito no projeto de modelagem ou o Camada de referênciapasta s e clique Add Reference.

  2. No Add Reference caixa de diálogo, selecione os assemblies ou projetos e clique em OK.

Para validar o código manualmente a partir de um diagrama aberto de camada

  1. Clique com o botão direito na superfície de diagrama e, em seguida, clique em Arquitetura validar.

    ObservaçãoObservação

    Por padrão, o Build Action no arquivo de diagrama (.layerdiagram) da camada for definida como Validar para que o diagrama seja incluído no processo de validação.

    O Error List janela relata quaisquer erros que ocorram. Para obter mais informações sobre erros de validação, consulte Noções básicas sobre os erros de validação de camada.

  2. Para exibir a origem de cada erro, clique duas vezes o erro de Error List janela.

    ObservaçãoObservação

    Visual Studiopode mostrar um gráfico de dependência em vez da origem do erro. Isso ocorre quando o código tem uma dependência em um assembly que não for especificado, o diagrama de camada, ou o código está faltando uma dependência que é especificada pelo diagrama de camada. Analise o gráfico de dependência ou o código para determinar se a dependência deve existir. Para obter mais informações sobre gráficos de dependência, consulte Como: Procurar e navegar por documentos do gráfico.

  3. Para gerenciar erros, consulte Atualizando o código para o método encaixar com a nova arquitetura.

Para validar o código manualmente a partir do prompt de comando

  1. Abrir o Visual Studio o prompt de comando.

    Para abrir o prompt de comando, clique em Iniciar, aponte para Todos os programas, aponte para Microsoft 2010 de Visual Studio, aponte para Visual Studio Toolse, em seguida, clique em Visual Studio Prompt de comando de 2010.

  2. Escolha uma das seguintes opções:

    • Para validar o código de um projeto de modelagem específicos na solução, execute MSBuild com a seguinte propriedade personalizada.

      msbuild <FilePath+ModelProjectFileName>.modelproj
      /p:ValidateArchitecture=true
      

      - ou -

      Navegue até a pasta que contém a modelagem do projeto (.modelproj) de arquivo e o diagrama de camada e, em seguida, executar MSBuild com a propriedade personalizada a seguir:

      msbuild /p:ValidateArchitecture=true 
      
    • Para validar o código de todos os projetos de modelagem da solução, execute MSBuild com a propriedade personalizada a seguir:

      msbuild <FilePath+SolutionName>.sln /p:ValidateArchitecture=true 
      

      - ou -

      Navegue até a pasta de solução, o que deve conter um projeto de modelagem que contém um diagrama de camada e execute MSBuild com a propriedade personalizada a seguir:

      msbuild /p:ValidateArchitecture=true
      

    Quaisquer erros que ocorram serão listados. Para obter mais informações sobre MSBuild, consulte MSBuild e Tarefa do MSBuild.

Para obter mais informações sobre erros de validação de compreensão, consulte Noções básicas sobre os erros de validação de camada.

Para validar o código automaticamente a partir de uma compilação local

  • Use um editor de texto para abrir o projeto de modelagem (.modelproj) de arquivo e inclua a seguinte propriedade:
<ValidateArchitecture>true</ValidateArchitecture>

- ou -

  1. Em Solution Explorer, o projeto de modelagem que contém o diagrama de camada ou diagramas com o botão direito e, em seguida, clique em Propriedades.

  2. No Propriedades janela, defina o projeto de modelagem Arquitetura validar propriedade para True.

    Isso inclui o projeto de modelagem no processo de validação.

  3. Em Solution Explorer, clique no arquivo de diagrama (.layerdiagram) de camada que deseja usar para validação.

  4. No Propriedades janela, certifique-se de que o diagrama Build Action for definida como Validar.

    Isso inclui o diagrama de camada no processo de validação.

Para obter mais informações sobre erros de validação de compreensão, consulte Noções básicas sobre os erros de validação de camada. Para gerenciar erros, consulte Atualizando o código para o método encaixar com a nova arquitetura.

Atualizar o código de acordo com a nova arquitetura

Normalmente, os erros será exibido na primeira vez que você valide o código de um diagrama de camada atualizado. Esses erros podem ter várias causas:

  • Um artefato é atribuído à camada errada. Nesse caso, mova o artefato.

  • Um artefato, como, por exemplo, uma classe usa outra classe de forma que está em conflito com sua arquitetura. Nesse caso, refatorar o código para remover a dependência.

Para resolver esses erros, atualize o código até que mais erros aparecem durante a validação. Isso geralmente é um processo iterativo.

ObservaçãoObservação

Como você desenvolve ou refatorar o código, você pode ter novos artefatos para vincular a diagrama de camada. Entretanto, isso pode não ser necessário, por exemplo, quando você tem de camadas que representam os espaços para nome existentes e o novo código apenas adiciona mais material para esses namespaces.

Durante o processo de desenvolvimento, você talvez queira suprimir alguns dos conflitos relatados durante a validação. Por exemplo, você talvez queira Suprimir erros que você já está abordando ou que não sejam relevantes para seu cenário em particular. Quando você suprime um erro, é uma boa prática para efetuar o logon de um item de trabalho em Team Foundation.

Para criar um item de trabalho para um erro de validação

  • No Error List janela, o erro com o botão direito, aponte para Create Work Iteme clique no tipo de item de trabalho que você deseja criar.

Use estas tarefas para gerenciar erros de validação de Error List janela:

Para

Siga estas etapas.

Suprimir erros selecionados durante a validação

Um ou vários erros selecionados com o botão direito, aponte para Erros de validação de gerenciare em seguida, clique em Suprimir erros.

Os erros de suprimidas aparecem com um tachado. Quando você executa a validação da próxima vez, esses erros não aparecerá.

Erros suprimidos são controlados em um arquivo de .suppressions para o arquivo de diagrama de camada correspondente.

Parar a supressão de erros selecionados

O erro suprimido selecionado ou erros de atalho, aponte para Gerenciar erros de validaçãoe, em seguida, clique em Erros de interrupção de supressão de.

Erros suprimidos selecionados aparecerão quando você executa a validação da próxima vez.

Restaurar suprimidos todos os erros de Error List janela

Clique com o botão direito em qualquer lugar no Error List janela, aponte para Erros de validação de gerenciare, em seguida, clique em Mostrar todos os erros suprimidas.

Ocultar erros suprimidos tudo a partir de Error List janela

Clique com o botão direito em qualquer lugar no Error List janela, aponte para Erros de validação de gerenciare, em seguida, clique em Ocultar todos os erros suprimidas.

Incluir validação de camada no processo de compilação

Para garantir que as futuras alterações no código em conformidade com os diagramas de camada, inclua validação de camada para o processo de compilação padrão da solução. Sempre que os outros membros da equipe desenvolvem a solução, as diferenças entre as dependências no código e o diagrama de camada serão relatadas como erros de compilação.

Para validar o código durante a execução do Team Foundation Build

  1. Em Team Explorer, clique duas vezes na definição de compilação e, em seguida, clique em processo.

  2. Em parâmetros de processo de compilação, expanda compilaçãoe digite o seguinte no Argumentos do MSBuild parâmetro:

    /p:ValidateArchitecture = true

Para obter mais informações, consulte Definir uma compilação usando o modelo padrão.

Consulte também

Tarefas

Como: Crie diagramas de camada de artefatos

Como: Valide.NET Code contra os diagramas de camada

Conceitos

Diagramas de camada: Referência