We produce a number of analysis tools which we re-brand and customise for other
ID: 648817 • Letter: W
Question
We produce a number of analysis tools which we re-brand and customise for other businesses to include in their websites.
The tools are typically product comparison, data/trend analysis and report production (in a very particular sector). At present these tools run as a single instance in house, our clients redirect there traffic to us with a URL param specifying the client for branding and customisation.
Up until now we've been using an MVC approach with XSLT views. If a customer wants customisation we add switches in the MVC and/or imports&override in the XSLT. This was manageable for a while but now we have so many versions and customisations for sooo many clients, getting stable builds out the door is becoming a nightmare
We are looking to move to MS asp.mvc3 with using Razor for our views but before this I am wondering are there any standard practices or patterns for developing and managing the kind of mess we are sliding towards?
Cheers, T
Explanation / Answer
If switching views causes application stability issue, you've coupled the view to the business logic too tightly. This also creates testing issues because of the view permutations.
This leads me to think that the Model-View-Presenter (MVP) pattern would suit your development needs better. You can read up on 2 derivations of them on Martin Fowler's site:
Supervising Presenter
Passive View
You won't be able to achieve what you want overnight, but hopefully with some planning and foresight you'll get most of the way there in a couple release cycles.
Also look into good continuous integration practices/tools.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.