I've been reading heaps of stuff on build and deployment for web apps, but I'm still struggling to get my head around the pros/cons of each aspect.
In particular:
build/Config transforms - when and where to use them.
Publishing profiles (with config Transforms) - these seem awesome, however they don't appear to be fully integrated with the build process... are they not idea for corporate use, are they mostly intended for single developer models?
publish/deploy from VS and with Build servers
eg: Debug > Release I "get", but when you throw around terms like "staging", "test", "UA", "Preproduction" and so on, and you start putting stuff in various config files it starts to get quite messy...
Are you supposed to just go with "Debug/Release" as builds and then create "targets" for publishing -> local, test, UAT, preprod, prod? Does this need to be different if you are using a build server or TFS?
OR are you suppose to put all your settings into web.BUILD.config things...
Using TFS and Build Definitions you don't seem to get any access to the publishing stuff (apart from the drop location) - are you required to setup a different work flow building from a BuildServer than build and publish from VS?
How are you INTENDED to manage this stuff? In particular the situations where debug/release doesn't necessarily have anything to do with the target environment -> eg if I want to set "debug" for "production" for some reason, I don't necessarily want all
the settings from DEV... this is an overly simplified example, because you can just add the debug elemnt into the release config transform, but what if there are 20 such settings that I want to toggle that are normally in DEV, but need to be in PROD, but not
the other 150 settings... how is this to be managed, do you need to go with somekind of CONFIG DB when your system gets tto this level of complexity or is this catered for in some way that I don't understand...?
If someone could guide me with useful advice on groking this stuff or point me at some useful docuemtnation/bestpractice stuff for figuring all this out, I'd really appreciate it.
Member
23 Points
102 Posts
Understanding build, publish, deploy differences in MSBuild/Visual studio
Jan 05, 2014 11:47 PM|noJedi|LINK
Hi there,
I've been reading heaps of stuff on build and deployment for web apps, but I'm still struggling to get my head around the pros/cons of each aspect.
In particular:
eg: Debug > Release I "get", but when you throw around terms like "staging", "test", "UA", "Preproduction" and so on, and you start putting stuff in various config files it starts to get quite messy...
Are you supposed to just go with "Debug/Release" as builds and then create "targets" for publishing -> local, test, UAT, preprod, prod? Does this need to be different if you are using a build server or TFS?
OR are you suppose to put all your settings into web.BUILD.config things...
Using TFS and Build Definitions you don't seem to get any access to the publishing stuff (apart from the drop location) - are you required to setup a different work flow building from a BuildServer than build and publish from VS?
How are you INTENDED to manage this stuff? In particular the situations where debug/release doesn't necessarily have anything to do with the target environment -> eg if I want to set "debug" for "production" for some reason, I don't necessarily want all the settings from DEV... this is an overly simplified example, because you can just add the debug elemnt into the release config transform, but what if there are 20 such settings that I want to toggle that are normally in DEV, but need to be in PROD, but not the other 150 settings... how is this to be managed, do you need to go with somekind of CONFIG DB when your system gets tto this level of complexity or is this catered for in some way that I don't understand...?
If someone could guide me with useful advice on groking this stuff or point me at some useful docuemtnation/bestpractice stuff for figuring all this out, I'd really appreciate it.
Thx
All-Star
23975 Points
4084 Posts
Re: Understanding build, publish, deploy differences in MSBuild/Visual studio
Jan 07, 2014 12:47 AM|Starain chen - MSFT|LINK
Hi noJedi,
These links may benefit you:
# MSBuild is part of Visual Studio 2013
http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx
# Differences between MSBuild v4.0 and VS 2010 Build
http://stackoverflow.com/questions/18489611/differences-between-msbuild-v4-0-and-vs-2010-build
# "Msbuild Build and Publish" Vs. "Visual Studio Build and Publish"
http://social.msdn.microsoft.com/Forums/vstudio/en-US/ec98e376-3e08-406e-a67f-c1a77e388915/msbuild-build-and-publish-vs-visual-studio-build-and-publish?forum=msbuild
# Understanding the Difference Between TFS Builds and VS Builds
http://social.msdn.microsoft.com/Forums/vstudio/en-US/7f0badc8-cd05-48d0-ba49-31565f2950cf/understanding-the-difference-between-tfs-builds-and-vs-builds?forum=tfsbuild
Thanks
Best Regards