Say my company is going to build a complicated asp.net web form education system. One of the module is web based registration. To make it flexiable, we decide to use user control(ascx) with rule-engine (work flow) regulating all business logic behide them. Thus in future,for different clients, we can simply config basic existing rules or adding new rules.(Rules stored in db or XML per client).
Now the question is how to deal with the user controls (ascx)? My opinion is for different client build diffrent user control from scratch. other voice is like reuse existing user controls.
1
Well it depends, if each client has their own functions that are unique to how they use the application then yea, build the user controls from scratch.
If they don’t, they basically are all doing the same thing just need it branded or whatever for their corporation, then their is no point re-inventing the wheel.
My company handles it like this: We have a central platform that all our websites are based off of. If a particular website and form application isn’t that different from our base generic one then we build on top of that central platform.
If the application form is significantly different, then we branch our main platform and create a new project for that individual program. So that we don’t end up with a ton of spaghetti program-specific code in our models/controllers.
TLDC: Don’t decide now, be flexible, ultimately it should be determined by the client; which one will create the least amount of work, and the most maintainable platform.