Arquitetura de personalizações em nível de documento
Visual Studio 2010inclui projetos para criar personalizações em nível de documento para Microsoft Office o Word e Excel de Microsoft Office. Este tópico descreve os seguintes aspectos de personalizações em nível de documento:
Personalizações de compreensão
Componentes de personalizações
Como as personalizações funcionam com aplicativos de Microsoft Office
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para os seguintes aplicativos: Excel 2007 e Excel 2010; Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Para obter informações gerais sobre como criar personalizações em nível de documento, consulte Visão geral de desenvolvimento de soluções do Office, Introdução a personalizações de programação em nível de documento do Word, e Introdução a personalizações de programação em nível de documento do Excel.
Noções básicas sobre personalizações
Quando você usa as ferramentas de desenvolvedor do Office em Visual Studio para criar uma personalização em nível de documento, você pode criar um assembly de código gerenciado que está associado um documento específico. Um documento ou pasta de trabalho com um assembly vinculado é considerada têm extensões de código gerenciado. For more information, see Assemblies na visão geral das soluções do Office.
Quando um usuário abre o documento, o assembly é carregado pelo aplicativo de Microsoft Office. Depois que o assembly foi carregado, a personalização pode responder a eventos, enquanto o documento está aberto. A personalização também pode chamar o modelo de objeto para automatizar e estender o aplicativo enquanto o documento está aberto, e ele pode usar qualquer uma das classes na .NET Framework.
O assembly se comunica com componentes COM, do aplicativo por meio do assembly de interoperabilidade primária do aplicativo. For more information, see Assemblies de interoperabilidade primária do Office and Visão geral de desenvolvimento de soluções do Office.
Se um usuário abre várias personalizações em nível de documento ao mesmo tempo, cada assembly foi carregado em um domínio de aplicativo diferente. Isso significa que uma solução que se comporta incorretamente não pode causar a outras soluções de falhar. Personalizações em nível de documento são projetadas para trabalhar com um único documento em um domínio único aplicativo. Eles não são projetados para comunicação de documentos cruzados. Para obter mais informações sobre domínios de aplicativo, consulte Domínios de Aplicativo.
Observação |
---|
Personalizações em nível de documento que você criar usando as ferramentas de desenvolvedor do Office em Visual Studio são projetadas para ser usado somente quando o aplicativo é iniciado por um usuário final. Se o aplicativo for iniciado por meio de programação (por exemplo, usando automação), a personalização pode não funcionar como esperado. |
Tempo de design e experiências de tempo de execução
Compreender a arquitetura de personalizações em nível de documento, ele ajuda a entender as experiências de criação de uma solução e da execução de uma solução.
Design Time
A experiência de tempo de design inclui as seguintes etapas:
O desenvolvedor cria um projeto de nível de documento em Visual Studio. O projeto inclui o documento e o assembly que é executado por trás do documento. O documento talvez já exista (talvez criado por um designer) ou pode ser criado um novo documento junto com o projeto.
O criador de um (o desenvolvedor que cria o projeto) ou alguém cria a aparência final do documento para o usuário final.
Run Time
A experiência de tempo de execução inclui as seguintes etapas:
O usuário final abre um documento ou pasta de trabalho que possui extensões de código gerenciado.
O documento ou pasta de trabalho carrega o assembly compilado.
O assembly responde a eventos, como o usuário trabalha no documento ou pasta de trabalho.
Desenvolvedor e a perspectiva do usuário final comparados
Como o desenvolvedor trabalha principalmente em Visual Studioe o usuário final funciona no Word ou Excel, há duas maneiras de compreender as personalizações em nível de documento.
Perspectiva do desenvolvedor |
Ponto de vista do usuário final |
---|---|
Usando Visual Studio, o desenvolvedor grava o código que é acessível para o Word e Excel. Embora possa parecer que o desenvolvedor está criando um arquivo executável que executa o Word ou Excel, o processo realmente funciona versa. O documento está associado um assembly e contém um ponteiro para o assembly. Quando o documento for aberto, o Word ou Excel localiza o assembly e executa o código em resposta a todos os eventos manipuladas. |
Aqueles que usam a solução simplesmente abrir o documento ou pasta de trabalho (ou crie um novo documento a partir de um modelo) exatamente como eles abriria qualquer outro arquivo de Microsoft Office. O assembly fornece personalizações no documento ou pasta de trabalho como, por exemplo, preenchendo automaticamente com os dados atuais ou mostrando uma caixa de diálogo para solicitar informações. |
Suporte a formatos de documento para personalizações em nível de documento
Quando você cria um projeto de personalização, você pode escolher o formato do documento que você deseja usar no projeto. For more information, see Como: Criar projetos do Office em Visual Studio.
A tabela a seguir lista os formatos de documento que você pode usar em personalizações em nível de documento para o Excel e Word.
Excel |
Word |
---|---|
Pasta de trabalho do Excel (. xlsx) Pasta de trabalho habilitado para macro (. xlsm) do Excel Pasta de trabalho binária do Excel (. xlsb) Pasta de trabalho do Excel 97-2003 (. xls) Modelo do Excel (. xltx) Modelo habilitado para macro do Excel (. xltm) Modelo do Excel 97-2003 (. xlt) |
Documento do Word (. docx) Documento habilitado para macro do Word (. docm) Documento do Word 97-2003 (. doc) Modelo do Word (. dotx) Modelo habilitado para macro do Word (. dotm) Modelo do Word 97-2003 (. dot) |
Você deve projetar as extensões de código gerenciado apenas para documentos em formatos com suporte. Caso contrário, determinados eventos não pode ser gerados quando o documento for aberto no aplicativo. Por exemplo, o Open evento não é gerado quando você usa extensões de código gerenciado com pastas de trabalho salvas no formato de planilha XML do Excel ou na página da Web (. htm; formato. HTML).
Suporte a extensões de nome de arquivo para documentos do Word. XML
Os modelos de projeto de nível de documento não permitem a criação de projetos com base nos seguintes formatos de arquivo:
Documento XML do Word (* xml).
Documento XML do Word 2003 (* xml).
Se desejar que os usuários finais para usar personalizações nos seguintes formatos de arquivo, construir e implantar uma personalização que usa um dos formatos de arquivo com suporte especificados na tabela acima. Depois de instalar a personalização, os usuários finais pode salvar o documento no documento XML do Word (* xml) formato ou o documento XML do Word 2003 (* xml) formato e a personalização continuarão a funcionar como esperado.
Componentes de personalizações
Os principais componentes de uma personalização são o documento e o assembly. Além desses componentes, há várias outras partes desempenham um papel importante em como os aplicativos de Microsoft Office de descubram e carregue as personalizações.
O manifesto de implantação e o manifesto de aplicativo
Personalizações usam manifestos de implantação e manifestos de aplicativo para identificar e carregar a versão mais atual do assembly de personalização. O manifesto de implantação aponta para o manifesto do aplicativo atual. O aplicativo manifesto aponta para o assembly de personalização e especifica a entrada ponto classe (ou classes) para executar no assembly. For more information, see Manifestos de aplicativo e implantação em soluções do Office.
Visual Studio Tools for Office Runtime
Para executar personalizações em nível de documento que são criadas usando as ferramentas de desenvolvedor do Office em Visual Studio, os computadores de usuário final devem ter o Visual Studio Tools for Office runtime instalado. O Visual Studio Tools for Office runtime inclui componentes não gerenciados que carregar o assembly de personalização e também um conjunto de módulos (assemblies) gerenciados. Esses assemblies gerenciados fornecem o modelo de objeto que usa o seu código de personalização para automatizar e estender o aplicativo host.
For more information, see Visual Studio Tools for Office visão geral sobre o tempo de execução.
Como as personalizações funcionam com aplicativos de Microsoft Office
Quando um usuário abre um documento que faz parte de uma personalização de Microsoft Office, o aplicativo usa o manifesto de implantação está vinculado ao documento para localizar e carregar a versão mais atual do assembly de personalização. O local do manifesto da implantação é armazenado em uma propriedade de documento personalizada chamada _AssemblyLocation. A seqüência de caracteres que identifica este local é inserida na propriedade ao construir a solução.
Os pontos de manifesto de implantação para o manifesto do aplicativo, em seguida, aponta para o conjunto mais recente. For more information, see Manifestos de aplicativo e implantação em soluções do Office.
A ilustração a seguir mostra a arquitetura básica de uma personalização em nível de documento.
Arquitetura de personalização
Observação |
---|
Em soluções do Office que visam a .NET Framework 4, soluções de chamam o modelo de objeto do aplicativo host, usando as informações de tipo PIA são incorporadas ao assembly de solução, em vez de chamar o PIA diretamente. Para obter mais informações, consulte Projetando e criando soluções do Office. |
Processo de carregamento
Quando um usuário abre um documento que é parte de uma solução de Microsoft Office, ocorrem as seguintes etapas:
O aplicativo Microsoft Office verifica as propriedades de documento personalizado para ver se existem extensões de código gerenciado, associadas ao documento. For more information, see Visão geral sobre propriedades de documento personalizado.
Se não houver extensões de código gerenciado, o aplicativo carrega VSTOEE.dll, que carrega o VSTOLoader.dll. Estes são não-gerenciados DLLs que são os componentes de carregador para o Visual Studio 2010 Tools for Office Runtime. For more information, see Visual Studio Tools for Office visão geral sobre o tempo de execução.
Carrega de VSTOLoader.dll a .NET Framework e inicia a parte gerenciada do Visual Studio Tools for Office runtime.
Se o documento for aberto a partir de um local diferente do computador local, o Visual Studio Tools for Office runtime verifica que o local do documento é a Locais confiáveis Listar no Configurações da Central de confiabilidade para aquele aplicativo específico do Office. Se o local do documento não estiver em um local confiável, a personalização não é confiável e o processo de carga pára aqui.
O Visual Studio Tools for Office runtime instala a solução se ainda não foi instalado, os manifestos de aplicativo e implantação mais recentes, faz o download e executa uma série de verificações de segurança. For more information, see Protegendo as soluções do Office.
Se a personalização é confiável para executar, o Visual Studio Tools for Office runtime usa o manifesto de implantação e o manifesto do aplicativo para verificar se há atualizações do assembly. Se uma nova versão do assembly estiver disponível, o runtime downloads a nova versão do assembly para o ClickOnce cache no computador cliente. For more information, see Implantar soluções do Office.
O Visual Studio Tools for Office runtime cria um novo domínio de aplicativo no qual carregar o assembly de personalização.
O Visual Studio Tools for Office runtime carrega o assembly de personalização para o domínio de aplicativo.
O Visual Studio Tools for Office runtime chamadas de Startup o manipulador de eventos em seu assembly de personalização. For more information, see Eventos em projetos do Office.
Consulte também
Conceitos
Arquitetura dos suplementos de nível de aplicativo
Visual Studio Tools for Office visão geral sobre o tempo de execução
Visão geral sobre propriedades de documento personalizado
Dados armazenados em cache no nível do documento personalizações
Outros recursos
Arquitetura de soluções do Office em Visual Studio