About plug-in development and office...

Andrew writes about the 40 (!!) different ways of writing a plug-in, and this is just for Office.

A quote that I find interesting and up to debate:

Wouldn’t it be nice to have VSTO support for Outlook? Wouldn’t it be nice to have VSTO support for all Office apps, plus Visual Studio, Visio, and (let’s say) AutoCAD and PhotoShop? Wouldn’t it be nice to have a single, standard mechanism for loading add-ins/customizations/plug-ins into all Office applications, plus any other application that wants to play by the same rules?

Well I think that what VBA was providing, and it was a great achievement. Anyone remember VSA? Visual Studio for Applications? Where did that project go?

I am not against common extensibility points, but the biggest issue with VBA, that I believe led to VSA’s failure, is the tight coupling between the IDE and the toolkit. Obviously, with VBA it was a winner. One language, one IDE, one integration story. But in the .net world, we have many languages that are not coupled with the IDE, issues like loading / unloading plug-ins dynamically, running them in their own AppDomain, different security models (although that’s pretty much resolved by policy), and as such, the problem of marshalling the object model of an application across an AppDomain, and the inherent disappearance of garbage collection (a fact sadly completely ignored by many).

So… would it be nice? Probably. But I would strongly suggest, for the toolkit side of things, that the framework need to involve (cross-AppDomain garbage collection when run in process anyone?), and the focus should be on a proper template system and a set of common interfaces for the toolkit part.

For a limited case, there’s already an Extensibility Application Block from my friend Roy Osherove.

Any comments?