Our company has a fairly large ASP.NET web application. The app is already broken up into distinct ‘areas’ of business functionality. I’m looking for some strategies we can use to split this web application into separate buildable/versionable modules.
Primary goal being to:
Enable us to deploy the web app with only select areas of functionality.
I envision the parent web app as a ‘shell’ that can host ‘plugins’ which can register themselves as menu items on the parent web app’s navigation hierarchy. The parent web app would contain the master page, stylesheets and common controls used by the plugins.
What kinds of ideas do you have for implementing something like this?
I would do sub-web projects. Each website is a sub-project of the parent website. You can write an HttpModule that checks some data store to see if that customer has access to that site (module) and deny access in that way. Scott Guthrie has a nice post about how to set up sub web projects here.