Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

First of all, sorry for my English. We've developed a Web Application using ASP.NET and Sql Server. We've started selling it and of course are still continually improving and developing it.

The question is, how do we go about updating each client's version of the site? We have, maybe, 50 customers. 50 different folders and 50 different db's sounds like a bad idea. Is there any known method for solving this kind of scenario?

For Explain: We are developing a Crm, for 50 companies. They will have 10 users maybe. It makes 500 users and their customers and products.

share|improve this question
1  
Huge question: What if I tell you Continuous Integration and Version Control? Does your client request personal customization? you are in a step where this questions should already has more than an answer –  AngeloBad Jun 28 '12 at 13:25
    
Thus topic was recently discussed. Look at this post - [Evolution of an Application: how to manage and improve core engine][1] [1]: programmers.stackexchange.com/q/154264/57164 –  Yusubov Jun 28 '12 at 13:27
    
Thanks SnOrfus, for teaching English :) @AngeloBad Can Version Control softwares manage a few multiple folders? Nope, they dont request. –  Muhammet Göktürk Ayan Jun 28 '12 at 13:29
    
So you have 50 different source code? –  AngeloBad Jun 28 '12 at 13:34
    
No. Are you saying, use one folder and one db? –  Muhammet Göktürk Ayan Jun 28 '12 at 13:37

3 Answers 3

If each customer has a separate copy that you regularly ship updates to, your application must be able to handle upgrades gracefully.

  1. Database versioning

    You must store the schema version in the database. Each time you change the schema, you have to include logic in an admin module so customers can upgrade the database (semi-automatically). Each version upgrade should be defined as an action, and upgrading across several versions means running the actions one after the other.

  2. Application versioning

    When you install new versions of the software, you have to provide a migration procedure. Sometimes this means that all customer changes must go into a special folder that is copied back into your software after upgrade. At other times it means you must make an installer that "patches" the installed copy.

share|improve this answer

The way you described that you have one application and its been used for several different clients and as you mentioned you have 50 folders and 50 databases it means you have the entire application on your server or one server probably.

If I get the descriptions correct then I would suggest you look into the Whitelable Solution for this application. check this link

You would have all the code in one place and one database {or you may use different if applicable}

hope this helps

share|improve this answer
    
One folder maybe, but one database will work slowly. Doesnt it? –  Muhammet Göktürk Ayan Jun 28 '12 at 13:44
    
Yes that's why I said {or you may use different if applicable}, well yes I think my statement wasn't much clear in making this sense. But, yes you may use different databases for different clients –  Junaid Jun 28 '12 at 13:59
    
Ok. How can I manage it? –  Muhammet Göktürk Ayan Jun 28 '12 at 14:01
1  
@MuhammetGöktürkAyan, if your database is designed correctly it should be able to handle terrabytes of information. If you don't know how to do that designing, then you should hire a database expert not let application programmers (or worse an ORM) design your database for you. One database should be able to support thousands of customers' data. You do not want to have to try to keep 50 different versions of a database and web application in synch as you upgrade your system. –  HLGEM Jun 28 '12 at 14:05

Generally it is not possible to update each client version.

One solution is to provide updates as additional modules or plugins. So there is no need to modify the core.

It works in the case of php application called wordpress.

Wordpress cms is used to develop blog websites.

In wordpress you can add or remove plugins,which provides additional features.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.