Modelo de ambiente de desenvolvimento de Visual Studio
O Visual Studio o ambiente de desenvolvimento integrado (IDE) é uma estrutura para hospedagem VSPackages e facilitando a troca de serviços compartilhados. Um exemplo disso é a maneira que o IDE implementa a interface de usuário (UI). O IDE fornece a janela de contêiner e as barras de ferramentas padrão e os menus. Ele também fornece uma infra-estrutura COM rica que torna a interface do usuário programável. O esquema de roteamento e manipulação de comando completo fornece aos usuários uma estrutura aberta que oferece acesso fácil a ambos os existentes e instaladas de conjuntos de comandos.
Arquitetura de extensibilidade
A ilustração a seguir mostra a Visual Studio arquitetura de extensibilidade. Observe que o conceito de um aplicativo de software está ausente. Em vez disso, os componentes de software de hosts do IDE, chamado VSPackages, que fornecem a funcionalidade do aplicativo. Essa funcionalidade, por sua vez, é compartilhada entre o IDE como serviços. Os VSPackages oferecem serviços que usam a eles e outros VSPackages. O padrão IDE também oferece uma ampla gama de serviços, tais como SVsUIShell, que fornecem acesso à funcionalidade de janelas do IDE.
Visão generalizada da arquitetura Visual Studio
Observe que a relação entre os VSPackages e serviços é bidirecional. Embora VSPackages utilizar serviços oferecidos por outras pessoas, elas também podem oferecer serviços de seus próprios por usar o IProfferService interface. Essa arquitetura baseada em serviços foi desenvolvido a partir da implementação do Microsoft ActiveX Designer, no qual um serviço é um grupo de interfaces relacionadas que executam uma tarefa. A partir de um ponto de vista COM estrito, todas as interfaces de um serviço devem ser implementadas em uma única classe COM.
O padrão IDE oferece serviços importantes, como SVsShell, SVsUIShell, e SVsSolution, que são usados por VSPackages. A tabela a seguir lista e descreve alguns desses serviços. Para obter mais informações, consulte Serviços.
Serviço IDE |
Descrição |
---|---|
Fornece acesso ao IDE serviços lidar com funcionalidade básica, VSPackages e registro. |
|
Fornece windowing básica e funcionalidade relacionados à interface do usuário no IDE, como a capacidade para criar ferramentas e janelas de documento. |
|
Fornece a funcionalidade básica de solução relacionados, como, por exemplo, a capacidade de enumerar os projetos, criar novos projetos e monitorar as alterações do projeto. |
Por causa de sua total integração por meio da interação de serviços compartilhados, o Visual Studio IDE e VSPackages são intimamente interdependentes. No entanto, apesar de sua interação fechar terão responsabilidades diferentes.
O Visual Studio IDE é responsável para as seguintes tarefas:
Fornecendo serviços essenciais para uso por VSPackages externos.
Fornecendo uma interface programável que permite a participação com elementos de interface do usuário padrão.
Criação de instâncias de VSPackages conforme exigido por ações do usuário ou por outros serviços do solicitantes VSPackages.
Fornecendo serviços que tornam possível para a comunicação e coordenação entre os VSPackages.
Gerenciando soluções e os arquivos necessários.
Fornecendo gerenciamento de janelas.
Fornecimento de roteamento de comandos e barras de comandos, como, por exemplo, menus, barras de ferramentas e menus de contexto.
Coordenação de seleção, contexto e moeda.
Os VSPackages são responsáveis pelas seguintes tarefas:
Execução de determinadas rotinas de inicialização e encerramento.
Gravar as informações no registro, o que o IDE usa para carregar os VSPackages apropriados horários adequados.
Oferecendo os serviços que são necessários para se comunicar com outros VSPackages.
Fornecendo implementações de novos tipos de projeto, editores e designers.
Fornecendo extensões para elementos internos da interface do usuário, como, por exemplo, itens de tarefas, itens de caixa de ferramentas e a caixa de diálogo Opções.