tags:

views:

103

answers:

2

I currently have an ASP.NET web application that is serving multiple clients from a single codebase. We use URL rewriting to detect which client is being served (pretty much a virtual vdir) and that drives which master page/themes/module version to run.

Right now, each client can have a different version of a module or the default module. A module may consist of a catalog (grid) of data with various links to other modules, or it can be a chart generation module with options for which data is pulled. The modules need to be themed and localized...

Right now, we make ascx controls (/modulename/clientid.ascx) that are a part of the website's solution. If we haven't registered a control for a client, the default is used. To publish an update to any module a full publish must take place. This can be an issue if a different client has work that isn't ready to be published. For the rewrite I'd like to address this. I'm just not sure what approach to take for this. Can WCF be used here? Maybe add-ins? Each client's implementation is its own dll?

Thanks

A: 

you might want to have a look at making the client controls proper skins that just style/load the rest of the control.

so possiblly a base control that all the client controls load (per module) then the client controls are simply markup, this would mean you only need to change the markup and not to code (so you dont have to build everytime)

d1k_is
A: 

"To publish an update to any module a full publish must take place" - this is a problem you need to address in your architecture.

Look to de-couple your modules from the rest of your code.

Putting your modules in their own assemblies may be the key to this, as you touch on in your question. This could be addressed by writing your own Server Controls rather than User Controls as Server Controls don't require an ascx file.

saille