Editor’s note: The following post was written by Office 365 MVP Cindy Meister as part of our Technical Tuesday series.
Those of us who’ve been developing with the Office applications for Windows since they were introduced in the early 1990’s are no strangers to programming language changes. The transition in version 97 from the UI-oriented WordBasic / Excel XLM / AccessBasic languages to the more object-oriented VBA meant not only learning a new language, but making a significant paradigm shift: Instead of thinking about how the user interface behaves the developer needed to learn to think in terms of objects, with their properties and methods, as well as events. On the whole, I believe most of us ended up embracing the new technology (and certainly the IDE!), although not everyone made the transition at the same speed or with the same amount of enthusiasm!
Then VSTO was introduced with Office 2003 and Office developers were confronted with the question whether to familiarize themselves with the .NET Framework and VB.NET and/or C#. (In hindsight, it turns out this wasn’t the real future of Office development. Cause for those who didn’t make the effort to feel smug and those who did to feel somewhat betrayed.)
A few years later, the Office Open XML file format was introduced in version 2007, providing the possibility of creating and editing Office documents directly, independent of the host Office application. This is especially interesting for those who need to process documents server-side, want to increase processing speed or avoid conflicts with the user working in the application interface. In order to take advantage of the new file format, the developer requires knowledge of XML and ZIP packaging in his programming language of choice or, in order to leverage the Open XML SDK, knowledge of VB.NET or C#. (So maybe the effort to learn these was worth it, after all?)
The big difference compared to the change for Office 97 is that the old language – VBA – is not being replaced. It’s still there, with all the functionality, but as before it runs only in the desktop environment. VBA (as well as COM Add-ins and VSTO) is also still in the Office Development Roadmap, so legacy applications will continue to work – investments won’t be lost.
The biggest drawback of these original “Web Add-in” APIs is that they lack most of the capabilities required to work effectively with Office documents and their applications. They are, however, being expanded for Office 2016 and should offer many more possibilities.
About the author
Cindy specializes in automation of Microsoft Office applications and, most recently, in the Office Open XML file formats and Open XML SDK. She has worked with all releases of Microsoft Office applications since the early 1990's and has been an MVP since 1996. You can find her on the MSDN forums for VSTO, Word, Open XML SDK and General Office Development where she's a moderator.