Elementos de um modelo de projeto

As interfaces e implementações de todos os projetos no Visual Studio compartilham uma estrutura básica: o modelo de projeto para o tipo de projeto. No modelo de projeto, que é o VSPackage que você está desenvolvendo, você cria objetos que estão em conformidade com suas decisões de design e trabalha em conjunto com a funcionalidade global fornecida pelo IDE. Embora você controle como um item de projeto é persistido, por exemplo, você não controla a notificação de que um arquivo deve ser persistente. Quando um usuário coloca o foco em um item de projeto aberto e escolhe Salvar no menu Arquivo na barra de menus, o código do tipo de projeto deve interceptar o comando do IDE, persistir o arquivo e enviar a notificação de volta para o IDE de que o arquivo Visual Studio não foi mais alterado.

O VSPackage interage com o IDE por meio de serviços que fornecem acesso às interfaces do IDE. Por exemplo, por meio de serviços específicos, você monitora e roteia comandos e fornece informações de contexto para seleções feitas no projeto. Toda a funcionalidade de IDE global necessária para o VSPackage é fornecida pelos serviços. Para obter mais informações sobre serviços, consulte Como obter um serviço.

Outras considerações de implementação:

  • Um único modelo de projeto pode conter mais de um tipo de projeto.

  • Project tipos e as fábricas de projetos de funcionários são registrados independentemente com GUIDs.

  • Cada projeto deve ter um arquivo de modelo ou um assistente para inicializar o novo arquivo de projeto quando um usuário cria um novo projeto por meio da Visual Studio interface do usuário. Por exemplo, os Visual C++ modelos inicializam o que eventualmente se torna arquivos .vcproj.

    A ilustração a seguir mostra as principais interfaces, serviços e objetos que compõem uma implementação de projeto típica. Você pode usar o auxiliar de aplicativo, HierUtil7 , para criar os objetos subjacentes e outros clichês de programação. Para obter mais informações sobre o auxiliar de aplicativo, consulte Usar classes de projeto HierUtil7 HierUtil7 para implementar um tipo de projeto (C++).

    Visual Studio modelo de projeto gráfico Project modelo

    Para obter mais informações sobre as interfaces e serviços listados no diagrama anterior e outras interfaces opcionais não incluídas no diagrama, consulte Project componentes principais do modelo.

    Os projetos podem dar suporte a comandos e, portanto, devem implementar a interface para participar do roteamento de comandos por meio IOleCommandTarget dos GUIDs de contexto de comando.

Confira também