Menus e comandos para Visual Studio

Uso de comando

Ao contrário do Microsoft Office, que é um conjunto que compreende muitos produtos separados, o Visual Studio contém muitos produtos que cada um contribui com seus conjuntos de comandos para o IDE global do Visual Studio. O IDE gerencia a complexidade de milhares de comandos filtrando a funcionalidade disponível para o usuário com base no contexto.

Quando o contexto de um usuário muda - como alternar de uma janela de design para uma janela de edição de código - a funcionalidade não relacionada ao novo contexto desaparece. Ao mesmo tempo, novas funcionalidades surgem junto com informações dinâmicas relacionadas, como Propriedades e opções da Caixa de Ferramentas. O usuário não deve notar a troca do conjunto de comandos disponível. Se o usuário estiver distraído ou confuso com comandos aparecendo ou desaparecendo, o design da interface do usuário precisará de ajuste. O contexto atual do usuário é sempre indicado de uma ou mais maneiras, como na barra de título do IDE, na janela Propriedades ou na caixa de diálogo Páginas de Propriedades.

As barras de comandos permitem flexibilidade na interface do usuário. As únicas estruturas de comando inerentes ao ambiente do Visual Studio são o menu principal e a barra de comandos principal, que podem ser personalizadas e até mesmo ocultas. Outras barras de comandos aparecem e desaparecem com base no estado do aplicativo. As janelas de ferramentas e os editores de documentos também podem conter barras de ferramentas incorporadas em suas bordas de janela.

Diretrizes básicas

Use comandos, grupos de comandos e menus compartilhados existentes sempre que possível.

Como os comandos são normalmente mostrados com base no contexto, o uso de menus compartilhados e grupos de comandos existentes garante que a estrutura de comandos permaneça relativamente estável entre as alterações no contexto. Reutilizar comandos compartilhados e colocar novos comandos perto de comandos compartilhados relacionados também reduz a complexidade do IDE e cria uma experiência mais amigável. Se um novo comando precisar ser definido, tente colocá-lo em um grupo de comandos compartilhado existente. Se um novo grupo precisar ser definido, coloque-o em um menu compartilhado existente perto de um grupo de comandos relacionado antes de criar um novo menu de nível superior.

Não crie ícones para cada comando.

Pense bem antes de criar um ícone de comando. Os ícones devem ser criados apenas para comandos que:

  • aparecem em uma barra de ferramentas padrão.

  • provavelmente serão adicionados pelos usuários a uma barra de ferramentas por meio da caixa de diálogo Personalizar...

  • ter um ícone associado à mesma ação em outro produto da Microsoft.

Limitar a adição de atalhos de teclado

A grande maioria dos usuários emprega uma pequena fração de todos os atalhos disponíveis. Em caso de dúvida, não vincule seu recurso a um atalho de teclado. Trabalhe com sua equipe de experiência do usuário antes de adicionar novos atalhos.

Dê aos comandos um posicionamento de menu padrão.

Esteja ciente de que seus comandos serão personalizados por outras pessoas e projete-os de acordo. Não existe um comando oculto. Todos os comandos do Visual Studio aparecem na caixa de diálogo Personalizar ferramentas, na janela de comando, no preenchimento automático, na caixa de diálogo Teclado de opções > de ferramentas e no ambiente de ferramentas >> de desenvolvimento (DTE). Certifique-se de dar aos comandos um nome e uma dica de ferramenta no arquivo .ctc para que os usuários possam encontrá-los facilmente.

Não duplique comandos compartilhados em uma barra de ferramentas incorporada.

É útil colocar comandos próximos à área de foco do usuário. Uma maneira de fazer isso é criar uma barra de ferramentas incorporada na parte superior da janela de ferramentas ou do editor de documentos. Os comandos colocados na barra de ferramentas devem ser específicos para a área de conteúdo dentro da janela. Não duplique comandos compartilhados nessas barras de ferramentas. Por exemplo, nunca coloque um ícone "Salvar" em uma barra de ferramentas incorporada.

Visibilidade de conteúdo e comando

Os comandos existem nos seguintes escopos: Ambiente, Hierarquia e Documento. Conheça cada escopo para ter confiança na colocação do comando.

Os comandos no escopo Ambiente estabelecem o contexto primário e são compartilhados entre vários contextos. Eles alteram a visibilidade ou a disposição de documentos e janelas de ferramentas. Entre os comandos no escopo do ambiente estão Novo Projeto, Conectar ao Servidor, Anexar Processo, Recortar, Copiar, Colar, Localizar, Opções, Personalizar, Nova Janela e Exibir Ajuda.

Os comandos no escopo Hierarquia gerenciam hierarquias no Visual Studio, incluindo Projeto, Equipe e Dados. Eles se relacionam ao subcontexto de um projeto - por exemplo, Depurar, Compilar, Testar, Arquitetura ou Analisar. Entre os comandos no escopo da Hierarquia estão Adicionar Novo Item, Nova Consulta, Configurações do Projeto, Adicionar Nova Fonte de Dados, Assistente para Iniciar Desempenho e Novo Diagrama.

Os comandos no escopo do documento atuam no conteúdo de um documento , como código, design ou uma consulta de item de trabalho (WIQ). Eles também atuam na visualização de uma janela de ferramenta ou são específicos dessa janela de ferramentas. Os comandos de escopo do documento também atuam nos objetos de arquivo que são específicos da hierarquia, como Remover do Project. Entre os comandos no escopo do documento estão Refatorar>, Renomear, Criar Cópia do Item de Trabalho, Expandir Tudo, Recolher Tudo e Criar Tarefa do Usuário.

Decisões de posicionamento de comando

Depois de decidir criar um comando, você precisará determinar seu posicionamento apropriado e se deseja criar um atalho de teclado. Siga este caminho de decisão para estabelecer onde colocar o comando:

Command placement decision chart

Caminho de decisão para posicionamento de comando no Visual Studio

Posicionamento de comandos em menus

A barra de menus principal deve ser o local padrão para comandos de quaisquer pacotes de menu específicos do contexto que contribuam para a interface do usuário. A barra de menus principal difere de outras estruturas de comando porque o ambiente a usa para controlar quais comandos estão visíveis. Todas as outras barras de comandos simplesmente desativam comandos que estão fora de contexto, sejam eles colocados em um menu ou em uma barra de ferramentas.

O ambiente define um conjunto de comandos incorporados à barra de menus principal que são comuns em todo o IDE e em vários domínios de tarefas. Esses comandos são sempre visíveis, independentemente de quais VSPackages são carregados no ambiente. Embora os VSPackages possam estender esse conjunto de comandos, o conjunto de comandos de cada produto e o posicionamento de seus comandos são de responsabilidade de cada equipe.

A estrutura do menu principal do Visual Studio pode ser dividida nas seguintes categorias de menu:

Menus principais
  • Arquivo

  • Edição

  • Exibir

  • Ferramentas

  • Janela

  • Ajuda

Menus específicos do projeto
  • Projeto

  • Build

  • Depurar

Menus específicos do contexto
  • Team

  • Dados

  • Teste

  • Arquitetura

  • Analisar

Menus específicos do documento
  • Formatar

  • Tabela

Ao criar menus principais, siga estas regras:
  • Não exceda 25 itens de nível superior em um determinado contexto

  • Os menus nunca devem exceder 600 pixels de altura.

  • Avalie um menu principal em vários contextos, como no SKU Ultimate e no Perfil Geral.

  • Os menus suspensos são aceitáveis.

  • Os menus suspensos devem conter pelo menos três itens e no máximo sete.

  • Os menus suspensos devem ter apenas um nível de profundidade - alguns itens de menu do Visual Studio têm submenus em cascata, mas esse padrão não é encorajado.

  • Use no máximo seis separadores. Os agrupamentos devem seguir a seguinte ilustração:

    Guidelines for main menu grouping

  • Embora não seja necessário ter cada agrupamento na figura, a adição de agrupamentos adicionais é restrita.

  • Cada agrupamento deve ter de dois a sete itens de menu.

Antes de adicionar um novo item de nível superior, considere colocar o comando em um menu de nível superior existente. Ao adicionar um novo menu de nível superior, certifique-se de colocá-lo no local correto. Decida se o menu é específico para projeto, contexto ou documento. Mantenha o nome do menu de nível superior conciso e use apenas uma palavra.

Os menus principais devem reservar o restante dos comandos. Arquivo, Editar e Exibir devem estar sempre à esquerda e Ferramentas, Janela e Ajuda devem estar sempre à direita.

Menus de contexto

Colocar muita funcionalidade nos menus de contexto resulta em uma interface difícil de aprender. Todas as principais funcionalidades devem estar disponíveis através da barra de menu principal. O posicionamento dos comandos deve ser reconciliado com os comandos existentes para evitar comandos duplicados. Para menus de contexto, o shell define grupos de menus padrão que devem ser incluídos, dependendo se o menu de contexto é para a solução, um nó de projeto ou um item de projeto.

Ao criar menus de contexto, siga as mesmas regras do menu principal e, além disso:

  • Não exceda 25 itens de menu de nível superior.

  • Os menus de submenu são aceitáveis, mas não devem exceder um nível de profundidade - nunca use submenus em cascata.

  • Use no máximo seis separadores.

Posicionamento de comandos em barras de ferramentas

Barras de ferramentas gerais

Ao projetar e organizar barras de ferramentas, siga estes padrões:

  • Não use mais de um verbo por botão. Um botão = uma ação.

  • Use o texto ao lado do ícone somente se ele precisar ser reforçado com o rótulo.

  • Use uma caixa de combinação exclusivamente para propriedades que serão alternadas várias vezes em uma sessão. Caso contrário, exponha a propriedade em outro lugar.

  • A largura de uma caixa de combinação deve ser igual à largura do item mais longo dentro da caixa + 30%. Por exemplo, se o item mais longo tiver 200 pixels, a caixa de combinação deve ter 260 pixels de largura.

  • Limite o uso de separadores. O uso de um separador ao lado de um dropdown é um antipadrão, porque a própria forma do dropdown atua como um separador visual.

  • Os grupos de ícones devem conter de três a seis ícones.

  • Se os qualificadores resultarem em vários comandos úteis, use um botão de divisão que armazene a última configuração:

    Split buttons in Visual Studio

    Exemplo de um botão de divisão. Os seis comandos à esquerda podem caber em um único botão.

Barras de ferramentas específicas do produto

Cada produto pode fornecer uma barra de ferramentas padrão que contém comandos usados com frequência e importantes, e a barra de ferramentas padrão de cada produto deve aparecer na primeira vez que o Visual Studio é iniciado após a instalação do produto.

Os produtos também devem aproveitar grupos de comandos compartilhados e menus fornecidos pelo IDE. Cada grupo de comandos compartilhados é colocado em um menu compartilhado destinado a organizar comandos relacionados de forma significativa para o usuário. É importante aproveitar essa estrutura de comando compartilhada para reduzir a complexidade.

Barras de ferramentas globais

As barras de ferramentas globais são necessárias para caber em uma linha logo de saída. Ao criar uma nova barra de ferramentas global, siga as diretrizes para esse tipo de barra de ferramentas.

Diretrizes gerais da barra de ferramentas:

  • Cada barra de ferramentas tem 24 pixels em controles comuns (pinça, estouro).

  • Cada botão da barra de ferramentas tem 22 pixels de largura, incluindo preenchimento. Tornar o ícone um botão de divisão adiciona mais 11 pixels de largura.

  • A duplicação de comandos entre barras de ferramentas é permitida.

    As barras de ferramentas específicas do documento aparecem quando um determinado tipo de arquivo está ativo e desaparecem quando um tipo de arquivo diferente se torna ativo.

  • As barras de ferramentas específicas do documento não podem ter mais de 12 botões.

  • A largura total da barra de ferramentas não pode exceder 300 pixels.

  • Cada tipo de arquivo pode ter uma barra de ferramentas incorporada ou uma barra de ferramentas global específica do documento, mas não ambas.

    As barras de ferramentas específicas do contexto aparecem quando um determinado contexto é definido e tendem a permanecer ativas por longos períodos.

  • O limite de botões para todas as barras de ferramentas específicas do contexto é 18.

  • Se a maioria dos usuários não empregar consistentemente os comandos dessa barra de ferramentas quando o contexto estiver ativo, não associe essa barra de ferramentas a um contexto.

  • Certifique-se de que a barra de ferramentas desapareça ao sair do contexto. Nenhuma dessas barras de ferramentas deve aparecer na inicialização.

    Barras de ferramentas sem contexto nunca aparecem automaticamente. Eles são exibidos somente quando o usuário os ativa. Mantenha a largura máxima abaixo de 200 pixels.

Organização geral e grupos definidos pelo shell

Use comandos, grupos de comandos e menus compartilhados existentes. Se um novo comando precisar ser definido, tente colocá-lo em um grupo de comandos compartilhado existente. Se um novo grupo precisar ser definido, tente colocá-lo em um menu compartilhado existente perto de um grupo de comandos relacionado antes de criar um novo menu de nível superior. Isso reduz a complexidade do comando e, ao mesmo tempo, garante o posicionamento consistente do comando no IDE.

O menu Formatar compartilhado, normalmente mostrado no contexto de janelas de documento no estilo designer, é ilustrado na imagem a seguir:

Visual Studio Format menu with callouts

Grupos de menus no Visual Studio

Reduzindo e reutilizando comandos

Os comandos são normalmente mostrados com base no contexto, a fim de reduzir o número de comandos que o usuário vê a qualquer momento. No entanto, você também deve reutilizar menus compartilhados e grupos de comandos existentes para garantir que a estrutura de comandos permaneça relativamente estável entre as alterações no contexto.

Reutilizar comandos compartilhados e colocar novos comandos perto de comandos compartilhados relacionados reduz a complexidade do IDE e cria uma experiência mais amigável.

Comandos de nomeação

Convenções de nomenclatura

A nomeação consistente de comandos é fundamental para que os usuários possam localizar e executar comandos, usando a linha de comando ou vinculando a um atalho de teclado. Os nomes de comando também ajudam o usuário a entender para que serve um comando quando ele é exibido em uma barra de ferramentas ou em um menu em cascata ou de contexto.

Ao nomear comandos:

  • Construa texto para que ele seja facilmente localizável. Para obter mais informações sobre como localizar texto, consulte Práticas recomendadas de localização.

  • Seja conciso. Os comandos não devem usar mais de três palavras.

  • Use maiúsculas e minúsculas: a primeira letra de cada palavra deve ser maiúscula. Para obter mais informações sobre formatação de texto no Visual Studio, consulte Estilo de texto.

  • Leve em consideração onde o comando será colocado. Está em um menu de nível superior ou em um submenu? Por exemplo, ao agrupar comandos de alinhamento em um submenu, o comando de nível superior deve ser "Alinhar" e os comandos de submenu devem ser "Esquerda", "Direita", "Centro", "Justificar" e assim por diante. Seria redundante nomear os comandos do submenu como "Alinhar à esquerda" ou "Alinhar à direita".

    Visual Studio Format menu

Usando ícones com comandos

Seja parcimonioso no uso de emparelhamento de ícones com comandos. Embora associar uma imagem exclusiva a um comando acelere a capacidade do usuário de identificar esse comando, a desordem visual e a ineficiência ocorrem com o uso excessivo da imagem. As regras a seguir ajudam na hora de decidir se um ícone de comando deve ser criado.

Use um ícone com um comando somente se:

  • O mesmo comando tem um ícone associado a ele em outro produto proeminente da Microsoft, como um dos aplicativos do Microsoft Office.

  • O comando será colocado em uma barra de ferramentas padrão.

  • O comando é um comando especial que os usuários provavelmente adicionarão a uma barra de ferramentas usando a caixa de diálogo "Personalizar... ".

Teclas de acesso e de atalho

Existem dois tipos de atribuições de teclas de teclado:

  • As teclas de acesso (também conhecidas como aceleradores) permitem o acesso do teclado por meio dos menus de comando e para cada rótulo na interface do usuário da caixa de diálogo. As teclas de acesso são principalmente para fins de acessibilidade, são atribuídas a todos os menus e à maioria dos controles de caixa de diálogo, não devem ser memorizadas, afetam apenas a janela atual e são localizadas.

  • As teclas de atalho usam principalmente sequências de teclas Control (Ctrl) e Function (Fn). Eles são projetados mais para usuários avançados e ajudam na produtividade. Eles são atribuídos apenas aos comandos mais usados e permitem acesso rápido enquanto ignoram o menu principal. As teclas de atalho devem ser memorizadas e, por essa razão, devem ser atribuídas de acordo com o esquema de perfil. Os esquemas de teclas de atalho podem variar de perfil para perfil. Um usuário pode personalizar as teclas de atalho através do teclado de opções > de ferramentas>.

Atribuição de chaves de acesso

As teclas de acesso consistem em Alt mais chave(s) alfanumérica(s). Atribua uma chave de acesso a cada item de menu, sem exceção. Siga o Windows e as convenções comuns para atribuir chaves de acesso. por exemplo, a chave de acesso para Arquivo Novo deve ser sempre Alt, F, N.>

Não use letras de largura de pixel único, como 'i' (em maiúsculas ou minúsculas) ou 'l' minúsculo, e evite usar caracteres com descendentes (g, j, p, q e y), pois eles são difíceis de distinguir.

Evite usar chaves duplicadas quando possível. Nos casos em que a duplicação é inevitável, o sistema de menus lida com conflitos alternando todos os comandos que usam a tecla. Como exemplo, para um comando hipotético "Número" no menu Arquivo que duplica a tecla de acesso "N", Alt, F, N criaria um novo arquivo e Alt, F, N, N executaria o comando "Número".

Atribuindo teclas de atalho

Evite atribuir novas teclas de atalho, porque elas não são necessárias para cada comando e tributar o sistema (e a memória do usuário) se usadas em excesso. Os dados do Programa de Aperfeiçoamento da Experiência do Usuário (CEIP) indicam que os usuários do Visual Studio usam apenas um pequeno subconjunto dos atalhos integrados.

Ao definir atalhos, siga estas regras:

  • Use as sequências de teclas Control (Ctrl) e Function (Fn).

  • Preservar atalhos usados com frequência. Mantenha os atalhos mais populares.

  • Torne os atalhos do editor fáceis de digitar. Vincule atalhos fáceis de digitar aos comandos de que os desenvolvedores mais precisam ao escrever código. Por exemplo, Edit.InvokeSmartTag precisa ter uma tecla de atalho rápida como Ctrl+/ e não Alt+Shift+F10.

  • Esforce-se por atalhos temáticos consistentes.

  • Siga as diretrizes do Windows para determinar quais chaves modificadoras empregar. Use combinações de teclas Ctrl para comandos que tenham efeitos em grande escala, como comandos que se aplicam a um documento inteiro. Use combinações de teclas Shift para comandos que estendem ou complementam as ações da tecla de atalho padrão. Não use combinações Ctrl+Alt.

  • Remova atalhos estranhos. Se você tiver um recurso herdado, considere remover atalhos usados com infrequência extrema (menos de 10 vezes dos dados do Programa de Aperfeiçoamento da Experiência do Usuário) ou infrequência moderada (menos de 100 vezes dos dados do Programa de Aperfeiçoamento da Experiência do Usuário) se uma chave de acesso fornecer acesso rápido ao mesmo comando. Por exemplo: Alt, H, C abrirá Ajuda/Conteúdo.

    Não há uma maneira simples de verificar a disponibilidade de atalhos. Se pretender adicionar um atalho, siga estes passos:

  1. Verifique a lista de atalhos do Visual Studio 2013 para determinar se há comandos semelhantes para agrupar o seu.

  2. Vá para Ferramentas > Opções > Ambiente > Teclado e teste seu atalho. Verifique cada esquema de mapeamento de teclado listado em "Aplicar o seguinte esquema de mapeamento de teclado adicional". Verifique os perfis Geral, C#, VB e C++, pois eles compartilham atalhos exclusivos. Seu atalho estará disponível se não estiver mapeado em nenhum desses lugares.