locked
Designing multiple sites, all utilizing same core engine? RRS feed

  • Question

  • User-1335903275 posted

    Hello.

    A few months back, our client asked us to duplicate one of his current websites, using the same functionality as his original, but with a different look and feel & some new text.  So we simply copied the code from the original asp.net project & created a 2nd one.  A month or two later, he came back again, and said he needed a 3rd duplicated site.  Shortly after, he requested a 4th.  For each one, we simply copied the original site and created a new asp.net solution.

    The problem now however, is we have all these sites, with the exact same functionality.  So if he asks for a change in this functionality, or we find a bug, we need to go back & update all 4 projects.

    So we need to fix this, so that when we make updates to pages or code, all sites reflect this change, & we don't have to update all 4 sites.  What's the best way to go about this?  How can we create a solution that's easily maintainable for us, but still has 4 unique look & feels & text, and also 4 separate domain names?

    Thanks

    Wednesday, January 23, 2013 2:21 AM

All replies

  • User-425639139 posted

    Looking at your Scenarion what I would do is architect a Solution in such a way that each website has its own "Resource File" that would contain its Customized Text and Image Path so all you would need to do is change the Data in the resource file and it should customize as per the need. Have the Resource file dependant on either Domain name or some type of configurable value kept in Web.config.

    See there may be different way as well but this one looks pretty straight forward and easy to implement.

    Wednesday, January 23, 2013 2:34 AM
  • User158819198 posted

    Hi,

    Are you using the layered structure architecture?

    please give us more information about your website architecture.

    Anyway, in order to achive this goal if you would build your website from scratche, I would sugest the following architecture:

    Separate your solution in 4 separate layers:

    1. DataAccess layer - with all the db connection logic and repositories with CRUD operations

    2. Interfaces - With the abstractions

    3. Service layer - With all the required business logic.

    4. UI - I sugest build your website with MVC

    In that case only diferance between your websites will be the MVC part only which contains, text , images, HTML CSS...

    Every time that you need to change somthing in Service layer (your core) you change it once, test it and compile into dll's and then copy it to each server where your websites are running.

    Tuesday, January 29, 2013 2:28 AM