PDC05 - Microsoft Visual Studio Tools for Office (VSTO)

Microsoft Visual Studio Tools for Office (VSTO)


VSTO provides professional developers with a Visual Studio IDE for developing managed applications that extend the functionality of Office applications.

VSTO version 1.0, code named White Rabbit, a Visual Studio project was available for developing managed customizations against the Office PIA’s (Primary Interop Assemblies) for Word and Excel code behind documents. The projects were available on the Everett CLR/Visual Studio.

VSTO version 2.0, which will be released with the Whidbey CLR/Visual Studio, a number of features have been added,

• A Visual Studio designer experience for Excel and Word documents.

  • Through the magic (years of difficult effort ;) of OLE doc object hosting, Visual Studio, hosts the Word and Excel applications, enabling the developer to utilize the full power of these Office applications for application extensibility. We provide the ability to drag and drop Winform controls directly onto the document surfaces. The ability to provide and take advantage of a fully supported word processor and spreadsheet application (as examples) for adding your additional custom functionality, as opposed to writing the Host application yourself, is what I believe should be part of what defines a “Smart Client” application.

• Off-line

o The ability to persist (cache) datasets with documents.
o Caching document assemblies (managed code associated with a document) via the IE cache.

• Document level customizations

o Word 2003 Document and template
o Excel 2003 Document and template
o InfoPath 2003 document

• Named range support

o Go ahead and move your reference to cells around, we’ll look for the associated name and the new cells it maps too. Stop referring to C1 and B1:B10.

• Server support

o Manipulate cached XML data islands via the VSTO server object model (OM) without having to start up Word/Excel on the server.

• Actions Pane

  • The ability to add a custom managed user control docked within the host window. Think in terms of creating your own custom task pane similar to the Office help and whose online task panes.
  • VSTO implementation of ISmartDocument
  • Built on Office Document Actions Task Pane
  • More – Misha/Eric blog

• Smart Tags

o Given a string to match (a regex) you can affect a context sensitive in-place menu.

• VSTO controls

o Added functionality to a Excel listobject

  • Enhances native Excel functionality
  • New methods, properties, events
  • BindableComponent
  • Databind to any bindable data source
  • SQL stored procedures, XML, web services
  • Create at design-time

• Microsoft Office InfoPath in the box.
• App manifest and Deploy manifest support
• Support for non US-EN Excel locals when calling through the PIA’s to the com methods. Also known as the LCID issue.

o I’ll blog later on the enhancements this provides.

• Outlook Application level Addin‘s

o I’ll blog later on the enhancements this provides over the current VS managed Office COM Addin extensibility projects.

• And a whole lot more

VSTO v.next, which is planned to be released with the Orcas CLR/Visual Studio, a number of features are being shown at PDC.

• Application level Add-in projects for all Office Applications

o Word, Excel, Power point, Outlook, InfoPath, FrontPage, Project, Visio, Publisher, Access

• Application level Programmable Task Pane designer for all Office add-in projects
• Compatibility/Enhancements

o Support for new Office Open Packaging file format

• And a lot more