ISmartDocument in VSTO 2005
How does VSTO relate to Smart Docs? Superficially, there seems to be some point of commonality, in that both use the task pane to some degree, but is that as far as it goes?
A point of clarification around the use of ISmartDocument in VSTO. Relatively speaking, VSTO v1 (2003) offers limited new functionality. Its significance, however, is huge. This was the first time Office itself became aware of the .NET runtime - the first time Office became capable of explicitly loading a managed assembly. A very major step in the right direction. VSTO 2005 brings signficantly greater functionality. For more info on VSTO 2005, check out the team's blog.
Currently in Office, there is no way of showing the Document Actions task pane without providing some implementation of ISmartDocument. Anyone who has ever developed either managed or unmanaged solutions against ISmartDocument knows how painful this is. Vertigo's new Managed Smart Document wrapper tool implements ISmartDocument in a standard way that allows you to build Smart Docs easily on top of it. It includes a helper library that makes it easier to deal with the complexity of the ISmartDocument interface by parsing an XML file which contains the definitions of the Smart Doc controls.
VSTO 2005 also has a standard implementation of ISmartDocument. The VSTO 2005 VSTOActionsPaneEngine.dll contains an implementation of ISmartDocument, and this gets loaded via the registry in the normal way for Smart Tag Actions - but let's be clear here: VSTO 2005 has to use ISmartDocument, but it is a lot more than just a Smart Doc facilitator. Implementing ISmartDocument is just the mechanism we use to get the standard task pane. Apart from that detail, VSTO and Smart Docs are really two very different models.
The ActionsPane class in VSTO 2005 completely isolates the programmer from any knowledge about ISmartDocument. When you develop a VSTO solution, you_re not consciously aware that you_re working with ISmartDocument at all, and in fact ISmartDocument is irrelevant to you. ActionsPane is just a Winforms form that could contain ANY other Winforms controls. The VSTO 2005 deployment model is completely different from Smart Docs - it is not manifest based. The design time experience is now WYSIWYG - you can use Visual Studio to design your ActionsPane components. Altogether, a different paradigm for dealing with the programmable task pane. Plus, of course, VSTO 2005 offers a lot more than the task pane - Winforms controls on the surface of a workbook/document, data-binding, server-side book/doc data XML manipulation, ClickOnce deployment, more sophisticated deployment, etc, etc.