Office as a development platform with Visual Studio 2008 Daniel Moth Developer and Platform Group Microsoft http://www.danielmoth.com/blog
AGENDA VSTO Overview Office Ribbon Designer Custom Task Pane Action Pane Outlook Form Region Designer Word Content Controls VBA <-> VSTO interop ClickOnce Deployment
Roadmap 2007 2003 Workflow & Microsoft SharePoint support Office 2007 system-specific features, file format, UI App-level add-ins for more client applications Deeper server-side programming VSTO fully integrated into Visual Studio 2008 2007 2003 App-level add-ins for most popular Office apps Runtime support for key Office 2007 UI elements (Custom Taskpane, Ribbon, Outlook form regions) Runtime support enabling Office 2003 doc-level customizations to run in Office 2007 Custom Document ActionsPane Host Controls on document surface Cached data in the document Server-side data processing Application-level add-ins for Outlook
VSTO Functionality Over Time 100 90 80 70 60 50 40 30 20 10 Doc-level 0 SP Workflow, new designers, functional extensions infra investments 11 Office add-ins, infra investments Outlook add-ins, VSTA in InfoPath functional extensions infra investments v1:2003 v2:2005 2005 SE v3:2007 vn:o14 Other Server Functional extensions Infrastructure services Deployment & Security Add-ins Doc-level
Doc-Level Version Resilience v1 solutions use the VSTO v1 runtime v2 solutions use the VSTO v2 runtime v3+ solutions use the VSTO v3+ runtime Reduces the number of runtimes (improves performance, working set) Eliminates type name clashes in DefaultDomain Based on the Managed Add-in Framework Common VSTO/VSTA runtime
Set the scene inc document level addins
Fluent UI Ribbon, Custom Task Panes, Actions Pane, Form Region
Ribbon Office Ribbon New Look and Feel for Office UI Tab Group Control Replaces Command Bars in the big 5 Office apps Introduces a new extensibility model: RibbonX Enables you to Customize office tabs, Add to built-in tabs Remove tabs, groups and controls Add to Office menu, Override built-in UI
XML-based Customisation Support Ribbon XML structure requires a specific hierarchy For example: <customui xmlns="http://schemas.microsoft.com/office/2006/01/customui" onload="onload"> <ribbon> <tabs> <tab idmso="tabaddins"> <group id="mygroup" label="my Group"> <togglebutton id="togglebutton1" size="large" label="my Button" screentip="my Button Screentip" onaction="ontogglebutton1" imagemso="accessformmodaldialog" /> </group> </tab> </tabs> </ribbon> </customui>
Ribbon Customization Office built-in support for XML-based customization model VSTO 2005 SE support Simplifies hookup from.net via pre-generated classes and sample XML VSTO v3.0 (Visual Studio 2008) support Adds full-blown visual designer support Export to XML option A more robust programming layer inc. events
Ribbon Designer Property Grid Design Surface Ribbon Control Toolbox
Custom Task & Actions Panes VSTO simplifies and speeds up task pane UI design process with visual designers and.net hookup Actions Pane More robust, easier to program alternative to Office s built-in Smart Document technology Custom Task Pane The same general idea as Actions Pane, only on the application add-in level, not individual doc
Pane UI Customization Actions Pane Custom Task Pane Introduced VSTO 2005 / Office 2003 VSTO 2005 SE / 2007 Office When to use Availability Whenever task pane UI is specific to an individual document or template Word document / template Excel document / template (both 2003 and 2007) Whenever task pane UI is specific to an application feature added by the addin, regardless of document Word 2007 Add-In Excel 2007 Add-In PowerPoint 2007 Add-In Outlook 2007 Add-In InfoPath 2007 Add-In
Custom Task Panes and Action Panes
ActionsPane Architecture Document Actions Task Pane VSTO Invisible ActiveX Control WinForms UserControl (ActionsPane)
Outlook Form Region Features New technology in Outlook 2007 for enhancing and replacing Outlook s built-in forms Code behind form region is implemented as COM add-in New controls provide built-in look & feel and data binding to Outlook data
4 Types of Form Regions Adjoining and Separate Custom and built-in forms Replacement and Replace-all Custom forms only Reading Pane can display all types except Separate
Adjoining in Reading Pane
Adjoining in Inspector
Separate
Replacement & Replace-All
VS2008 Outlook Form Regions VSTO eases development of Outlook form regions Configure form region with a simple, intuitive wizard Debugging (F5), Intellisense Import Use wizard to import Outlook-created OFS file Controls are referenced & cast to correct name & type Design Designer supports WPF and Windows Form controls Properties window exposes manifest
Outlook Form Region
Fluent UI Form Region Document- level Actions Pane Ribbon UI Customization App-level Custom Task Pane Excel 2007 Word 2007 Outlook 2007 PowerPoint 2007 InfoPath 2007
Word Content Controls
Word Content Controls New experience for developing structured documents in Word 2007 New UI for developers to access Word Content Controls Programmable through Word Object Model Support for XML Mapping
Toolbox Support Word content controls available in Toolbox Increases discoverability of content controls Drag-and-drop experience
Property Grid Support Easily access the properties and events of the content controls
Programming Paradigm Windows Forms style programming model Generate event handlers Support for IntelliSense
Word Content Controls
Two-Way Simple Data Binding Two methods to data bind Drag and drop support from Data Sources window Set up through the property grid
UI Feature Availability Ribbon (2007 versions of Word, Excel, Outlook and PowerPoint ) Actions Pane (document-level projects only) Custom Task Pane (2007 versions of Word, Excel, Outlook, InfoPath and PowerPoint) Outlook Form Region (Outlook 2007 only) Word Content Controls VSTO 2005 + VSTO 2005 SE Simplified hookup Sample XML Word 2003 (doc, dot) Excel 2003 (xls, xlt) Simplified hookup Visual designer VSTO v3.0 Simplified hookup Sample XML Visual designer Richer programming layer Export-to-XML option Word 2003 (doc, dot) Excel 2003 (xls, xlt) Word 2007 (docx/m, dotx/m) Excel 2007 (xlsx/m, xltx/m) Simplified hookup Visual designer Visual designer Configuration wizard Import from existing Drag n drop controls Simple data-binding Lock controls and content
Where we ve been, what s left VSTO Overview Office Ribbon Designer Custom Task Pane Action Pane Outlook Form Region Designer Word Content Controls VBA <-> VSTO interop ClickOnce Deployment
Call VSTO from VBA You enable VBA via COM Interop Interop implemented at design time You can then call VSTO from VBA with IntelliSense after building the project
VBA and VSTO Interop
ClickOnce for Office Add-ins Low-impact deployment mechanism Self-contained Solutions installed per user Prerequisites are installed if the user is an admin ClickOnce support Full end-to-end solution installation Richer version-independent security model Offline access via the ClickOnce Cache
ClickOnce Deployment
Summary The rationale for the VSTO architecture Bring together Office and.net Provide a sophisticated developer experience Provide a solid baseline runtime infrastructure Office is a true development platform
MSDN in the UK Visit http://msdn.co.uk Newsletter Events Screencasts Blogs
Resources Visit the VSTO Developer Center http://msdn.microsoft.com/office/tool/vsto/default.aspx VSTO Help documentation on MSDN http://msdn2.microsoft.com/en-gb/library/d2tx7z6d(vs.90).aspx VSTO Forum http://forums.microsoft.com/msdn/showforum.aspx?forumid=16 VSTO Team Blog http://blogs.msdn.com/vsto2
VSTO Design-Time Stack SharePoint Excel, Word, Info Path IDE Hosting Info Path Separate IDE Excel, InfoPath, Outlook, PowerPoint, Visio, Word, Project Excel, Outlook, PowerPoint, Word Outlook Workflow Document Solutions Add-ins Ribbons Form Regions Project Templates Item Wizards Visual Studio
VSTO/A Runtime Stack Office Client Host Managed/ Unmanaged Host Doc-Level Solution App-Level Add-in Doc-Level Solution App-Level Add-in Doc Task Pane Host Item Controls VSTO Runtime Win Forms Controls Custom Ribbon Custom Task Pane Custom Form Region VSTA Integration Common VSTO/A Runtime AppDomain Management Security Enforcement Deployment and Updating.NET CLR Managed Add-in Framework (MAF) ClickOnce
2007 Microsoft Ltd. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.