O que é o Designer de Classe?
Com a ferramenta Designer de Classe do Visual Studio, você pode projetar, visualizar e refatorar diagramas de classes em projetos C#, Visual Basic ou C++. Os diagramas de classe mostram os elementos do código e suas relações em uma superfície de design visual, o que pode ajudar a entender melhor a estrutura do projeto e a reorganizar o código.
Observação
O Designer de Classe não está disponível no .NET Core e no .NET 5 e em projetos posteriores.
Sobre os diagramas de classe
Veja detalhadamente o que você pode fazer com os diagramas de classe:
Criar: edite o código do projeto editando o diagrama de classe. Adicione novos elementos e exclua os que não deseja mais. As alterações serão refletidas no código.
Visualizar: entenda a estrutura do projeto exibindo as classes do projeto em um diagrama. Personalize o diagrama para que você possa se concentrar nos detalhes do projeto mais importantes para você. Salve o diagrama para usar posteriormente na demonstração ou documentação.
Refatorar: substitua métodos, renomeie identificadores, refatore parâmetros e implemente interfaces e classes abstratas.
Exibir tipos e relações
Os diagramas de classe mostram os detalhes de tipos, por exemplo, seus membros constituintes e as relações entre eles. A visualização dessas entidades é uma exibição dinâmica do código. Isso significa que é possível editar tipos no designer e, em seguida, ver as edições refletidas no código-fonte da entidade. Da mesma forma, o diagrama de classe é mantido sincronizado com as alterações feitas nos arquivos de código.
Observação
Se o projeto contiver um diagrama de classe e referenciar um tipo localizado em outro projeto, o diagrama de classes não mostra o tipo referenciado até que você construa o projeto para esse tipo. Da mesma forma, o diagrama não exibe as alterações no código da entidade externa até que você reconstrua o projeto para essa entidade.
Fluxo de trabalho do diagrama de classe
Os diagramas de classe podem ajudar você a entender a estrutura de classe dos projetos. Esses projetos podem ter sido criados por outros desenvolvedores ou você apenas precisa de uma atualização em um projeto que você mesmo criou. Você pode usar diagramas de classe para personalizar, compartilhar e apresentar informações sobre o projeto para outras pessoas.
A primeira etapa na apresentação de informações do projeto é criar um diagrama de classe que exibe o que você deseja mostrar. Para obter mais informações, consulte Add a class diagram (Adicionar um diagrama de classe). Você pode criar vários diagramas de classe para um projeto que pode ser usado para exibir uma exibição distinta do projeto, um subconjunto escolhido dos tipos do projeto ou um subconjunto escolhido dos membros de tipos.
Além de definir o que cada diagrama de classes mostra, você também pode alterar a forma como as informações são apresentadas; para obter mais informações, confira Personalizar diagramas de classe.
Depois de ajustar um ou mais diagramas de classe, copie-os em documentos do Microsoft Office e imprima ou exporte-os como arquivos de imagem. Para obter mais informações, confira Copiar elementos do diagrama de classe para um documento do Microsoft Office, Imprimir diagramas de classe e Exportar diagramas de classe como imagens.
Observação
O Designer de Classe não controla o local dos arquivos de origem, por isso, quando você altera a estrutura do projeto ou move os arquivos de origem no projeto, o Designer de Classe pode perder o controle do tipo, especialmente o tipo de origem de um typedef, classes base ou tipos de associação. Você pode receber um erro, como O Designer de Classe não pode exibir esse tipo. Se você fizer isso, arraste o código-fonte realocado ou modificado para o diagrama de classe, para exibi-lo novamente.
Adicionar diagramas de classe a projetos
Para criar, editar e refatorar classes e outros tipos, adicione um diagrama de classe ao projeto em C#, Visual Basic ou C++. Para visualizar diferentes partes do código em um projeto, adicione vários diagramas de classes ao projeto.
Não é possível criar diagramas de classes a partir de projetos que compartilham o código por meio de diversos aplicativos. Para criar diagramas de classe UML, consulte Criar diagramas e projetos de modelagem UML.
Instalar o componente do Designer de Classe
Se você não tiver instalado o componente do Designer de Classe, siga estas etapas para instalá-lo.
Abra o Instalador do Visual Studio no menu Iniciar do Windows ou selecionando Ferramentas>Obter Ferramentas e Recursos na barra de menus no Visual Studio.
O Instalador do Visual Studio é aberto.
Se você já tiver o Visual Studio instalado, clique no botão Modificar nas opções.
Selecione a guia Componentes individuais e, em seguida, role para baixo até a categoria Ferramentas de código.
Selecione Designer de Classe e, em seguida, selecione Modificar.
O componente do Designer de Classe inicia a instalação.
Adicionar um diagrama de classe em branco a um projeto
No Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto e escolha Adicionar>Novo Item. Ou pressione Ctrl+Shift+A. Se uma janela pequena aparecer apenas com a opção de adicionar um arquivo de código, escolha o botão Mostrar Todos os Modelos.
A caixa de diálogo Adicionar Novo Item é aberta.
Expanda Geral e selecione Diagrama de Classe na lista de modelos. Para projetos do Visual C++, examine a categoria Utilitário para localizar o modelo Diagrama de Classe.
Observação
Se você não vir o modelo Diagrama de Classe, siga as etapas para instalar o componente do Designer de Classe para o Visual Studio. Conforme mencionado anteriormente neste artigo, o Designer de Classe não está disponível para .NET Core e .NET 5 e em versões posteriores.
O diagrama de classe é aberto no Designer de Classe e é exibido como um arquivo que tem uma extensão .cd no Gerenciador de Soluções. Você pode arrastar formas e linhas para o diagrama da Caixa de Ferramentas ou arrastar um nó de projeto do Gerenciador de Soluções para adicionar as classes nesse projeto.
Para adicionar vários diagramas de classes, repita as etapas deste procedimento.
Para exibir o conteúdo de um projeto completo em um diagrama de classe
Abra um diagrama de classes em branco e arraste o nó do projeto do Gerenciador de Soluções para a superfície do diagrama de classes. Um diagrama de classe populado automaticamente é criado.
Importante
O Designer de Classe não está disponível nos projetos .NET Core.
Personalizar diagramas de classe
É possível alterar como os diagramas de classes exibem informações. Você pode personalizar o diagrama inteiro ou os tipos individuais na superfície de design.
Por exemplo, é possível ajustar o nível de zoom de um diagrama de classes inteiro, alterar como os membros de tipo individual são agrupados e classificados, ocultar ou mostrar relações, bem como mover tipos individuais ou em conjunto para qualquer lugar no diagrama.
Observação
Personalizar a maneira como as formas aparecem no diagrama não altera o código subjacente dos tipos representados no diagrama.
As seções que contêm membros de tipo, como a seção Propriedades em uma classe, são chamadas de compartimentos. Você pode ocultar ou mostrar compartimentos individuais e membros de tipo.
Ampliar e reduzir o diagrama de classes
Abra e selecione um arquivo de diagrama de classe no Designer de Classe.
Na barra de ferramentas do Designer de Classe, clique no botão Ampliar ou Reduzir para alterar o nível de zoom da superfície do designer.
ou
Especifique um determinado valor de zoom. É possível usar a lista suspensa Aplicar Zoom ou digitar um nível de zoom válido (o intervalo válido é entre 10% e 400%).
Observação
Alterar o nível de zoom não afeta a escala de impressão do seu diagrama de classes.
Personalizar o agrupamento e a classificação dos membros de tipo
Abra e selecione um arquivo de diagrama de classe no Designer de Classe.
Clique com o botão direito do mouse em uma área vazia na superfície de design e aponte para Membros do Grupo.
Selecione uma das opções disponíveis:
Agrupar por Tipo separa membros de tipo individuais em uma lista agrupada de Propriedades, Métodos, Eventos e Campos. Os grupos individuais dependem da definição das entidades, por exemplo, uma classe não exibe nenhum grupo de eventos se ainda não houver eventos definidos para essa classe.
Agrupar por Acesso separa membros de tipo individuais em uma lista agrupada com base nos modificadores de acesso do membro. Por exemplo, Público ou Privado.
Classificar em Ordem Alfabética exibe os itens que compõem uma entidade como uma única lista alfabetizada. A lista é classificada em ordem crescente.
Ocultar compartimentos em um tipo
Abra e selecione um arquivo de diagrama de classe no Designer de Classe.
Clique com o botão direito do mouse na categoria do membro no tipo que você deseja personalizar (por exemplo, selecione o nó Métodos em uma classe).
Clique em Ocultar Compartimento.
O compartimento selecionado desaparece do contêiner de tipo.
Ocultar membros individuais em um tipo
Abra e selecione um arquivo de diagrama de classe no Designer de Classe.
Clique com o botão direito do mouse no membro do tipo que deseja ocultar.
Clique em Ocultar.
O membro selecionado desaparece do contêiner de tipo.
Mostrar compartimentos e membros ocultos em um tipo
Abra e selecione um arquivo de diagrama de classe no Designer de Classe.
Clique com o botão direito do mouse no nome do tipo com o compartimento oculto.
Clique em Mostrar Todos os Membros.
Todos os membros e compartimentos ocultos aparecem no contêiner de tipo.
Ocultar relações
Abra e selecione um arquivo de diagrama de classe no Designer de Classe.
Clique com o botão direito do mouse na linha de herança ou associação que deseja ocultar.
Clique em Ocultar para linhas de associação e em Ocultar Linha de Herança para linhas de herança.
Clique em Mostrar Todos os Membros.
Todos os membros e compartimentos ocultos aparecem no contêiner de tipo.
Mostrar relações ocultas
Abra e selecione um arquivo de diagrama de classe no Designer de Classe.
Clique com o botão direito do mouse no tipo com a associação ou a herança oculta.
Clique em Mostrar Todos os Membros para linhas de associação e em Mostrar Classe Base ou Mostrar Classes Derivadas para linhas de herança.
Remover uma forma de um diagrama de classes
Você pode remover uma forma de tipo do diagrama de classes sem afetar o código subjacente do tipo. Remover formas de tipo de um diagrama de classes afeta somente esse diagrama. O código subjacente que define o tipo e outros diagramas que exibem o tipo não são afetados.
No diagrama de classes, selecione a forma de tipo que deseja remover do diagrama.
No menu Editar, escolha Remover do Diagrama.
A forma de tipo e todas as linhas de associação ou herança conectadas à forma não aparecem mais no diagrama.
Excluir uma forma de tipo e seu código subjacente
Clique com o botão direito do mouse na forma, na superfície de design.
Selecione Excluir Código no menu de contexto.
A forma é removida do diagrama e seu código subjacente é excluído do projeto.
Copiar elementos do diagrama de classe para um documento do Microsoft Office
É possível copiar formas de um diagrama de classe do .NET (arquivo .cd) para outros documentos. Você receberá uma cópia da forma ou seu código subjacente com base no tipo de documento no qual colá-la. Para copiar formas de diagramas de classes UML em um projeto de modelagem, consulte Exportar diagramas como imagens.
Copiar um único elemento
Clique com o botão direito do mouse na forma e escolha Copiar Imagem.
Copiar vários elementos
Selecione as formas no diagrama que você deseja copiar.
Clique com o botão direito do mouse na seleção e escolha Copiar Imagem.
Copiar todos os elementos em um diagrama de classe
Clique com o botão direito do mouse na superfície do diagrama e escolha Selecionar Tudo ou pressione Ctrl+A.
No menu Editar, selecione Copiar Imagem.
Você também pode escolher Copiar em vez de Copiar Imagem. Copiar copia a imagem como um bitmap regular. Copiar Imagem copia a imagem como uma imagem baseada em vetor, o que é melhor para a maioria dos aplicativos do Office.
Exportar diagramas de classe como imagens
Para exportar um diagrama de classe que você criou do código em um projeto, salve o diagrama como uma imagem. Se você quiser exportar diagramas de classe UML em vez disso, consulte Exportar diagramas como imagens.
Exportar um diagrama
Abra seu arquivo de diagrama de classe (.cd).
No menu Diagrama de Classe ou no menu de atalho da superfície do diagrama, escolha Exportar Diagrama como Imagem.
Selecione um diagrama.
Selecione o formato que você deseja.
Escolha Exportar para concluir a exportação.
Para atualizar automaticamente as imagens exportadas vinculadas de outros documentos, exporte o diagrama novamente no Visual Studio.
Imprimir diagramas de classe
É possível imprimir um diagrama de classe usando o recurso de impressão do Visual Studio.
Para imprimir um diagrama de classe
Abra o diagrama de classe.
Clique em Imprimir no menu Arquivo.
O diagrama de classe inteiro é impresso. Pode ser necessário ajustar as configurações na caixa de diálogo Configuração de Página para imprimir em um tamanho apropriado.
Adicionar comentários a diagramas de classe
Você pode usar formas de comentário para anotar os diagramas de classe. Uma forma de comentário tem uma propriedade, Texto, na qual você pode digitar texto. Formas de comentário existem apenas na superfície do diagrama, e não no código.
Um comentário reside na exibição de diagrama de classe no Designer de Classe. Se você abrir um segundo diagrama de classe no mesmo projeto, os comentários criados na primeira exibição não ficarão visíveis. Se você excluir um diagrama, todos os comentários que ele continha também serão excluídos.
Você pode redimensionar uma forma de comentário, mas não pode alterar outros aspectos da sua aparência, como o tamanho da fonte, a fonte ou a cor da tela de fundo.
Para adicionar um comentário
Arraste um comentário da Caixa de Ferramentas do Designer de Classe para o diagrama de classe.
Clique na nova forma de comentário no diagrama e digite o texto desejado.
Usar os atalhos de mouse e teclado na janela Diagrama de Classe e Detalhes da Classe
É possível usar o teclado, além do mouse, para executar ações de navegação no Designer de Classe e na janela Detalhes da Classe.
Usar o mouse no Designer de Classe
As seguintes ações do mouse têm suporte em diagramas de classe:
Combinação do mouse | Contexto | Descrição |
---|---|---|
Clicar duas vezes | Elementos de forma | Abre o editor de códigos. |
Clicar duas vezes | Conector de pirulito | Expande/recolhe o pirulito. |
Clicar duas vezes | Rótulo do conector de pirulito | Invoca o comando Mostrar Interface. |
Botão de rolagem do mouse | Diagrama de classe | Rolar verticalmente. |
Shift + botão de rolagem do mouse | Diagrama de classe | Rolar horizontalmente. |
Ctrl + botão de rolagem do mouse | Diagrama de classe | Zoom. |
Ctrl+Shift + clique | Diagrama de classe | Zoom. |
Usar o mouse na janela Detalhes da Classe
Usando um mouse, é possível alterar a aparência da janela Detalhes da Classe e os dados que ela exibe das seguintes maneiras:
Clicar em qualquer célula editável permite editar o conteúdo da célula. As alterações são refletidas em todos os locais em que dados são armazenados ou exibidos, incluindo na janela Propriedades e no código-fonte.
Clicar em qualquer célula de uma linha faz com que a janela Propriedades exiba as propriedades do elemento representado pela linha.
Para alterar a largura de uma coluna, arraste o limite do lado direito do título de coluna até que a coluna tenha a largura desejada.
É possível expandir ou recolher nós de propriedade ou compartimento clicando nos símbolos de direção à esquerda da linha.
A janela Detalhes da Classe oferece vários botões para a criação de novos membros na classe atual e para navegar entre os compartimentos dos membros na grade da janela Detalhes da Classe.
Usar o teclado do Designer de Classe
As seguintes ações do teclado têm suporte em diagramas de classe:
Chave | Contexto | Descrição |
---|---|---|
Teclas de direção | Dentro das formas de tipo | Navegação em estilo de árvore pelo conteúdo da forma (há suporte para o encapsulamento da forma). As teclas esquerda e direita expandem/recolhem o item atual se ele for expansível e navegam até o pai se ele não for (consulte a navegação do modo de exibição em árvore para obter detalhes sobre o comportamento). |
Teclas de direção | Formas de nível superior | Mover formas no diagrama. |
Shift+tecla de direção | Dentro das formas de tipo | Criar uma seleção contínua que consiste em elementos de forma, como membros, tipos aninhados ou compartimentos. Esses atalhos não dão suporte ao encapsulamento. |
Início | Dentro das formas de tipo | Navegue até o título de forma de nível superior. |
Início | Formas de nível superior | Navegue até a primeira forma no diagrama. |
End | Dentro das formas de tipo | Navegue até o último elemento visível dentro da forma. |
End | Formas de nível superior | Navegue até a última forma no diagrama. |
Shift+Home | Dentro da forma de tipo | Seleciona elementos dentro da forma, começando pelo item atual e terminando com o item superior na mesma forma. |
Shift+End | Dentro da forma de tipo | O mesmo que Shift+Home, mas na direção de cima para baixo. |
Enter | Todos os contextos | Invoca a ação padrão na forma, o que também está disponível por meio de um clique duplo. Na maioria dos casos, essa ação é Exibir Código, mas alguns elementos a definem de maneira diferente (pirulitos, cabeçalhos de compartimento, rótulos de pirulito). |
+ e - | Todos os contextos | Se o elemento em foco no momento for expansível, essas chaves expandirão ou recolherão o elemento. |
> | Todos os contextos | Em elementos com filhos, isso expande o elemento se ele estiver recolhido e navega até o primeiro filho. |
< | Todos os contextos | Navega até o elemento pai. |
Alt+Shift+L | Dentro de formas de tipo + em formas de tipo. | Navega até o "pirulito" da forma atualmente selecionada, se estiver presente. |
Alt+Shift+B | Dentro de formas de tipo + em formas de tipo. | Se lista de tipos base for mostrada na forma de tipo e tiver mais de um item, isso alternará o estado de expansão da lista (expandir/recolher). |
Excluir | Em formas de tipo e de comentário | Invoca o comando Remover do Diagrama. |
Excluir | Em todo o resto. | Invoca o comando Excluir do Código (membros, parâmetros, associações, herança, rótulos de pirulito). |
CTRL+Delete | Todos os contextos | Invoca o comando Excluir do Código na seleção. |
Guia | Todos os contextos | Navega até o próximo filho dentro do mesmo pai (dá suporte a encapsulamento). |
Shift+Tab | Todos os contextos | Navega até o filho anterior dentro do mesmo pai (dá suporte a encapsulamento). |
Barra de espaços | Todos os contextos | Alterna a seleção no elemento atual. |
Usar o teclado na janela Detalhes da Classe
Observação
As seguintes associações de teclas reproduzem a experiência de digitar código.
Usar as chaves a seguir para navegar na janela Detalhes da Classe:
Chave | Result |
---|---|
, (vírgula) | Se o cursor estiver em uma linha de parâmetro, digitar uma vírgula move o cursor para o campo Nome do parâmetro seguinte. Se o cursor estiver na última linha de parâmetro de um método, ele moverá o cursor para o campo <adicionar parâmetro>, que você pode usar para criar um novo parâmetro. Se o cursor estiver em outro lugar na janela Detalhes da Classe, digitar uma vírgula adicionará literalmente uma vírgula ao campo atual. |
; (ponto e vírgula) ou ) (parênteses de fechamento) | Mova o cursor para o campo Nome da próxima linha de membro na grade da janela Detalhes da Classe. |
Guia | Move o cursor para o campo seguinte, se movendo primeiro da esquerda para a direita e, depois, de cima para baixo. Se o cursor estiver saindo de um campo no qual você digitou algum texto, a janela Detalhes da Classe processará o texto e o armazenará se ele não produzir um erro. Caso o cursor esteja em um campo vazio como <adicionar parâmetro>, Tab o move para o primeiro campo da linha seguinte. |
Barra de espaços | Move o cursor para o campo seguinte, se movendo primeiro da esquerda para a direita e, depois, de cima para baixo. Se o cursor estiver em um campo vazio como <adicionar parâmetro>, ele será movido para o primeiro campo da linha seguinte. Observe que o <espaço> digitado imediatamente depois de uma vírgula é ignorado. Se o cursor estiver no campo Resumo, digitar um espaço adiciona um caractere de espaço. Se o cursor estiver na coluna Ocultar de uma determinada linha, digitar um espaço alterna o valor da caixa de seleção Ocultar. |
Ctrl+Tab | Mude para outra janela do documento. Por exemplo, mude da janela Detalhes da Classe para um arquivo de código aberto. |
Esc | Se você tiver começado a digitar texto em um campo, pressionar ESC atua como uma tecla de desfazer, revertendo o conteúdo do campo para o valor anterior. Se a janela Detalhes da Classe tiver o foco geral, mas nenhuma célula específica estiver em foco, pressionar ESC removerá o foco da janela Detalhes da Classe. |
Seta para cima e seta para baixo | Essas chaves movem o cursor de uma linha para outra, verticalmente, na grade da janela Detalhes da Classe. |
Seta para a esquerda | Se o cursor estiver na coluna Nome, pressionar a seta para a esquerda recolhe o nó atual da hierarquia (se ele estiver aberto). |
Seta para a direita | Se o cursor estiver na coluna Nome, pressionar a seta para a direita expande o nó atual da hierarquia (se ele estiver recolhido). |
Dica
Para obter uma lista abrangente de atalhos de teclado, confira Atalhos de teclado no Visual Studio.