One of the biggest hurdles with VSTO is deployment.
As you probably know, the pre-requisites for running a VSTO app (even of the simplest Hello World variety) include:
- .NET Framework 3.5
- Primary Interop Assemblies (PIAs)
- VSTO Runtime
- (Plus Office of course)
Now, packaging these isn’t the issue, since the Visual Studio team have worked hard to make the ClickOnce process a simple and seamless experience. The issue is the size of the download, plus requiring Admin privileges on the box you are installing on. For developers like you and me this doesn’t sound like much of a problem, but for an IT Manager in charge of rolling a simple VSTO app out across an enterprise this can be a significant headache (although Group policy can solve some of this).
And it doesn’t stop there, because if you have a number of VSTO add-ins going out, each of them needs to be installed separately. Finally there’s limitations with how to control post-install events (Eg copying Word or Excel templates into the proper locations).
The VSTO team have been focusing on deployment and security issues over the last 2 releases, and in the VS2008 release they made significant improvements. The recent SP1 for .NET 3.5 further eased the process.
But, it’s a process that still needs improvement.
So, it’s good to see that the team are making excellent progress in VS2010. As the recent PDC presentation from Saurabh Bhatia demonstrated (PowerPoint file here), there’s already key functionality increases.
[UPDATE: Removed the embedded presentation as it was preloading and sucking bandwidth – click here to view]
The main points covered are:
- Multi-project deployment (eg install an Outlook add-in, Excel add-in and Word add-in all at once)
- Post deployment custom actions (eg moving files to user directories, deleting files during uninstall)
- No-PIA installs (no need to include the PIAs – achieved via Type Embedding – a feature in CLR 4.0
This is welcome news to VSTO developers (actually probably more so for IT Managers). The pre-requisites are now down to the .NET Framework and the VSTO Runtime, and complex VSTO applications can be installed with a single install and enabled to configure itself.
It’d be so much simpler if the VSTO Runtime was automatically installed with Office or the Framework, but as we know, Microsoft are trying to reduce install sizes these days not add to them. Deployment will always have its pain points – good to see the team are getting close to an acceptable compromise.