Category Archives: 17177

Building a Release Pipeline with Team Foundation Server 2012

Last week Microsoft Patterns & Practices released a new guide about release management using TFS 2012. I had the opportunity to read the guide during development and it has both great guidance, hands-on labs and concrete tooling to support the process. I personally really liked the section on getting good feedback, where the authors shares some good examples on how to use TFS to understand and optimize cycle times in the release process. I definitely recommend taking a look at this guide if you in any way are involved in the software release process.

From the guide:

“The goal of this guidance is to put you on the road toward continuous delivery. By continuous delivery, we mean that through techniques such as versioning, continuous integration, automation, and environment management, you will be able to decrease the time between when you first have an idea and when that idea is realized as software that’s in production. Any software that has successfully gone through your release process will be software that is production ready, and you can give it to customers whenever your business demands dictate. We also hope to show that there are practical business reasons that justify every improvement you want to make. A better release process makes economic sense by providing:

  • Faster time to market
  • Better quality software
  • More productive employees

Follow the team at Trey Research as they refine their processes and move from a mostly manual pipeline to one that’s mostly automated.”

Start reading the guide here.

Community TFS Build Extensions, September 2013 release

The latest releases of the Community TFS Build Extensions has just been released! Again new activities, improvements to the TFS Build Manager and support for the 2013 platform just in time for the TFS 2013 RC release.

Get the latest bits here: https://tfsbuildextensions.codeplex.com/releases/view/109604

Release Notes

The September 2013 release contains

  • VS2010 Activities(target .NET 4.0)
  • VS2012 Activities (target .NET 4.5)
  • VS2013 Activities (target .NET 4.5.1)
  • Community TFS Build Manager VS2012
  • Community TFS Build Manager VS2013

The Community TFS Build Managers for VS2010, 2012 and 2013 can also be found in the Visual Studio Gallery where updates will first become available.
This release resolves all the features and issues listed below

TFS Build Manager (2012/2013)

12104 TFSBM – Search and Replace workspace mappings
11787 TFSBM – Show Queue Time
11981 TFSBM – suggestion – Duration Column
11069 TFSBM – View Build Logs
11882 TFSBM – Clone BuildDefinition to different TeamProject
12144 TFSBM – Implement Build Definition filter
12142 TFSBM – Trigger on Build Definitions is not user friendly
11784 TFSBM – Queue High Priority Build
11746 TFSBM – Change Drop Locations Case Sensitive

Activities

12108 TfsBuildExtensions.Activities.dll requirement
12167 Add IncludeMergesInBuild Activity
12168 Added GetCodeCoverageTotal activity
12169 Add Sonar activity to launch a SonarQube analysis
12063 Build Steps Duration Summary Activity
12102 Add Support for VS2013 Detection to VSDevEnv activity
12045 Make TFS build related activities more consistent with the rest of the code by deriving from the base class
12044 If no priority is passed QueueBuild the build fails with a cryptic exception
11969 Missing assemblyCompareMode argument for CodeMetric activity
12143 Perf improvement for GetLastGoodBuild

Extending TFS Work Item using a web page and the WebpageControl

Have you ever wanted to add custom behavior to the TFS work item tracking system? TFS is very flexible when it comes to adding fields, rules and state transitions. But when we need more specialized behavior there is usually only one solution – to implement custom work item controls. It’s pretty straight-forward to implement a work item control (http://witcustomcontrols.codeplex.com/ has some good examples), but we need to implement the control for each client we want to use it (Visual Studio, Web access) and also the control must be deployed to each machine where the client is run.

A much simpler approach can be to implement the extension as a web page and host the web page in the work item form. This solution works with any client (since it’s just a web page) so you won’t have to have one implement for each client type. In TFS 2010 the WebpageControl was introduced, which can be used to host a custom web page inside a work item form. We can configure the control to pass data from the work item to the web page when the control is displayed. So with the WebpageControl we can use the TFS API to write a web page that can surface more or less any data in the work item UI.

In this example I will extend the Test Case work item type with a tab that shows the test suites where the test case is used together with the status of the latest test run in each of the suites.

Note: it’s recommended to work with TFS customization in a sandbox environment so you don’t disturb production use of your TFS. A very easy way to get a development environment for TFS is to use Brian Keller’s Visual Studio / TFS 2012 virtual machine.

The WebpageControl isn’t that much documented on MSDN so I’m going take you through the steps of extending a work item type with the control and linking it to a custom web page.

  1. Implement the web page for the extension you want. Since this is just a web application it’s simple to develop, debug and test the extension. Design the page so data can be passed from the work item to the page using URL parameters.

    image
  2. Add a WebpageControl to the work item type. The easiest way to add a control is to use the Process Template Editor (part of the TFS Power Tools):

    image

    Make sure to set the Dock property to Fill if you want the control to use the whole tab space.
  3. Configure the WebpageControl using the Control Settings:

    image

    Set the URL to display and other properties as appropriate:

    image

    Note the use of field names. You can reference any field with it’s unique reference id, for instance the Team Project name would be $(System.TeamProject).
  4. Save and update the work item type definition. Refresh the client you are using to make sure the test case type definition has been updated.
  5. Open a test case and see the new control with the custom web page content appear under the Test Suites tab.

    image

Simple, wasn’t it? Feel free to leave comments on what you think of this approach.

Microsoft Sommarkollo 2013 (swe)

För elfte gången håller Microsoft sommarkollo, i år i Göteborg, Stockholm och Malmö. Det är kostnadsfritt så passa på att unna dig några sessioner om de senaste trenderna och produkterna från Microsoft!

image

Jag är glad att få vara med på evenemanget och kommer presentera dessa två sessioner:

Båda går först i Göteborg den 26 juni och sedan 15 augusti i Stockholm (där min kollega Magnus Timner kommer vara med).

Passa på att boka en plats nu på en gång!

Book project #2 – Pro Team Foundation Service, done!

I’m happy to share the release of the second book I’ve been involved in. This time the subject is the Team Foundation Service and how it can be used to setup a complete development infrastructure in just a couple of minutes. Oh, well, at least that’s what it takes to create an account… To fully take advantage of all its capabilities obviously will take much longer but hopefully the practices and experience we share in this book will help you get going quickly.

I’ve had the opportunity to work with a great team to author the book, with co-authors Jakob Ehn, Mattias Sköld and Joachim Rossberg. We’ve got great input and feedback from people in the product group, thanks Jamie, Will, Ravi, Anu, Vijay and Ed! And not to mention our most thorough reviewer Terje Sandstrøm. And thanks to Brian Harry for writing the foreword!

image

You can read more about the book at Amazon: http://www.amazon.com/Team-Foundation-Service-Mathias-Olausson/dp/1430259957.

Hope you find the book useful, I definitely learnt a lot from writing it!

Vad din app gör när du inte ser på? (swe)

- eller hur din applikation beter sig i produktion.

Om ett par veckor (3/5) kör vi ett seminarium tillsammans med Informator på ovan titel, ett i mitt tycke aktuellt ämne där vi tittar på hur vi med rätt verktyg kan få kontroll över hur våra system fungerar i drift och vad vi kan göra för att snabbt åtgärda problem när de uppstår.

Mer info och anmälan: http://informator.se/seminarier/seminarier/vad-din-app-gor-nar-du-inte-ser-pa

Buggar och prestandaproblem kan vara nog så svåra att hantera i en utvecklings- eller testmiljö. Men när de uppstår i produktion så kan det verkligen bli otrevligt.

Under detta seminarium tittar vi på verktyg för bättre applikationsanalys och hur dessa kan användas för att hjälpa oss förstå produktionsbeteenden på ett bättre sätt. Vi utgår från .NET och Visual Studio 2012 och tittar på tekniker som:

  • Run-time analys Arbeta proaktivt med prestanda och felinformation så vet vi vad som funkar och inte, innan våra användare gör det.
  • IntelliTrace Om fel trots allt uppstår kan IntelliTrace hjälpa oss få detaljerad information om felsituationen.
  • Profiling Profileringsverktyg ger oss nödvändiga detaljer om minnesläckor eller prestandaproblem, så vi snabbare kan hitta källan till problemet.
  • Prestandatest De integrerade verktygen i Visual Studio låter oss enkelt simulera produktionsförutsättningarna, så vi kan säkerställa att applikationen kommer prestera som det är tänkt.

ALM Rangers DevOps bug resolution using IntelliTrace Guidance Released

Yesterday the ALM Rangers released a new guidance project, this time around how to use IntelliTrace to enable better developer-operation scenarios. I’ve had the opportunity to work in this project and I recommend you take a look at what the team has put together. IntelliTrace can be difficult to get started with but these guides should help get the concepts right and get started in a good way.

I’ve worked on a couple of hands-on labs to walk you through setting up IntelliTrace, capturing IntelliTrace logs in production- and test environments and finally analyzing the IntelliTrace logs in Visual Studio.

  • The Epics included in the guidance are:
    • As Bill, the ALM Ranger, I would love practical and exciting DevOps & IntelliTrace Posters.
    • As Abu the Build Master, I would like practical guidance on how to to configure my TFS Build server to support IntelliTrace.
    • As Doris, the Developer, I would like practical guidance to resolve a bug in DevOps using IntelliTrace.
    • As Jane, the Infrastructure specialist, I would like practical guidance to implement IntelliTrace in DevOps.
  • The guidance includes the following artefacts:

    • Cheatsheet – Build Master DevOps and IntelliTrace Checklist
    • Cheatsheet – IntelliTrace Cheat Sheet
    • Cheatsheet – Ops view of DevOps and IntelliTrace
    • Hands-on Lab – Build (Symbols Configuration & Build)
    • Hands-on Lab – Dev (Client Side No Symbols Found Resolution)
    • Hands-on Lab – Ops (Collection for WPF Rich Client)
    • Poster – Encountering IntelliTrace technology in DevOps
    • Poster – Resolving bugs in DevOps with the help of IntelliTrace
    • Quick Reference Guide – Developer view of DevOps and IntelliTrace

Download the guide and tell us what you think.

Visual Studio 2012 Update 2 Released

The latest update for Visual Studio 2012 was released today. The most noticeable new features from an ALM perspective are

Charles Sterling has written an excellent summary of the new features, if you want to read more about the new features there’s a nice link collection at the end of the post.

Go get the update here!

TFS + Git = True! Native support for Git is coming in TFS 2012 and Visual Studio

At the ALM Summit earlier this week Brian Harry announced that TFS will host Git repositories. This is a great step forward for cross-platform development, native Git support will make it easy to use the team platform TFS gives us without having to compromise the development experience when working for instance in Xcode on iOS.

Microsoft will also provide integrated tooling inside Visual Studio for Git, which means not a separate set of tools but instead tools right inside the Team Explorer where we as Visual Studio users are used to work. Matthew Mitrik (MS), Andy Lewis, and Martin Woodward has written a great introduction to getting started with Git in Visual Studio using a Git repository in the Team Foundation Service.

Read the full announcement here.