VSTO - Visual Studio for the Microsoft Office System - Visão geral

Renato Haddad

O Office é um dos pacotes mais utilizados em todo mundo como aplicativo de front-end. Seja através da suite básica (Word, Excel, Access, Outlook e Power Point) ou através da implementação de programação com o VBA - Visual Basic for Applications - para customizar algumas tarefas, é indiscutível a facilidade de uso em todos os aspectos. Isso tornou o Office um sucesso marcante na vida deste produto.

Quando a plataforma .NET entrou no mercado em julho de 2001, muitas especulações foram levantadas quanto ao sucesso desta plataforma, e hoje, vimos que todos os comentários se transformaram em sucesso. Não estou falando apenas de uma certa linguagem, e sim, de uma platafoma de desenvolvimento que aceita mais de 36 linguagens no mesmo ambiente de desenvolvimento e o produto final será um EXE ou uma DLL. Mas, o que chama a atenção deste ambiente é a integração de dados, facilidade de uso, implementação, enfim, você pode encontrar diversos artigos escritos sobre as vantagens do .NET.

Agora, que tal unir todo o poder da plataforma .NET com a facilidade de uso do Office? É exatamente isso que o VSTO tem como finalidade. Você consegue desenvolver aplicações para o Office usando o Visual Studio .NET 2003 como ferramenta e as linguagens Visual Basic .NET ou Visual C#. Isso proporcionará ao desenvolvedor criar qualquer tipo de aplicação, seja em camadas, seja com Web Services, usando diferentes linguagens, enfim, todos os recursos que o .NET oferece como plataforma e o Office como Interface.

Atualmente os desenvolvedores de soluções Office programam em macros ou VBA. No VSTO, o uso de macros ou do VBA não é possível, pois você precisará usar uma linguagem que o .NET suporta, ou seja VB.NET ou C#. No entanto, temos uma séria questão: Todos os desenvolvedores Office conhecem profundamente os objetos do Office; por outro lado, os desenvolvedores .NET conhecem profundamente a estrutura das linguagens .NET. Então, como unir as duas necessidades?

Vamos direto ao assunto: quem quiser programar para o Office com o VSTO terá que conhecer os objetos do Office, por exemplo, no Excel o que é um workbook, worksheet, células, regiões, gráficos, etc. Isso porque quando você inicia um projeto no VSTO com o Excel, por exemplo, os objetos do Excel serão disponibilizados dentro do VSTO. E, para manipular qualquer objeto você terá que conhecê-lo para atribuir dados, fórmulas, enfim, invocar os métodos e propriedades do respectivo objeto.

Já o contrário, os desenvolvedores Office que quiserem programar no VSTO terão que aprender todo o ambiente .NET e uma linguagem (VB.NET ou C#). Já adianto que o VB.NET não é uma evolução do VB6, é uma linguagem completamente nova, criada a partir do zero, contendo todos os recursos possíveis da plataforma .NET. Você deve estar questionando: mas eu já programo em VBA, e agora, como é que fica com o VSTO? A resposta é simples: terá que estudar muito a plataforma .NET para desenvolver as aplicações. O mesmo vale para o inverso, ou seja, todos os programadores VB.NET ou C# terão que aprender os objetos do Office, não a linguagem VBA. Particularmente, acho esta última mais fácil.

E o VBA, morreu? Claro que não, nenhuma linguagem tão famosa e funcional é excluída de uma hora para outra. Existem milhares de aplicações em VBA que continuarão rodando, mas o futuro do VBA dependerá do tipo de aplicação a ser desenvolvida.

Já adianto que é possível, porém não indicado programar parte em VBA e parte no VB.NET, mesmo porque são completamente diferentes, desde os recursos até a facilidade de integrar dados nas aplicações.

Acompanhe este raciocínio para elucidar as vantagens do VSTO: imagine que você tenha uma planilha que está atrelada ao banco de dados de estoque de produtos da sua empresa; já no Word, existem diversos documentos contendo a lista de produtos em um determinado pedido de compra; quem aprova o pedido é o gerente da área e muitas vezes isso pode ser feito pela WEB. Neste cenário, existe um recurso chamado Web Services que permite integrar todas estas informações em qualquer front-end, seja um formulário ou uma planilha no Excel, um documento no Word, uma página na Internet ou até em um Smartphone ou Pocket PC. Com isso, você pode focar a regra do negócio em apenas uma camada, que é o Web Service que será consumido em qualquer front-end. Além disto, o XML é o foco de toda e qualquer integração de dados tanto no .NET quanto no Office.

Cc580619.artigoVSTO01(pt-br,MSDN.10).png

O Office System 2003 deixou de ser a suite convencional que todos conhecem. Agora existem diversos outros aplicativos e servidores integrados ao Office, ou seja, o Office passou a ser uma plataforma de dados provida de diversas aplicações integradas através de Web Services e XML.

Atualmente o VSTO encontra-se na versão 1.0 e para instalar e desenvolver as soluções você precisa ter o Office 2003 e o Visual Studio .NET 2003. É importante ressaltar que o Office precisa estar instalado com a opções de suporte à plataforma .NET para que ele possa habilitar as PIAs (Primary Interop Assemblies). O modelo de segurança do VSTO é totalmente integrado com o .NET, e mesmo assim, é possível ter a segurança do VBA. Quando você criar uma solução no VSTO e compilar o programa final, terá uma DLL que será instalada na pasta /Bin da pasta em que o documento/planilha estiver. Quando o usuário abrir o respectivo documento/planilha, primeiro é verificada a segurança do VBA para acessar o arquivo; em seguida é verificada a segurança do .NET para executar o arquivo. Portanto, é fundamental que todo arquivo criado tenha Full Trusted ou direitos de execução no .NET.

Na versão 1.0 do VSTO você não dispõe de nenhuma interatividade diretamente no documento/planilha, sendo preciso programar tudo. Cabe ressaltar que o VSTO pode usar um template como modelo como referência de arquivo, ou seja, você pode utilizar todos os templates do Word existentes na sua empresa e programar algo mais no VSTO.

Cc580619.artigoVSTO02(pt-br,MSDN.10).png

Já na versão 2.0 (ainda beta), você já conseguirá visualizar o documento/planilha dentro do VSTO, inclusive os menus do Word/Excel ficam disponíveis para qualquer tipo de alteração no arquivo. Isso permite aos desenvolvedores uma visão muito melhor do objeto a ser tratado. Confesso que quando vi esta funcionalidade cheguei a pensar que os desenvolvedores .NET terão facilidades para manipular qualquer objeto mesmo sem conhecer o Office, pois o próprio objeto está exposto na UI do VSTO.

Cc580619.artigoVSTO03(pt-br,MSDN.10).png

No meu entendimento, o único impecilho (temporário) que o VSTO terá que enfrentar é que as empresas deverão migrar ou comprar o Office 2003. No entanto, isto se torna fácil de justificar quando desenvolver uma primeira aplicação com os recursos que o VSTO e o Office proporcionam.

Concluo que o VSTO é uma excelente opção de desenvolvimento para aplicativos Office com .NET. Com isso, integrar aplicações ficará muito fácil e quem ganhará com isso é o usuário final.

No stress, think .NET e VSTO.

Renato Haddad
Editor MSDN Magazine Brasil
Microsoft Most Valuable Professional
editormsdn@hotmail.com
http://br.thespoke.net/MyBlog/RenatoHaddad/MyBlog.aspx
Autor de diversos livros sobre MS-Office e .NET

Referências:
http://msdn.microsoft.com/office/understanding/vsto/

Veja também o artigo Recursos do Excel com VSTO 2

Mostrar: