Share via

What's New for Developers in Office 2010

**Summary:**Microsoft Office 2010 introduces many new features and technologies that developers can use to create powerful business solutions. Learn about these options and explore associated code samples.

Applies to: Access 2010 | Excel 2010 | InfoPath 2010 | Office 2007 | Office 2010 | OneNote 2010 | Open XML | PowerPoint 2010 | Project 2010 | SharePoint Server 2010 | VBA | Visio 2010 | Visual Studio | Word 2010

Published:   August 2010


  • Overview

  • Office 2010 Fluent UI Features

  • Office Open XML SDK 2.0

  • Office Online

  • Using 64-bit Office

  • Access 2010

  • Excel 2010

  • InfoPath 2010

  • OneNote 2010

  • Outlook 2010

  • PowerPoint 2010

  • Project 2010

  • Visio 2010

  • Word 2010

  • Visual Studio 2010 and Office 2010

  • Conclusion


The release of Microsoft Office 2010 offers a wealth of interesting, new scenarios and solutions that can be built by developers, thanks to new features and improvements added to Office 2010 products and technologies. Office 2010 offers powerful new ways to showcase your creativity while making it even easier to create solutions that exceed your customer requirements. Designed to deliver the best productivity experience across the PC, phone, and browser, Office 2010 helps you capture your ideas creatively, work with other products and technologies more easily, and gives you the flexibility to meet changing customer requirements.

This article describes and illustrates a few of the new and improved features and technologies in Office 2010 (see Figure 1) from the vantage of a developer. You will also find links to additional information and resources in all of the sections.

Figure 1. Extensibility in Office 2010

Extensibility in Office 2010

Learn about the programmability enhancements in Office 2010 from one of its creators in this Channel 9 video.

Office 2010 Fluent UI Features

In Office 2010, the ribbon now appears across all of the programs. This gives the users of each program in the advantage of an intuitive UI that makes the discoverability of menus and features much easier. It also eliminates the need for the old model of CommandBars to customize the UI. The addition of the ribbon across Office 2010 also gives you increased opportunity to customize a UI experience tailored to your customers.

Find more getting started information on the Microsoft Office Fluent user interface on the Office Fluent UI Developer Center.

The Office 2010 ribbon also includes some additional features that are frequently requested by developers. For example, you can now set tab activation where you specify which tab has the focus when the Microsoft Office program starts or in reaction to some event trigger. You activate a custom tab by using the ActivateTab method of the IRibbonUI object as in the following statement.

expression.ActivateTab(tabID As String)

You use the ActivateTabMso method for built-in tabs and ActivateTabQ for tabs shared between multiple add-ins. ActivateTabQ also requires an additional string parameter that specifies the namespace of the add-in as in the following statement.

expression.ActivateTabQ(tabID As String, namespace As String)

The ribbon also supports the auto-scaling of custom groups. You enable auto-scaling by setting the autoScale attribute of the group element to true.

When you enable auto-scaling for a custom group and the ribbon is resized horizontally (always from right-to-left), the controls in that group also resize automatically (see Figure 2) from the normal size, to a medium size, and to a smaller size, in intervals.


In Figure 2, Custom Group Two does not have auto-scaling enabled for comparison purposes.

Figure 2. Groups are compressed as controls are resized

Groups are compressed as controls are resized

Find more information in the article Ribbon Extensibility in Office 2010: Tab Activation and Auto-Scaling.

Another feature new to the ribbon is now context (right-click) menus can be customized. Prior to Office 2010, the only way to customize context menus in the ribbon UI was by using CommandBars solutions. In Office 2010, you can customize built-in context menus just as you can the other components of the ribbon UI; by using XML markup and callback programming code. Additionally, enabling context menu customizations through ribbon UI extensibility does not "break" previously written command bar solutions. Find more information in the article Customizing Context Menus in Office 2010.

Office 2010 also introduces the Microsoft Office Backstage view, the latest innovation in the Office Fluent user interface, and a companion feature to the ribbon (see Figure 3).

Figure 3. Backstage view in Word 2010

Backstage view in Word 2010

The Backstage view is a UI innovation that makes it easier for you to find and work with the kind of operations that are outside the document authoring experience. For example, the Backstage view makes the discoverability of features such as printing, saving, collaborating, and configuring the application options much easier. Backstage view is fully extensible by developers, permitting organizations to customize UI to suit their own needs.

The Backstage view exists in almost all Office 2010 applications that support the Office Fluent user interface: Microsoft Access 2010, Microsoft Excel 2010, Microsoft OneNote 2010, Microsoft PowerPoint 2010, Microsoft Project 2010, Microsoft Publisher 2010, Microsoft Visio 2010, and Microsoft Word 2010.

The following XML adds a custom tab and various controls to the Microsoft Office Backstage view to produce the UI shown in Figure 4.

<customUI xmlns="" onLoad="OnLoad">
      <tab id="bxtabSample" label="Sample Tab">
            <group id="bxgrpCustom" label="Custom Group">
                  <menu id="bxmnuPrimaryItem" label="Menu" imageMso="SmartArtAddBullet">
                     <menuGroup id="bxmnuGroup">
                        <checkBox id="bxchkBox" label="Check Box"/>
                        <button id="bxbtnMenuGroup" label="Button"/>
                  <button id="bxbtn1" label="Button One"/>
                  <button id="bxbtn2" label="Button Two"/>
                  <button id="bxbtn3" label="Button Three"/>

Figure 4. Sample tab on the Backstage view

Sample tab on the Backstage view

Find more information in the articles Introduction to the Office 2010 Backstage View for Developers and Customizing the Office 2010 Backstage View for Developers.

Office Open XML SDK 2.0

The Open XML SDK 2.0 for Microsoft Office is a collection of classes that enables you to create and manipulate Open XML Formats documents – documents that adhere to the Office Open XML File Formats Standard. The Open XML SDK 2.0 now supports schema-level objects, in addition to the part-level support introduced in the Open XML SDK 1.0. This makes it simpler to programmatically manipulate workbooks and other documents outside of Office 2010 desktop applications—for example, as part of a server-based solution. The Open XML SDK 2.0 is great for enabling solutions to extract, examine or modify a document's contents.

The Open XML SDK 2.0 makes it easier for you to build solutions using the Open XML Formats by enabling you to perform complex operations with just a few lines of code, such as creating Open XML Formats packages or adding and deleting tables. For example, look at the following code sample that creates a basic WordprocessingML document and inserts the text Hello World into it.

public void CreateDocument(string docName) 
  // Create a Wordprocessing document. 
  using (WordprocessingDocument package = WordprocessingDocument.Create(docName, WordprocessingDocumentType.Document)) 
    // Add a new main document part. 

    // Create the Document DOM. 
    package.MainDocumentPart.Document = 
      new Document( 
        new Body( 
          new Paragraph( 
            new Run( 
              new Text("Hello World!"))))); 

    // Save changes to the main document part. 

As you can see, it is simple to create a document by using the Open XML SDK 2.0.

Find more information in the article Welcome to the Open XML SDK 2.0 for Microsoft Office.

Download the Open XML SDK 2.0 for Microsoft Office on the Microsoft Download Center.

For a sample of the Open XML SDK 2.0 in action, see the article Assembling Documents on SharePoint 2010 Sites by Merging Content from Excel, PowerPoint, and Word.

Office Online

Microsoft Office Web Apps (OWAs) are convenient online companions to Word 2010, Excel 2010, PowerPoint 2010, and OneNote 2010 that enable you to work with your Microsoft Office documents from virtually anywhere with a supported browser. While there is no developer story for version 1.0, the OWAs are definitely worth exploring.

Find more information on the Office Web Apps on the Microsoft Office Web Apps team blog.

Using 64-bit Office

Microsoft Office 2010 is now available in 32-bit and 64-bit versions. This means that you can create more complex workbooks, documents, and presentations. One of the more obvious benefits is the lifting of the addressable memory constraint that exists in 32-bit Microsoft Windows. Applications built with the 64-bit version simply can use more physical memory than ever before. The advantage of using a 64-bit version is the ability to address physical memory (RAM) that is above the 2-gigabyte (GB) limit which exists in the 32-bit version of Microsoft Office. For more information about the 64-bit version of Office 2010, see Compatibility Between the 32-bit and 64-bit Versions of Office 2010

Access 2010

Microsoft Access 2010 provides a powerful set of tools that help you to quickly start tracking, reporting, and sharing information. You can rapidly create attractive and functional tracking applications by customizing one of several predefined templates, converting an existing database, or creating a new database, all without deep database knowledge. The following table lists key new features for developers in Access 2010.

Table 1. New Access 2010 developer features

Data Macros

Move your business rules into the data layer. Data macros allow developers to attach logic to record/table events (similar to SQL triggers). Some of the actions that you can perform with data macros include the following:

  • Create, delete or edit a record

  • Set the value of a field or variable

  • Raise an error

  • Log an action through an event

  • Send an email

Macro Designer Improvements

The Macro Designer makes it easier and more intuitive to add logic in your applications. Write your own enforcement rules or type in plain text and it is automatically converted to the right XML code. Figure 5 shows the Macro Designer in action.

Figure 5. Macro Designer

Macro Designer

Find more information on the Macro Designer in the video Tutorials: Access 2010 Macro Designer.

Expression Builder Improvements

You now have extra help when creating critical if-then statements. The Expression Builder makes it easier and more intuitive to create expressions when creating applications. With IntelliSense, just type in plain text and autocomplete finishes the statement, helping to significantly reduce errors.

SharePoint Business Connectivity Services (BCS) Support

Include Web services and line-of-business applications data right into the applications you build with Access 2010. This helps keep your systems safe by enabling you to view data that is already trusted and validated by IT.

New Controls

  • Navigation Control Makes it easy to build a tabbed, web-like UI.

  • Web Browser Control A native Access 2010 implementation of a web browser to use on forms.

Application Parts

Application Parts simplify database creation by enabling you package and reuse common database parts.

Find more information at the Microsoft Office Developer Center on the Access 2010 Developer Center.

Excel 2010

Microsoft Excel 2010 is a platform for developing powerful business and financial solutions. You can write code to customize and extend Excel 2010 in many ways – automating operations, user interface customizations, data entry forms and extending formulas with user defined functions, to name just a few. The following table details some of the improvements made in Excel 2010.

Table 2. New Excel 2010 developer features

Changes to the XLL SDK

The XLL Software Development Kit (SDK) now supports calling new worksheet functions, developing asynchronous user-defined functions, developing cluster-safe user-defined functions that can be offloaded to a compute cluster, and building 64-bit XLL add-ins. Find more information in the Welcome to the Microsoft Excel 2010 XLL Software Development Kit.

VBA improvements

Excel 2010 has a number of features that enable you to migrate any remaining Excel 4.0 macros you may have to VBA. Improvements include better performance for print-related methods and chart properties not previously accessible with VBA.

Support for High-performance Computing

Many organizations rely on high-performance computing clusters to increase computational scale. For example, a financial firm might use compute clusters to speed up long-running, calculation-intensive financial models, in which a formula is run thousands of times, every time with different inputs. Excel 2010 now includes options for integrating with compute clusters. Specifically, Excel developers can now develop cluster-safe user-defined functions in XLL add-ins, to enable offloading the processing of those user-defined functions to a compute cluster when they are called from an Excel workbook. Find more information at the Excel product team blog

Asynchronous UDFs (User-Defined Functions)

Excel 2010 enables you to author non-processor-intensive UDFs as asynchronous. For example, a UDF that brings back a stock quote from a public web service. This ability is supported in XLL add-ins.

Macro Recording Improvements for Charts and Shapes

There have been a number of improvements to chart and shape macro recording to make them compatible with recording capabilities from Excel 2003. Find more information in the Excel Team blog

JavaScript OM

The JavaScript Object Model (JSOM) enables a new set of solutions using Excel Services. With the JSOM it is possible to detect and react to a user's interactions with an Excel Web Access (EWA) Web Part and to programmatically interact with one or multiple EWA web parts.

Find more information at the Microsoft Office Developer Center on the Excel Development Portal

InfoPath 2010

You use Microsoft InfoPath 2010 to both design and fill out electronic business forms. InfoPath 2010 provides better integration with other Microsoft Office 2010 applications and servers, which helps improve the way that you collect, organize, and manage data.

InfoPath 2010 and Microsoft SharePoint Server 2010 with InfoPath Forms Services have added many new features and improvements for developers. InfoPath Forms Services enables you to deploy an InfoPath form template to a server so that users without InfoPath 2010 can open and fill out InfoPath forms by using a web browser The following table details just a few of the improvements made in InfoPath 2010.

Table 3. New InfoPath 2010 developer features

Microsoft Visual Studio Tools for Applications

There is now a lightweight version of the Microsoft Visual Studio IDE: Microsoft Visual Studio Tools for Applications (VSTA). You use VSTA to write business logic with managed code in C# or Visual Basic, which is then embedded in the InfoPath form template (.xsn) file. For information about how to use VSTA, see How to: Install and Develop with Visual Studio Tools for Applications

SharePoint Server Sandboxed Solutions

It is easier than ever to deploy forms with code to SharePoint Server 2010. In Office InfoPath 2007, all forms with code had to be approved and uploaded by a SharePoint farm administrator. With support for sandboxed solutions in SharePoint Server 2010 and Microsoft SharePoint Foundation 2010, form designers with site collection administration permissions can now publish most forms with code, directly to their SharePoint Server 2010 sites.

For more information about publishing InfoPath form templates as sandboxed solutions, see Publishing Forms with Code

Enhance SharePoint List Forms

You can now extend and enhance the forms used for creating, editing, and viewing items in a SharePoint list. By opening a list, clicking the List tab under List Tools, and then clicking Customize Form, you can quickly auto generate an InfoPath 2010 form which resembles the default, out-of-the-box SharePoint list form. You can then customize and enhance this form by modifying the layout, creating additional views, and adding rules and data validation in InfoPath 2010. When you are finished modifying your improved list form, you can publish it to SharePoint using InfoPath's new one-click publish feature.

Connect Forms with Line-of-Business Systems

Microsoft Business Connectivity Services (BCS) can now be integrated with InfoPath 2010, enabling users to connect their organization's forms to important business data that is stored in external line-of-business systems such as SAP and Oracle. By using Microsoft SharePoint Designer 2010, you can create custom InfoPath 2010 forms to create, read, update, and delete business data that is stored in an external list.

Find more information on how to work with data from external lists in InfoPath forms see the Microsoft SharePoint 2010 Software Development Kit (SDK)

Host Forms on Portal Pages using the InfoPath Form Web Part

In SharePoint Server 2010, it is easier than ever to host your forms on Web pages using the new InfoPath Form Web Part. Without writing a single line of code, you can add the InfoPath Form Web Part to a Web Parts page and point it to your published form. You can use the InfoPath Form Web Part to host any InfoPath browser form that is published to a SharePoint list or form library. You can also connect it to other Web Parts on the page to send or receive data.

Find more information on how to use the InfoPath Form Web Part, see Working with the InfoPath Form Web Part.

Richer web forms

The feature gap between client and browser forms has been narrowed, creating a more consistent form filling experience for all users. Controls and functionality that are now supported in browser forms include the following:

  • Bulleted, numbered, and plain lists

  • Multiple selection list boxes

  • Combo boxes

  • Picture buttons

  • Hyperlink capabilities

  • Choice group and section

  • Date and time controls

  • Person/group pickers

  • Filtering functionality

Find more information on the InfoPath Developer Center.

OneNote 2010

Microsoft OneNote 2010 is a powerful digital notebook for collecting, organizing, searching and sharing information. With Office 2010, not only is the OneNote user experience improved, but OneNote notebooks are now more universally available. Users can synchronize content among computers via Windows Live; search, edit and share notes from any web browser; and access full notebooks from Windows Mobile (and, soon, Windows Phone 7). In addition, OneNote was previously included only in some Office editions, but it’s now in every edition of Office 2010. The following table lists some of the new features for OneNote 2010 developers.

Table 4. OneNote 2010 improvements for developers

Quick Filing Dialog

The Quick Filing Dialog is a customizable dialog that allows users to select a location within the OneNote tree structure. Selectable locations include notebooks, section groups, sections, pages and sub-pages. The dialog is used both within the OneNote application and by external applications through the OneNote 2010 API interface.

Window(s) class

The Window & Windows classes are new OneNote 2010 API objects that allow users to work with OneNote windows. These objects allow users to enumerate through the set of OneNote windows and modify certain window properties.

Linked note taking

Linked note taking allows users to capture information about other content they were viewing while taking notes in OneNote 2010. It allows users to link back to the content at a later time.

Currently, users can capture information with Internet Explorer, Word, PowerPoint and OneNote. Developers can write linked note taking add-ons to capture information for other applications.

Docked windows

OneNote 2010 windows can now be docked to the desktop, like with the Windows' task bar. OneNote can be started in docked mode, or the property can be programmatically applied to previously opened OneNote windows.

Schema changes

There have been changes to the schema reflecting new properties and features in OneNote 2010 including unread highlights, recycle bin, linked note taking, quick styles, page level and other page tab properties, amongst other features.

Application class changes

Some methods were added to facilitate file and section merge, to give users access to the opened OneNote 2010 windows and to bring up the quick filing dialog. A lot of the application class functions now allow for distinctions between the Office 2007 and Office 2010 schema. For example, a user can retrieve the XML content of a page based on either the Office 2007 or Office 2010 schemas by passing the corresponding schema reference to the appropriate function.

The following paragraphs illustrate working with OneNote 2010 data by using the COM API.

It’s fairly straightforward to start using the OneNote COM API to access live data from OneNote 2010 notebooks. Start by creating a new console application in Microsoft Visual Studio and then add a reference to the Microsoft OneNote 14.0 Type Library COM component (for OneNote 2010) or the Microsoft OneNote 12.0 Type Library COM component (for OneNote 2007).

With the OneNote 2010 library reference in place, you are ready to make calls to the OneNote API. The following code in uses the GetHierarchy method to retrieve an XML document containing a list of OneNote notebooks that then use LINQ to XML to extract and print the notebook names to the console.

using System;
using System.Linq;
using System.Xml.Linq;
using Microsoft.Office.Interop.OneNote;

class Program
   static void Main(string[] args)
     var onenoteApp = new Application();

     string notebookXml;
     onenoteApp.GetHierarchy(null, HierarchyScope.hsNotebooks, out notebookXml);
     var doc = XDocument.Parse(notebookXml);
     var ns = doc.Root.Name.Namespace;
     foreach (var notebookNode in 
      from node in doc.Descendants(ns + "Notebook") select node)

The HierarchyScope enumeration is passed as the second parameter to the GetHierarchy method and specifies the depth of the notebook structure to retrieve. To retrieve other sections of the notebooks, simply update this enumeration value to HierarchyScope.hsSections and process the additional XML child nodes, as demonstrated in this code sample.

using System;
using System.Linq;
using System.Xml.Linq;
using Microsoft.Office.Interop.OneNote;

class Program
   static void Main(string[] args)
     var onenoteApp = new Application();

     string notebookXml;
     onenoteApp.GetHierarchy(null, HierarchyScope.hsSections, out notebookXml);
     var doc = XDocument.Parse(notebookXml);
     var ns = doc.Root.Name.Namespace;
     foreach (var notebookNode in from node in doc.Descendants(ns + 
       "Notebook") select node)
       foreach (var sectionNode in from node in 
         notebookNode.Descendants(ns + "Section") select node)
         Console.WriteLine("  " + sectionNode.Attribute("name").Value);

Find more information on developing applications that interoperate with data from OneNote 2010 and OneNote 2007 in the article Creating OneNote 2010 Extensions with the OneNote Object Model.

Outlook 2010

Microsoft Outlook 2010 provides you with a comprehensive time and information manager. Mobility is an important aspect of global businesses and having Outlook 2010 on various devices gives customers a huge competitive advantage. With the new conversation feature of Outlook 2010, all of the emails on that conversion are available in one place, eliminating the need to search for related emails. The following table lists some of the new features and improvements to Outlook 2010.

Table 5. New Outlook 2010 developer features

Solution Modules

Outlook 2010 provides the ability to add custom modules to the Navigation Pane through the Solutions module OM. The Solutions module is a navigation module that you can add to the Navigation Pane programmatically. The Solutions module gives users a powerful way to search folder hierarchies or stores that contain customized item types.

Find more information on Solution modules in Programming the Outlook 2010 Solutions Module.

Add-in Resiliency

Add-in resiliency means that before and after loading an add-in, Outlook continues to perform and respond normally. Outlook 2010 gives you and IT administrators the ability to determine which add-ins load when Outlook starts, and the impact that those add-ins have on that startup time. When Outlook starts up, detailed information about the identity of each connected add-in is written to the Windows event log. In addition, the boot time for each connected add-in is written to the event log in milliseconds similar to that shown in Figure 6.

Figure 6. Windows Event Log

Windows Event Log

Add-in Fast Shutdown

Outlook 2010 enforces a new fast shutdown process for add-ins. The new shutdown process prevents add-ins from causing long delays by holding on to resources after the user exits Outlook. Although this change could adversely affect a small number of existing add-ins, add-in vendors and IT administrators can mitigate those effects by forcing Outlook to revert to the standard add-in shutdown process.

Find more information about add-in shutdown and best practices in Shutdown Changes for Outlook 2010.

Comprehensive Object Model

The goal of a comprehensive OM is to ensure that developers can write professional solutions without using MAPI code directly. In managed code, you cannot develop Outlook solutions that use MAPI.

The following are some of the things you can accomplish with the Outlook 2010 OM:

  • There is a new feature called the conversation view, and a new object called the Conversation object. You use the Conversation object to execute conversation verbs and to traverse the conversation tree.

  • You can define custom fields for form regions in the form region XML manifest by using the new fieldRegistry and userField elements. Outlook 2010 loads this information when it starts, and fields in the form regions are available and initialized with their default values when an item is opened.

  • You can now call the RefreshFormRegionDefinition method of the Application object to refresh the cache and obtain the current definition for an existing form region or all existing form regions defined for the local computer and the current user.

  • An add-in can show or hide an adjoining or separate form region at run time. You set the new defaultVisibility element in the form region XML manifest for Outlook to show or hide the form region by default. You use the ShowFormPage and HideFormPage methods of the Inspector object to show or hide a form region, even when an item is open and is using that form. For example, the following code enables you to show a form region.

    myInspector.ShowFormPage (myFormRegion.InternalName);

    The following code enables you to hide a form region.

    myInspector.HideFormPage (myFormRegion.InternalName);

    Find more information about additional changes to the Outlook 2010 OM in the article Outlook 2010 Object Model Changes Since Earlier Versions.

Multiple Exchange Accounts

Another exciting new feature in Outlook 2010 is the ability to run multiple Exchange accounts. To accommodate multiple Exchange accounts, the Account object now exposes several new properties and methods.

Find much more information on the new developer features in the article What's New for Developers in Outlook 2010.

PowerPoint 2010

To help you produce professional-looking presentations, Microsoft PowerPoint 2010 provides a comprehensive set of features that you can use to create and format your information. You can create and add designer-quality SmartArt graphics with only a few clicks of your mouse.

One of the new features added in PowerPoint 2010 is the powerful formatting and editing of embedded videos in slide shows. Many of the visual effects that can be applied to images in Office 2010 can be applied to the embedded videos as well (see Figure 7).

Figure 7. Video formatting options in PowerPoint 2010

Video formatting options in PowerPoint 2010

Additionally, a video can be embedded from your hard drive or from an online video site. Figure 8 shows the options available from the ribbon UI.

Figure 8. Options for importing videos in PowerPoint 2010

Options for importing videos in PowerPoint 2010

Because you can embed videos, you now only need to worry about a single file: the presentation. Find more information on working with embedded media programmatically in the video Working with Embedded Media in PowerPoint 2010.

Like Microsoft Excel, and now Word 2010, PowerPoint 2010 has a charting OM. Sometimes companies have a need to create charts in documents or presentations based on client specific data. In many cases these charts have a standard format, size, and position which make them a candidate for automation. This OM can be used as a part of a solution to automate the generation of these charts which can save many hours of work for a developer.

Another cool feature in the family of PowerPoint 2010 technologies is Microsoft PowerPoint Mobile 2010. Use Microsoft PowerPoint Mobile 2010 to view and edit presentations (including presenter notes) stored on your phone, sent to you as email attachments, or hosted on a SharePoint 2010 site through SharePoint Workspace Mobile 2010. When you edit a presentation via SharePoint Workspace Mobile, you can save your changes back to SharePoint Server 2010 when you’re online.

Project 2010

Microsoft Project 2010 gives you a powerful, visually enhanced way to effectively manage a wide range of projects and programs. From meeting crucial deadlines, to selecting the right resources and empowering your teams, Microsoft Project Professional 2010 delivers new and intuitive experiences to simply plan, manage and collaborate with individuals, teams and the enterprise.

Microsoft Project Server 2010 is built on SharePoint Server 2010, bringing together powerful business collaboration platform services with structured execution capabilities to provide flexible work management solutions. Microsoft Project Server 2010 unifies project and portfolio management to help organizations align resources and investments with business priorities, gain control across all types of work, and visualize performance using powerful dashboards. Find more information about Project Server 2010 in the article Project Server 2010 Architecture.

The following table details some of the improvements made in Project 2010 and Project Server 2010.

Table 6. New Project 2010 developer features

Integration with SharePoint Server

Project Server 2010 depends on SharePoint Server 2010. New features in Project Web App require SharePoint Server 2010, such as pages that use the SharePoint Server Report Center for storing and viewing reports. Portfolio analysis also extensively integrates with the SharePoint Server workflow architecture.

Microsoft Project Portfolio Server 2010

The essential functionality of Project Portfolio Server 2007 is now integrated and extended within Project Server 2010. The Project Server Interface web services are extended to include portfolio analysis, workflows, and business drivers. The core feature of Project Portfolio Server 2007 is the Optimizer. Integration with Project Server 2010 does the following:

  • Analyzes a set of project proposals based on business driver priorities.

  • Improves Optimizer usability and provides integrated security with Project Server 2010 permissions, international reach, and ease of deployment.

  • Eliminates duplication of functionality and data in the separate Project Server 2010 and Project Portfolio Server 2010 products.

  • Business driver libraries, cost constraints, and related project entities also are accessible through Web Parts and SharePoint Server 2010 lists.

Project Detail Pages

Demand management for project proposals and the portfolio planning processes in Project Web App use project detail pages (PDPs) that can be integrated with workflows. PDPs are Web Part pages; they are built with the SharePoint Server 2010 infrastructure to show or edit details of entities for project planning such as project information, resources, schedule, or strategic impact.

Workflow Integration

Workflows are a core feature of project portfolio management. Although Project Portfolio Server 2007 includes workflows, Project Portfolio Server itself is not extensible and the workflows are difficult to build. The integration in Project Server 2010 of portfolio and project management provides a rich and extensible platform for building workflows that are based on the SharePoint Server 2010 workflow platform.

Find more information on these and other improvements to Project 2010 in What's New for Developers in Project 2010 and at the Microsoft Project Developer Center.

Visio 2010

Microsoft Visio 2010 provides a powerful single platform for your custom drawing solutions. New Automation objects, collections, properties, methods, enumerations, and events, along with new ShapeSheet cells and functions, give you more options for defining the behavior of the elements in your solutions. The following table provides more details.

Table 7. Visio 2010 improvements for developers

Structured diagrams: containers, lists, and callouts

In Visio 2010, you can now work with structured diagrams that are drawings which are organized by using containers, lists, and callouts.

Containers are shapes that visually contain and logically relate other shapes on the page. Lists are special types of containers whose members form ordered sets of unconnected shapes. Lists are found in diagrams such as cross-functional flowcharts and wireframe diagrams, as well as in data-graphic legends. Callouts are descriptive shapes that you can associate with other shapes in the drawing.

Create SharePoint workflows

You can author SharePoint 2010 workflows just like any flowchart in Visio 2010, export it as a .vwi file, and then import the file into SharePoint Designer 2010 for further editing before it is executed in SharePoint. Additionally, the SharePoint Designer 2010 workflow can be exported and imported into Visual Studio 2010 where it can be further extended with code.

Diagram validation

Diagram validation is a feature that lets you analyze a diagram to verify that it is properly constructed and is compliant with any business logic defined for the document. Several new objects are exposed in Visio 2010 that, along with their members, makes it possible to validate diagrams programmatically.

Find more information about diagram validation in the article Introduction to Validation Rules in Visio Premium 2010 and in the blog of the Microsoft Visio product team.

Publishing Visio diagrams as VDW files

In Visio 2010, you can programmatically publish Visio diagrams to SharePoint Server as VDW files, so that users can view them without the need to have Visio installed on their computers. Find more information about how to create a Visio Web Drawing (*.vdw) file using Visio in the blog of the Microsoft Visio product team.

Subprocess diagrams

Subprocess diagrams make it possible for users to extract a set of shapes from a business-process diagram, such as a flowchart, and move those shapes to a separate Visio page, linked to the main diagram. It is possible to link subprocess diagrams to individual shapes in the main business-process diagram.

Incremental shape alignment, spacing, and placement direction change, and moving shapes off page breaks

In Visio 2010, you can programmatically make incremental changes to the alignment, spacing, and placement direction of all shapes in a selection or all shapes on the page. In addition, you can move shapes off page breaks programmatically.

Visio Services JavaScript Mashup API

The Visio Services JavaScript Mashup API enables developers to access and manipulate the Visio web drawing, its pages and shapes. Some key scenarios enabled by the Mashup API are:

  • Interacting with webpage elements that do not expose Web Part connections.

  • Creating visual markup on the Visio drawing canvas.

  • Writing custom handlers for mouse events within the drawing.

  • Exposing diagram data, such as shape name and shape data, to your solution.

  • Combining data from inside and outside a diagram to build dynamic composite mashups.

Find more information on these features and more in the articles What's New in Visio 2010 for Automation Developers and What's New in Visio 2010 for ShapeSheet Developers. You can also find additional information on Visio 2010 on the Visio Developer Center.

Word 2010

Microsoft Word 2010 helps you produce professional-looking documents by providing a comprehensive set of tools for creating and formatting your document. Rich review, commenting, and comparison capabilities help you quickly gather and manage feedback from colleagues. Advanced data integration ensures that documents stay connected to important sources of business information. And new features enable multiple people to edit a document at the same time. The following table lists some of the programmability improvements for Word 2010.

Table 8. Word 2010 improvements for developers

Microsoft Word Automation Services

Word Automation Services is a new service application in SharePoint Server 2010. Word Automation Services provides unattended, server-side conversion of documents into formats that are supported by the Microsoft Word client application. In simplest terms, Word Automation Services takes the Save As… functionality of the Word client application and replicates it for the server. Word Automation Services exposes its object model through a rich API that you can use to create custom solutions and leverage the full functionality of the service. Find more information in the Word Automation Services Overview.

Collaboration OM

Co-authored documents and the Word.Application object expose properties related to co-authoring (only documents stored on servers that use the MS-FSSHTTP (File Synchronization via SOAP over HTTP) protocol can be co-authored; these include SharePoint and Microsoft OneDrive.

Chained Undo OM

As end users work in Microsoft Word, the actions they take that can be undone are recorded in a queue—the undo stack—so that if the user decides to reverse the action, Word can recall the action taken and undo it. The undo stack is visible through the Word user interface on the ribbon through the Undo button, where each action is listed as a discrete record in the stack. The Word 2010 object model provides you the ability to link a series of individual actions into a custom undo record that can then be used to undo the actions as a single unit. A custom undo record is represented in the Word object model by the UndoRecord object queue using the UndoRecord object.

Chart OM

In Word 2007 Service Pack 2 (SP2) and later, you can programmatically access and manipulate charts using the VBA object model in Word. The chart object in Word is drawn by the same shared Office drawing layer implementation used by Excel, so if you are familiar with the charting object model in Excel, you can easily migrate Excel VBA code that manipulates charts into Word VBA code.

Find more information at the blog of the Microsoft Excel product team.

ProtectedViewWindow object

In Office 2010 when a file appears to be from a potentially risky location, such as the Internet, it is now opened in Protected View. Protected View will appear like any other read-only view. However, when a file is opened in Protected View, it is being opened in the new Office 2010 version of the MOICE (Microsoft Office Isolated Conversion Environment). Word 2010 exposes members and properties related to protected view windows that developers can leverage.

Publish to the web

Save documents to a SharePoint Server site or Microsoft OneDrive folder so that you and other people can open and edit them simultaneously.

Find more information about programmatically improvements in Word at the Word Developer Center.

Visual Studio 2010 and Office 2010

There are a number of new features and capabilities in developing solutions for Office 2010 and the 2007 Microsoft Office system by using Visual Studio 2010. For example, Visual Studio 2010 includes new document-level and application-level project templates for creating solutions that target Office 2010. Find more information in Office Project Templates Overview and How to: Create Office Projects in Visual Studio.

You can use the Ribbon Designer to customize the ribbon for applications that now support the ribbon UI in Office 2010. These applications now include InfoPath 2010, Project 2010, and Visio 2010. You can also use the Ribbon Designer to customize the ribbon for Explorer windows in Outlook 2010.

Visual Studio 2010 has also vastly improved deployment of Office solutions with the No Primary Interop Assembly (NOPIA) feature. PIAs enabled managed code assemblies to interact with the Microsoft Office COM APIs. PIAs tend to be very large and until now, needed to be deployed with the Office solution. Developing Office 2010 solutions that target the Microsoft .NET Framework 4 has eliminated the need to deploy PIAs, making deployment packages much smaller and less complex, saving the developer time and resources.

Office 2010 now includes the Visual Studio 2010 Tools for Office Runtime components that are required to run Office solutions that target the Microsoft .NET Framework 3.5.


We, in the Microsoft Office team, are excited to release Office 2010 and all of the features and supporting technologies that target you, the developer. Our goal has been to make your job easier by saving you time and enabling you to use the resources you have, more efficiently. Office 2010 is all about helping your creative ideas flow and flourish. However, this paper has only given you a glimpse of all that Office 2010 has to offer. The new and improved features and technologies in Office 2010 are too numerous to be presented in a single paper. Please use the links in the various sections to further explore scenarios and details on what you can do with Office 2010.