views:

60

answers:

2

Hi,

Could you please give me some tips/web site regarding a software architecture to allow a .Net application to be ready for add-in (allow third partners to develop add-in to plug on top of application)

Regards

+2  A: 

Check the System.Addin namespace on MSDN

Start there, play with that. Then I would also recommend you look at Mono.Addins. You can even look at the Mono.Addins SVN trunk to see how the implementations work on the inside. You will need to understand how interfaces and attributes play a vital role in making your plugin architecture work.

The Microsoft Extensibility Framework may still be under development, but it is worthwhile to become familiar with it as Johannes points out. If your team is uncomfortable in moving forward with MEF for your production project, at the very least, have some knowledge with the framework.

dboarman
Sounds good. Thanks for the likns.
Stéphane
+3  A: 

There are complete frameworks built around this idea. One of the most popular is the Managed Extensibility Framework (MEF) by Microsoft. It is open source btw.

Johannes Rudolph
Downside on MEF is that it's currently only available for .Net 4.0: http://www.codeplex.com/MEF
dboarman
MEF is under developpment ... not an option for a production application
Stéphane
Which open source application isn't? Which production software isn't? Whether it is stable or not, that's what counts. The rest is politics.
Johannes Rudolph
.NET 4 is at release candidate level, with release about 6 weeks away. MEF was also used for Visual Studio itself. I'd say that MEF is ready for consideration in a production application, if that application is ready to move to .NET 4.
Cylon Cat