Agile Portugal 2011 - Continuous Integration with Microsoft Tools

1,637 views

Published on

Build automation is a core practice for agile methods; using the right set of tools, developers can maintain a working set of code that is built easily and with minimum configuration overhead. Continuous Integration of the code in order to synchronize efforts between all the members of the team is the natural evolution from build automation. And with a little more effort, continuous deployment can be set up, so new features and bug fixes are seamlessly prepared to be tested or even delivered into the corresponding environment. This talk will show how these practices can be easily adopted by teams working in Microsoft/.NET environments, using Visual Studio and Team Foundation Server 2010. The talk is aimed to agile developers working with .NET technologies, who want to begin incorporating build automation into their projects.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,637
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Agile Portugal 2011 - Continuous Integration with Microsoft Tools

  1. 1. Build automation, continuous integration and continuous deployment using Microsoft tools<br />
  2. 2. ALM Team Lead at PlainConcepts<br />Professional ScrumDeveloperTrainer<br />MCTS in TeamFoundation Server<br />jlsoria@plainconcepts.com<br />http://geeks.ms/blogs/jlsoria<br />@jlsoriat<br />JOSE LUIS SORIA<br />
  3. 3. Automatingbuilds<br />Buildingusing TFS 2010<br />Continuous Integration<br />Customizingthebuildprocess, continuousdeployment<br />Agenda<br />
  4. 4. Local (developer) buildautomation<br />Server buildautomation<br />Controlledbuildenvironment<br />Control of dependencies<br />Distributedbuild and processing<br />Supportfor more advencedpractices (integration, deployment…)<br />BuildAutomation<br />
  5. 5.
  6. 6. Defininganautomatedbuild<br />Workspaces<br />Buildparameters<br />Default parameters. Drops folder<br />Agents and controllers<br />Planningthebuild. Continuousintegration<br />Retentionpolicies<br />Automatingbuildswith TFS 2010: TeamBuild<br />
  7. 7. Buildexplorer, managingbuilds<br />Buildqualities<br />Queues and priorities<br />Thebuildautomationenvironment<br />
  8. 8. Setting up a Build in TeamFoundation Server 2010 (in lessthan a minute!)<br />Demo<br />
  9. 9. Maintain a Single Source Repository<br />Automate the Build<br />Make Your Build Self-Testing<br />Everyone Commits To the Mainline Every Day<br />Every Commit Should Build the Mainline on an Integration Machine<br />Keep the Build Fast<br />Test in a Clone of the Production Environment<br />Make it Easy for Anyone to Get the Latest Executable<br />Everyone can see what's happening<br />Automate Deployment<br />Continuous Integration practices<br />
  10. 10. Configuring a TFS BuildforContinuous Integration<br />Demo<br />
  11. 11. Maintain a Single Source Repository<br />Automate the Build<br />Make Your Build Self-Testing<br />Everyone Commits To the Mainline Every Day<br />Every Commit Should Build the Mainline on an Integration Machine<br />Keep the Build Fast<br />Test in a Clone of the Production Environment<br />Make it Easy for Anyone to Get the Latest Executable<br />Everyone can see what's happening<br />Automate Deployment<br />Maintain a Single Source Repository<br />Automate the Build<br />Make Your Build Self-Testing<br />Everyone Commits To the Mainline Every Day<br />Every Commit Should Build the Mainline on an Integration Machine<br />Keep the Build Fast<br />Test in a Clone of the Production Environment<br />Make it Easy for Anyone to Get the Latest Executable<br />Everyone can see what's happening<br />Automate Deployment?<br />Continuous Integration practices<br />
  12. 12. Build Templates based in Workflow Foundation<br />VB.NET syntax<br />Build steps are stated as workflow activities<br />Activities expose properties and can return values<br />Container activities available<br />TFS specificactivitiesforbuild and lab<br />CustomizingTeamBuild<br />
  13. 13. Sets Build Number<br />Reserves a Build Agent and cleans it working folder<br />Labels and gets the source code<br />Compiles (multiple configurations can be stated)<br />Runs tests<br />Associates changesets and workitems<br />Analyzes impacted tests<br />Copies results to Drops folder<br />Performs the Check-In (if using Gated Check-In)<br />Whatthe Default Templatedoes<br />
  14. 14. MSBuild<br />Convert Workspace item<br />Agent Scope<br />Write build message, error, warning<br />Copy directory<br />Find matching files<br />Invoke process<br />Useful TFS Buildactivities<br />
  15. 15. Sequence<br />Assign<br />Parallel and Parallel For Each<br />For Each, While, Do While<br />Error Handling (TryCatch, Throw)<br />Switch<br />Invoke Method<br />UsefulWorkflowactivities<br />
  16. 16. Code-based (.NET), orXAML<br />Add TFS Buildattributes<br />Neededreferences:<br />Microsoft.TeamFoundation.Build.Client<br />Microsoft.TeamFoundation.Build.Workflow<br />CustomWorkflowactivities<br />
  17. 17. Customizingthe CI buildforautomateddeployment: Web DeploymentToolkit, Database Professional<br />Demo<br />
  18. 18. Maintain a Single Source Repository<br />Automate the Build<br />Make Your Build Self-Testing<br />Everyone Commits To the Mainline Every Day<br />Every Commit Should Build the Mainline on an Integration Machine<br />Keep the Build Fast<br />Test in a Clone of the Production Environment<br />Make it Easy for Anyone to Get the Latest Executable<br />Everyone can see what's happening<br />Automate Deployment<br />Maintain a Single Source Repository<br />Automate the Build<br />Make Your Build Self-Testing<br />Everyone Commits To the Mainline Every Day<br />Every Commit Should Build the Mainline on an Integration Machine<br />Keep the Build Fast<br />Test in a Clone of the Production Environment<br />Make it Easy for Anyone to Get the Latest Executable<br />Everyone can see what's happening<br />Automate Deployment<br />Continuous Integration practices<br />
  19. 19. TeamBuild at MSDN: http://bit.ly/j3bCFn<br />Continuous Integration (Martin Fowler): http://bit.ly/1k01VP<br />Custom WF activitiesforTeamBuild (JimLamb): http://bit.ly/cPYZhF<br />Microsoft Web Deployfor IIS: http://bit.ly/dh4ZIP<br />VS 2010 Database Professional: http://bit.ly/fRaFPZ<br />Thispresentation at: http://www.slideshare.net/jlsoria<br />jlsoria@plainconcepts.com<br />http://geeks.ms/blogs/jlsoria<br /> @jlsoriat<br />Thankyou!!!<br />

×