VSTA's run-time assemblies implement 2-way, version-resilient, secure, and robust communication between your host application object and customization macros (addins).
At runtime, addins communicate through a proxy layer with the host application (and vice-versa), utilizing contracts based on System.Addin.Contract's IContract. The Managed Addin Framework (MAF) is the basis for VSTA's runtime communication (VSTA's runtime assemblies require MAF).
These are VSTA's runtime assemblies (with some general commentary):
Microsoft.VisualStudio.Tools.Applications.Contract.dll (enable proxy/adapter communication across app domain)
These contracts expose additional infrastructure functionality to make it easier to communicate with addins and hook up host objects.
Microsoft.VisualStudio.Tools.Applications.InteropAdapter.dll (generic interops for Host app's COM interfaces)
This assembly removes the need for PIAs in your COM host and provides a migration strategy -- in the next version of your app, a com object can be replaced by a managed object and the addin is none the wiser.
Microsoft.VisualStudio.Tools.Applications.AddInManager.dll (addin collections, loading/unloading, app domain isolation)
This assembly provides helpers that make it easy to manage collections of addins. This greatly simplifies issues associated with loading/unloading addins in seperate app domains.
Microsoft.VisualStudio.Tools.Applications.Adapter.dll (communication from/to host application objects)
The contracts in System.Addin.Contract are of limited value without this, the implementation: The Adapter.dll assembly provides a default implementation of all of the contracts in System.Addin.Contract; which is decidedly non-trivial.
You will distribute these assemblies, your proxy assembly, and your host application to load and run existing addin assemblies (compiled macros).
Posted
Aug 18 2006, 12:17 PM
by
Gary