Monday, February 8, 2010

What is Configuration management and Version control in .Net?

In large software companies where multiple teams may be working on a single product there is the need to control what versions or configurations of a file/subsystem there are in case of:





1) One team overwrites a file that was recently changed by another team... wiping out their changes





2) A new file was written over by an old version of the file





3) All teams don't know which version may have the debug configuration on and which one has it off.





4) What version and configuration file is going to be in the next version of the official software product.





Version control is crucial in large companies where they have to know a version of a file or in the case of a bug, be able to roll production back to a previous version where the bug may have been introduced.





So lets say I am team A and I introduced some new code which had a bug. You, on team B, come along and add on to my version with some new code because you know my version was the newest. Then I realize the bug a couple weeks later. I can roll back to the version previous to my version and fix the problem. Only thing is, I wipe out your changes. But with your versions of the file, you could easily put the changes back in.





It is somewhat the same with configurations. Certain files may be configured for debugging or production environments and it is a necessity to know which is which.





Seeing this need, Microsoft put it into the .NET products to help solve that problem.





I hope I didn't confuse you too much with this answer. I think the point has been well made.





Hope this helps! Enjoy!

No comments:

Post a Comment