Software Release by Customers

4

The system I develop has several customers who use it. But I have a problem which is this: if I release a new version of the system, I upload it to ftp , all clients that use it have access to this new version and the system is updated.

I do not even know if this is the best way, but I really need to figure out a way to circumvent this barrier, because if I make a change in the code it could affect even the clients who do not need that new version and this would generate a lot of pain head.

My question is this: is there any way I can do this release of the versions so that I can choose which clients will have access to that new version?

    
asked by anonymous 16.07.2015 / 23:05

2 answers

2

What you want is to release the version per client, and for this you need to have a common point with the client; in order to work you have to put in the client an item that may indicate that you need to update, so it will indicate the version that the client has to use.

An idea is before the file is downloaded, the client queries a WEBSERVICE that downloads the corresponding version of the client.

So you can have a general version of the releases released to clients, so you can have control of the clients which versions they use, which ones are updated, and which ones need to be updated, will have a thinner control over the available versions.     

17.07.2015 / 16:21
2

Make a tag by version

The first step is to keep the application code in the version that the customer has purchased. The best way is to freeze the code when the version is stable. In your case, which uses SVN, this can be done by tags .

The strategy is as follows:

  • When there is a desire to establish a version, a branch should be generated from the current revision of trunk ;
  • The branch will be the candidate version. Release and test;
  • Try to make corrections within branch . Replace whenever possible with trunk ;
  • When there is a good indication of stability, generate a tag from the branch . Tags can not be modified.

In projects I worked on, the following structure was quite common:

  • trunk
  • branches
    • v1.1-RC
    • v1.2-RC
    • v.1.2.1-RC
    • ...
  • tags
    • v1.1
    • v1.2
    • v1.2.1
    • ...

Considering that you are using ASP.NET MVC, Entity Framework, and Code First, no other controls besides the on-screen version number (which can be Hard Coded ) are required. p>     

17.07.2015 / 00:38