I am developing an application written in ASP.NET (C#) which heavily use on Master Page and Session.

As there will be enhancement in the same web application, and will be done by my teammate.

is there any good approach that can enable we to work on the same solution, and delivery the change to UAT / PDN separately?

the change control team of my company don't allow us to create 2 set of code in UAT and merge it into one set in PDN.

any idea is welcome.


migrated from stackoverflow.com Feb 13 '12 at 9:21

This question came from our site for professional and enthusiast programmers.

  • 2
    What are UAT/PDN? – R0MANARMY Feb 13 '12 at 8:29
  • You assume everyone knows what terms you use. I assume UAT is User Acceptance Testing, but I have no idea what PDN is. I am guessing what you mean is that you can't do bug fixes and new development simultaneously? Most organizations don't use UAT the way you seem to be using it – Erik Funkenbusch Feb 13 '12 at 8:32
  • 1
    I'm guessing PDN is production. So two developments get done, acceptance tested separately and then merged before going to production, without that merged set being tested? That sounds like a bad idea to me. – pdr Feb 13 '12 at 9:39
  • DEV -> Development Environment / SIT -> system intergration test environment / UAT -> User Acceptance Test Environment / PDN -> Production Environemnt. sorry for using jargon. – AlphaAu Feb 14 '12 at 4:03

This sounds like a job for continuous integration. If you have only one team mate this is not necessary (I assume this is a typo). If you have just one team mate you should merge every time you pull his changes. This won't take too long unless you are scratching in the same code the whole time, which is a bad idea to begin with.

With multiple team members you can use a continuous integration solution like TeamCity http://www.jetbrains.com/teamcity/ OR CruiseControl .Net: http://sourceforge.net/projects/ccnet/

Let the CI server constantly pull and build changes in the repos and do some testing there to ensure that changes are working nicely. This still requires you to merge as often as you pull changes, which is the better way.

The longer you keep two development branches seperate the more painful the merge will be. So you should focus on constant building, merging and testing as your workflow. The CI server could have IIS and you can test the final product there before it goes to production.

Of course if you have a code base that is easily broken by changes your life will be difficult whatever you do. In that case you should focus on refactoring.

Your users should never test individual branches, they should test the merged end result of the branches that will go into production.

  • 2
    +1 for good answer, but I disagree with this statement, If you have only one team mate this is not necessary. I think CI is always necessary. – maple_shaft Feb 13 '12 at 12:22
  • no, i am wondering can i split the big project/solution into some smaller piece, so that they can use common modules, but don't affect each other. – AlphaAu Feb 14 '12 at 4:06
  • and no, we don't have enough time to wait till one enhancement to finish before start another development. >_< – AlphaAu Feb 14 '12 at 4:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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