For years, solution architects have been intrigued by the idea of tightly integrated Microsoft Office solutions. The benefits of such a design are paramount: Users already spend a great deal of time crafting Office documents and spreadsheets with an interface they find extremely familiar. Any capacity to keep the user inside the Office Suite, or to give the ability for the user to bring line-of-business data and workflow into their existing Office activities, provides the potential for significant gains in information worker productivity.
Unfortunately, the platform extension capabilities within the Microsoft Office suite of tools came with their own set of challenges. For recent versions of Office, developers have had the ability to manipulate Office documents programmatically through COM components and wrappers. These customizations and extensions could be deployed with full trust to the user’s machine as .NET assemblies, and then Office applications could load custom task panes and controls into the user’s documents and spreadsheets. These extensions could be viewed as more organized Office macros written in .NET. Similar to macros, these extensions introduce significant challenges and risks surrounding deployment, versioning and general application life-cycle management.
With the 2013 Office and SharePoint stack, Microsoft has introduced a new app model that provides many of the integration scenarios of previous tools, without many of the application life-cycle-management challenges of previous iterations. With Office apps, much like the new SharePoint app model, developers have the ability to build document task panes and other in-document customizations using HTML5, JavaScript, and many of the Web-based development tools with which they’re already familiar.
Apps are deployed to a Web hosting provider of the developer’s choosing and then are “hosted” inside of a document, spreadsheet, project, or mail item using an IE10 “sandbox” iframe element, just like in a browser. Microsoft then provides a JavaScript file, called Office.js, that provides JavaScript-based APIs to enable developers to reach into the document to manipulate and read data. A great added feature of this approach is that Office 2013 apps will work natively in both the rich client Office applications as well as the Web-based versions in Office Web Application platform.
Office Apps have their own “marketplace” known as the Office App Store, where developers can deploy and monetize their apps. Users of Office 2013 can browse the app store and install or load apps directly into their documents. Organizations can also have their own internal app catalogs hosted within their SharePoint 2013 environment from which users can install internal, organization specific apps.
The development landscape of Office and SharePoint is going through a period of transformation. This provides solution architects and developers a host of new, deployment-friendly tools to solve a host of problems. This is a huge opportunity for solution providers to take advantage of the familiar Office user interface and to deliver integrated solutions for their applications.
Jonathan Mast is a consultant with SharePoint911, a Rackspace company.