In a recent blog by Soma Segar, Office client developer enhancements with VS 2010, indicates that the next version of VSTO, version 4.0, comes with some great news, especially the PIA-less interoperability. In addition, C# will have an improved support for interoperability coding against Office.
From a general point of view I hope that the upcoming VSTO version includes new extension for Pivot Tables as well. If so then we can use ADO.NET/LINQ to populate Pivot Tables. VSTO 3.0 includes extensions for Chart, ListObject, NamedRange and XMLMappedRange and the Pivot Table, at least for me, is a natural object of this collection.
For Excel developers perhaps the most important question is about UDFs. Using VSTO 3.0 for UDFs, both add-ins and with workbooks, requires that we write VBA wrappers for every UDF. Compared with the other options we have; using VBA, using managed Automation add-ins and using XLLs, using VSTO for UDFs is simple the less attractive approach to use. Will VSTO 4.0 make a change or not?
Hopefully some of the news, like the PIA-less interoperability and customize the deployment package, also target the Shared Add-in template. After all, using managed COM add-ins is still an important area.
The high pace of releasing new VSTO versions may create an unwanted situation; today’s issues are not solved with the present version. In other words, instead of releasing major SPs new versions are released. The question is to which degree we should follow the pace that Microsoft put up. In my own opinion I see a need to accept to upgrade until VS and VSTO have reached the maturity stage. When this happen we will get a similar situation with the development tools as with Excel, i.e. new versions only compete against older versions.
Speaking about VBA, I have spent considerable time with the Ribbon UI and VBA. In VSTO we have fully support for the Ribbon XML, we have access to a Ribbon Visual Designer where callbacks can automatically be generated. In VBA we do not have the same support and in fact have no support at all. It’s vital for us VBA developer to get access to an object model to manipulate the Ribbon UI, get a standard GetCustomUI event added to the Workbook object and a CreateCustomUI method added to the Commandbars Objects. In view of the present situation I can only conclude that VBA is classified by Microsoft as a second class citizen.