Diálogo Você pode usar diagramas de camada para projetar a arquitetura do aplicativo e verificar se o código está alinhado com o design. Você pode controlar o trabalho associado aos seus modelos vinculando itens de trabalho do Team Foundation Server com elementos de modelo. Isso fornece rastreabilidade entre os modelos, o IDE e o código, quer você esteja projetando uma nova solução ou atualizando uma solução existente. Vamos começar examinando a arquitetura de um aplicativo revisando seu diagrama de camada. O arquiteto da equipe sugeriu refatorar parte desse aplicativo para que ele se alinhe com o design no diagrama da camada. Essa tarefa está em nossa lista de pendências e está vinculada ao diagrama de camada. Ação No Gerenciador de Soluções, em Meu Trabalho, clique duas vezes no item de trabalho da tarefa para abri-lo. No item de trabalho, clique em Outros Links. Em Link do Modelo, clique duas vezes no "link do modelo", que abre o Petshop.layerdiagram no projeto PetShopModels. Diálogo Um diagrama de camada mostra as dependências permitidas entre namespaces, que são mapeadas para camadas. Os diagramas de camada são muito semelhantes ao desenho em um quadro de comunicações. Eles têm formas e relações entre essas formas. Com a existência de diagramas de camada na sua solução, você pode fazer mais do que apenas descrever a arquitetura pretendida. Você pode validar seu código em relação a um diagrama de camada para descobrir se existem dependências inválidas. Ao incluir essa etapa como parte de seu processo de check-in e compilação, você pode descobrir mais facilmente as alterações no código que estão em conflito com o design. Ação No menu Arquitetura, escolha Janelas, Gerenciador de Camadas. No diagrama de camada, clique na camada Business. Examine os artefatos no Gerenciador de Camadas. No diagrama de camada, clique com o botão direito do mouse na camada Business. Escolha Validar Arquitetura. (isso poderá demorar um pouco) Na janela Lista de Erros, examine os erros (cada um marcado por um X vermelho). Clique duas vezes no primeiro erro para visualizar o código que produziu esse erro. Diálogo Encontramos algumas dependências no código que estão em conflito com o design. O método Insert na classe Order torna inválidas as chamadas para métodos de duas outras classes. No diagrama de camada, o método Insert é mapeado para a camada Business, que não deveria se comunicar diretamente com as camadas para as outras duas classes. A camada Business deve se comunicar com a camada PaymentGateway. A validação de camada nos mostrou o que está errado com o código, portanto, quando corrigimos esse conflito, a revalidação desse diagrama deverá confirmar que fizemos o certo. Ação No diagrama de camada, clique na camada PaymentGateway. Na janela Gerenciador de Camadas, consulte o namespace PaymentGatway. No Gerenciador de Soluções, expanda o projeto PaymentGateway, o tipo PaymentProcessor e revise os métodos membros. Abra o arquivo PaymentProcessor.cs para visualizar as definições de métodos membros. Diálogo Examinando o código que foi mapeado para a camada PaymentGateway, podemos delegar parte da funcionalidade do método Insert para o método ProcessPayment. Vamos criar diagramas de sequência para que possamos comparar visualmente as estruturas de alto nível e chamar sequências para esses dois métodos. Ação Clique duas vezes no primeiro erro para exibir o código. Visualizamos a definição do método Insert. Clique com o botão direito do mouse em qualquer lugar dentro da definição do método Insert. Escolha Gerar Diagrama de Sequência. Mantenha todas as opções propostas. Clique em OK. O diagrama de sequência mostra o método Insert das classes CreditCardService e OnlinePaymentService. No arquivo PaymentProcessor.cs, clique com o botão direito do mouse dentro da definição do método ProcessPayment. Escolha Gerar Diagrama de Sequência. Mantenha todas as opções propostas. Clique em OK. Navegue entre os diagramas de sequência e compare quais classes são buscadas pelos métodos Insert e ProcessPayment e quais não são. Mostre as similaridades e as diferenças. Diálogo Observamos que esses dois métodos são muito semelhantes, porém com algumas diferenças. Vamos refatorar o método Insert para chamar ProcessPayment. Em seguida, executaremos a validação novamente para assegurar que nossas alterações resolveram os conflitos de dependência. Ação Na definição do método Insert, substitua o código entre as seguintes instruções: if (order.CreditCard.CardType == "CreditCardProviderA" || order.CreditCard.CardType == "CreditCardProviderB") and: CalculatePaymentInfo(order); pelo seguinte código: PaymentGateway.PaymentProcessor processor = new PaymentGateway.PaymentProcessor(); if (!processor.ProcessPayment(order)) { return OrderStatus.Failed; } Valide a arquitetura. Diálogo Neste vídeo, mostramos como os diagramas de camada o ajudam a descrever a arquitetura pretendida de um aplicativo e como você pode usar a validação de camada para verificar onde seu código apresenta conflito com o design. Também mostramos como usar diagramas de sequência para visualizar o fluxo de método nas diferentes classes. Para saber como usar modelos UML para descrever sua arquitetura, veja nosso vídeo relacionado.
Diagramas de classe não podem ser criados ou abertos por que os componentes necessários ou não estão faltando ou estão faltando. ...
diagramas de classe não podem ser criados ou abertos porque os componentes necessários não estão instalados. Execute o Visual ...
Diálogo No Visual Studio, você pode obter dados de diagnóstico sobre aplicativos que já implantou usando o coletor autônomo ...
Diálogo Os testes de desempenho e carga são a chave para o entendimento do modo como o aplicativo ou serviço é dimensionado ...
Diálogo Você pode usar diagramas de camada para projetar a arquitetura do aplicativo e verificar se o código está alinhado ...
Diálogo Você pode usar diagramas UML para modelar os requisitos de usuário do aplicativo e o design, Facilitando a discussão ...
Dicionário do tipo '{0}' não pode adicionar a chave '{1}'. Um TypeConverter converterá a chave no tipo '{2}'. Para não ver ...
Digite '=' para especificar '|1' como a chave do grupo. Do contrário, será usado o nome de chave original. Observação: use ...
Digite '=' para especificar '|1' como o nome do resultado de agregação. Do contrário, será usado o nome da função de agregação. ...