Website Architecture Module Versioning
<p>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.</p>

<p>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...</p>

<p>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?</p>

<p>Thanks</p>
