There are now many platforms on which you can build your Office Addins. This is great news, but also very complicated. As a developer, which do you choose? I stumbled through these and learned by making mistakes. Here is what I learned.
VSTO
The Visual Studio team knew that building .NET apps was hard. They built a set of wizards and tools called “Visual Studio Tools for Office” which is really great. If you want to get going quickly, this could be for you. However, if you are an ISV, forget about it. Your application will only run in Office 2003 or later. For me, this is a showstopper.
.NET 2.0
.NET 2.0 seems great! Lots of great features like generics and added support classes. Combined with VS2005 integration, it seems like the perfect platform for writing an Outlook Addin. There are a few big problems with it.
First, nobody has the .NET2.0 runtime. It does bundle with Vista, so hopefully this is a temporary problem. But .NET 1.1 is pre-installed with more than 50% of the XP machines out there. Using .NET2.0 will mandate an extra 23MB install for your customers. Further, the install time for .NET2.0 is excessively slow. Not including download time, it can take up to 8 minutes to install. I’ve watched users squirm in their seats waiting for it to finish, and they blame your application. 1 or 2 minutes would be acceptible, but 5+ minutes is just over the top. This leaves your customers with a bad feeling about your app from the minute they install.
But the biggest problem with using .NET2.0 for Outlook Addins is co-existence with the .NET 1.1 runtime. I’ve not seen any functional errors here, but if you have one addin installed which uses .NET1.1 (say Lookout) and another .NET addin which uses .NET2.0, Outlook startup is very very slow. Loading one runtime is bad enough (users do complain), but loading two is just too much. Unfortunately, there are a lot of existing apps out there using the 1.1 runtime, so if you use the 2.0 runtime, you’ll be slowing down their performance considerably.
If the reason you are excited about .NET2.0 is the built-in ClickOnce feature (a very compelling Auto Update story), you might want to think again as well. This feature turns out to not work for Firefox users without some pretty bloody hacks. (That is, if your customers use firefox, and they download your plugin, it won’t install/update)
Conclusion
If you are serious about writing a .NET-based Outlook Addin, and you want to have large distribution and reach, neither VSTO nor .NET2.0 are suitable platforms.
Stick to VS2003, .NET1.1, and you’ll have smooth sailing. On the positive side, VS2003 was a pretty good platform too. Just don’t forget to write your shim!