Omar
Omar

Reputation: 40182

Modular Architecture - ASP.NET MVC

I've searched (google and SO) about this topic and couldn't find a thorough answer to my question(s).

I'm building an ASP.NET MVC 2 application that will be distributed to other people (with source code). These people will need to create modules/plugins that use the application's base.

The base is a simple ASP.NET MVC Application with Linq-To-Sql file, repositories, authorization/membership.

Is it possible to create a plugin that would work by simply adding a .DLL file in a folder?

Right now, you can create a "plugin" by opening the source project of the base application, creating a few controllers/views that do somethings, using the base application's authorization/membership and repositories. You would also be required to edit the Linq-to-Sql file and add in any tables that you need.

However, to "install" this plugin, I would need to copy the controllers/views for this plugin into my base application and edit the Linq-to-Sql class to include the tables necessary for this plugin, then build the solution. Is there a simpler method?

I read of .DLL plugins, but how would someone build a plugin like this starting from the base application.

If the 'plugin' creates tables with foreign keys of the "User" table in the main application, how does one separate those tables/relationships in a separate file and have the base application recognize those relationships?

As you can tell, I'm asking multiple questions that are kind of all over the place. This is a new topic/issue for me and I have no idea where to start. Theme mere concept of having my application interact with a separate .DLL file is foreign to me.

Any help/links would be greatly apprecaited.

Upvotes: 1

Views: 5253

Answers (2)

queen3
queen3

Reputation: 15511

Does this answer the same question: Plug-in architecture for ASP.NET MVC?

Upvotes: 1

Gregoire
Gregoire

Reputation: 24832

I think this could be applied to mvc too: http://msdn.microsoft.com/en-us/library/ms972962.aspx

Upvotes: 0

Related Questions