Presentation on theme: "An Intro to ALM Using TFS and Visual Studio for Source Control, Build Automation, Continuous Integration, Deployments, and Task Management."— Presentation transcript:
1 An Intro to ALMUsing TFS and Visual Studio for Source Control, Build Automation, Continuous Integration, Deployments, and Task Management
2 What is ALM? Application Lifecycle Management Another great Buzz Acronym for resumesProcess and tools for design, development, testing, deployment and management of software projects.Creating software is more than just writing codeMany of the concepts and implementations in this demo are easy and straightforward. Putting it all together in a complex environment is not.
3 Our Setup TFS On Premise. Running on my laptop. We’ll use TFS for: Task TrackingSource ControlCI – Continuous IntegrationAutomated DeploymentsNot included:Automated TestingQA IntegrationDev OpsMore
4 Why is this important Task Tracking Source Control Continuous IntegrationAutomation
5 Don’t Wait This may be the most important slide in this section. Don’t allow ALM to be an after thought… you’ll never have time later.
6 Set Up TFS Customize TFS to meet your needs Iterations Areas Teams Create your own Work Item Types (Enhancement, Deliverable)Edit WIT add fields, defaults, lists, rules, etc.Tasks – Organize by feature, not by file
7 The Plan Create a new project Set up a CI Build Then add a database and add that to the CI BuildSetup a “Deploy” BuildCreates a Deployment PackageDeploys to QAEvery build is a release candidate. No touch.Setup a process to deploy same package to Production (or UAT, etc)
9 CI BuildThis build will “check our work”, compile, deploy to Integration ServerSet Source Control FolderBuild DefaultsCopy to: \\asuslt\BuildOutputAgent SettingsCreate Work Item on Failure: FalseDon’t forget an original name for the builds - ANDY
10 Set up IIS (This is done already) Install Web DeployCreate Site EndToEndIntegration (port 71)Create Site EndToEndQA (port 72)Create Site EndToEndProd (port 73)
12 Set Up Publish Profiles and Transforms SysTest.pubxmlQA.pubxml<appSettings><add xdt:Transform="Replace" value="Integration" key="Environment" xdt:Locator="Match(key)"/></appSettings>Web.Integration.configWeb.QA.config
13 DacPacCreate Project(Databases already exist on server, for ease of demo)Create Dev Publish ProfileDev.publish.xmlPublish ManuallyCreate Integration ProfileIntegration.publish.xml/p:DeployOnBuild=true;PublishProfile=Integration;CreatePackageOnPublish=t rue /t:build /t:publish /p:SqlPublishProfilePath=Integration.publish.xml
15 Deploy Build Trigger: Manual /p:DeployOnBuild=true;PublishProfile=QA;CreatePackageOnPublish=t rue /t:build /t:publish /p:SqlPublishProfilePath=QA.publish.xml
16 Getting to UAT and ProdI don’t have access to UAT and Prod Servers. Only Network Admins have access.parameters.xmlsetparameters.xml.bat file deploymentDacpac: can be scripted or run in SQL Management Studio
17 parameters.Xml<parameters> <parameter name= "Environment" description="Please provide an environment name" defaultValue="params default" tags=""> <parameterEntry kind="XmlFile" scope="web\.config$" " /> </parameter> </parameters>
18 Set Up BuildsCI/p:DeployOnBuild=true;PublishProfile=Integration;CreatePackageOnPublish=true /t:build /t:publish /p:SqlPublishProfilePath=Integration.publish.xmlDeploy/p:DeployOnBuild=true;PublishProfile=QA;CreatePackageOnPublish=true /t:build /t:publish /p:SqlPublishProfilePath=QA.publish.xml