Hey All -
We're starting development of our online product using ASP.NET 2.0. One
of the requirements is that it is rebrandable, top to bottom, for any
customer. That is, if a customer wanted to change from a left nav to a
top nav, they can. If they wanted to change around the order of input
prompts, they can. We intend to use compiled server controls, and have
a clean separation between the web UI and the compiled code.
Additionaly, a single instance of the app needs to be able to support
multiple themed customers, since we host the app; it's not 1 customer
per instance.
At first the obvious choice seemed to be apply themes, skins, & masterpages. The first 2 are OK, but as
another guy
has come across the same problem that you can't put the masterpage in
with the theme. One idea would be to have a masterpage named as the
theme. For example, if there's a theme, 'ClientX', it would load and
use ClientX.master. This should work, however it would be a little
messy to maintain. Another option could be to ditch master pages all
together, and use nested controls to layout the site. While certainly
possible, it would be a pain having to put the same stuff (header,
navigation, etc) on every page, which MasterPages do away with nicely.
Any thoughts on how this could work? Maybe fixed master pages (ie,
leftnav, topnav) that contain the basics, and they can only customize
what's available in the content areas? Another bit of info is that this
isn't like DotNetNuke...they can't do this in the browser. If they want
it branded, we work with them to generate the files necessary to theme
it appropriately.
Thanks in advance,
John