views:

218

answers:

1

I was curious how in the typical ASP.NET MVC mentality one could build a platform that others could develop plugins for. I mean, how would those plugins look like ? Like exiting user controls for WebForms, encapsulating all layers in themselves, or three different files representing the model the view and the controller. I should develop the core of a CMS, that I'd like others to build plugins for later on. Which mentality is better for that -classic Web Forms or MVC ?

I need developers to be able to separately build components for that. Is it possible to encapsulate the MVC directory structure in a component dll file and then when I reference the dll, to be able to directly access the component's model, view, or controller as part of the general MVC structure ?

+1  A: 

The most promising component techniques have come from the guys over at lostechies.com and Mvccontrib in the form of Portable Areas. Portable Areas allows an entire MVC app to be appended onto an existing application. So its not just a UI component but also provides all the work flow and screen integration as well.

Open Forum does something like this as well. I don't know how, but it is very plug and play.

For straight up plugin architecture there is an interesting screencast and source code for Rob Connery's link text. He takes advantage of the App-Code directory to slide new plugins into place without having to edit the main site.

jfar
I checked OpenForum out. It seems that the guys are using an init method that "injects" the addresses of the new entity's models, controllers, and views in the routing table, and refreshes it. Kind o cool, but I am afraid that it might create additional dependencies