By: Robby Maulana, Mitrais Analyst Programmer

VSTO

For many centuries the invention of new technology has changed people’s life, making many activities easier to do. Some people believe that technologies have negative impacts on social relationships. However, many think that technologies make their communication more effective than ever.

With the explosion of available information available to the average person in the 21st Century, managing documents, data and information has become increasingly important in people’s lives. The tools to work on documents, worksheets, and slide presentations more effectively are becoming more and more sophisticated, culminating in Microsoft’s cloud based Office 365.

Nowadays, people are able to utilize online document processing such as Office 365, that can be further customized using Apps for Office. It provides flexible and familiar tools for team collaboration across devices and platforms. It also provides data security and privacy compliance. This is a tool that allows everyone to work from any device.

Visual Studio Tools for Office (VSTO) uses the .NET Framework to customize and extend Office. VSTO fully supports the C# and Visual Basic languages and can therefore leverage the same frameworks, tools, and programming paradigms as the rest of the .NET Framework. VSTO also supports integration with the Office client applications, both in terms of the rich sets of APIs, and the customizability of the user interface.

Generally, Microsoft supports Office customization using Apps or VSTO. Each technology has its pros and cons as described in the table below:

Table 1 Apps for Office vs VSTO

Table Apps for Office vs VSTO

a = available

*: Indicates a dimension where support might be partial today, but where future investments are expected to be made.

**: Relies on standard web offline capabilities (For example: AppCache, Web Storage, page caching) supported by the browser.

 

The basic difference between Apps for Office and VSTO is that Apps for Office runs in multiple platforms (web, mobile and desktop) while VSTO only supports desktop platforms. Apps for Office can support Office for Mac but VSTO can only run on a Windows platform since it uses .NET Framework.

Login Cloud Document Management

Figure 1 Login page using token based authentication via Web Service in VSTO Add In

 

Office App login page

Figure 2 Login page using Apps for Office

 

Both technologies support interaction with web services. Even if VSTO is primarily designed for desktop users, it can retrieve data from any web service and feed it to users via HTTP Requests. Apps for Office supports a limited UI customization, including: command, content and task pane but not backstage menu and context menu customization.

VSTO has better support on UI component customization but its styling capabilities are lacking. Apps for Office’s styling is supported by Fabric JS, which provides a better look and feel.

Task pane using VSTO

Figure 3 Task pane using VSTO

 

Backstage menu using VSTO

Figure 4 Customized Backstage menu using VSTO which Apps for Office can't do

 

Object model provides classes and interfaces that represent the items within a user interface. For example, Microsoft.Office.Interop.Outlook.Application object represents the entire Outlook application.

VSTO can fully support interaction with Office client object models from various applications such as Outlook, Word, Excel, PowerPoint, Access, etc. On the other hand, Apps for Office only provides limited support for the Office client object models that are defined in JavaScript API for Office library.

In 2016, Apps for Office published the OneNote, Project and Access JavaScript API to access its object models. Apps for Office still has room for improvement.

Regarding apps development using Apps for Office, there are some aspects that need to be paid attention to such as:

  • No automation and interaction with host computer. Furthermore, since it is unable to store file to host computers and all the data is stored in the cloud and internet, the offline availability is limited.
  • No support for older Office versions, which people might still use.
  • Limited object client model means and UI customization.
  • No support for across document.

 

VSTO also has its drawbacks:

  • No ability to target multiple host applications with one codebase, meaning each code base is unique for a specific application, for instance the code base for Excel won’t work for Word or Outlook. However, there is a workaround to share reusable components or objects across applications.

Component Model Architechture

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 5 Improved architecture for Office Add In development using VSTO

 

Presentation component which reusable across Office application

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 6 Presentation component which reusable across Office application.

 

  • Need to implement data security using token based authentication when requesting data to web service.
  • Need to create an installation bundle project using Windows Installer XML (Wix) toolset to support chaining installation (prerequisites software and add-in). Prerequisites are .NET Framework and VSTO Runtime.
  • No monetization. Add-in should be developed as supporting software in addition to the main services.

 

Conclusion

Given the variety of choices between Apps for Office, VSTO add-ins and macros, it is important for developers to know the value of each tool.

VSTO add-ins and macros are solutions aimed at solving the users’ needs and will continue to be supported by the desktop platform. Meanwhile, Apps for Office comes with a forward-looking platform (web, mobile, desktop, Mac). It is aimed at bringing web services and web technologies closer to Office developers.

These VSTO add-ins and macros for Office desktop are highly-customizable. Apps for Office is implemented by exposing loosely-coupled web functionality using the chosen web technology with monetization potential, IT governance and ease of lifecycle management and deployment. It is better-suited for creating easily deployable web based solutions that can work across platforms, including the cloud.

In cases where multiple approaches are equally possible, Apps for Office is a natural preference for new projects. For better compatibility with older version of Office desktop, automation to host computer and full UI customization, VSTO still one of the best choices.