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
3
Roadmap v3.0 (in VS2008) 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 2005 SE 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 2005 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 SP Workflow, new designers, functional extensions infra investments 11 Office add-ins, infra investments Outlook add-ins, VSTA in InfoPath functional extensions infra investments Doc-level
Doc-Level Version Resilience 11/28/2018 6:06 PM 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 MICROSOFT CONFIDENTIAL © 2006 Microsoft Corporation. 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.
Set the scene inc document level addins
Ribbon, Custom Task Panes, Actions Pane, Form Region “Fluent” UI Ribbon, Custom Task Panes, Actions Pane, Form Region
Office Ribbon New Look and Feel for Office UI 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 Group Tab Control Ribbon
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 Whenever task pane UI is specific to an individual document or template Whenever task pane UI is specific to an application feature added by the add-in, regardless of document Availability Word document / template Excel document / template (both 2003 and 2007) 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) TechEd 2002
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 VSTO 2005 + VSTO 2005 SE VSTO v3.0 Ribbon (2007 versions of Word, Excel, Outlook and PowerPoint ) Simplified hookup Sample XML Visual designer Richer programming layer Export-to-XML option Actions Pane (document-level projects only) Word 2003 (doc, dot) Excel 2003 (xls, xlt) Word 2007 (docx/m, dotx/m) Excel 2007 (xlsx/m, xltx/m) Custom Task Pane (2007 versions of Word, Excel, Outlook, InfoPath and PowerPoint) Outlook Form Region (Outlook 2007 only) Configuration wizard Import from existing Word Content Controls 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 Excel, Word, Info Path Info Path Excel, InfoPath, Outlook, PowerPoint, Visio, Word, Project Excel, Outlook, PowerPoint, Word SharePoint IDE Hosting Separate IDE Outlook Workflow Document Solutions Add-ins Ribbons Form Regions Project Templates Item Wizards Visual Studio
VSTO/A Runtime Stack Office Client Host VSTA Integration Managed/ Unmanaged Host Doc-Level Solution App-Level Add-in Doc-Level Solution App-Level Add-in VSTO Runtime VSTA Integration Doc Task Pane Host Item Controls Win Forms Controls Custom Ribbon Custom Task Pane Custom Form Region Common VSTO/A Runtime AppDomain Management Security Enforcement Deployment and Updating .NET CLR Managed Add-in Framework (MAF) ClickOnce