Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Product Architecture
Message
 
To
05/02/2009 13:35:12
Mike Cole
Yellow Lab Technologies
Stanley, Iowa, United States
General information
Forum:
ASP.NET
Category:
Other
Environment versions
Environment:
ASP.NET
Miscellaneous
Thread ID:
01379573
Message ID:
01379588
Views:
26
>I am working on a new project that is going a little out of my expertise (if I have any). Our company is going to produce a web application that we will re-sell to other companies. We will have a canned product (which is straightforward enough), but we will also allow customizations to be made to a customer that requests it. How would we go about this without recreating our logic/data structure?
>
>My first thought is to write the canned product which will have all of the core functionality. The customizations would be a separate application that would inherit from the core functionality. Is this the right way to do this? We want all core functionality to be available to everybody and all future core modifications to also be applied to the customizations.
>
>Help me Rhonda, help help me Rhonda. Are there any Rhondas on here?

There isn't any one answer for this. Depending on the types of things you expect to change, you may need to architech things differently to allow for them. For example, adding things to a menu could be pretty easily handled by making sure you are using master pages - just swap in a new master page for each customer. New/additional modules are pretty straightforward as long as you build them into new projects. Changes to existing functionality can be done via another project/assembly (inherit from your "default" implementation). Make sure you are using interfaces instead of actual classes for parameters and you could take advantage of any of the dependency injection frameworks to allow you to swap in different classes at runtime via a config file. You'd ship the new assembly to the customer, change the config and suddenly your app is using CustomerXOrderProcessing class instead of the default OrderProcessing class.

Just some (not very well detailed) ways of handling this...
-Paul

RCS Solutions, Inc.
Blog
Twitter
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform