Recently in Teamprise Category

Ed Blankenship Recently I had the pleasure of sitting down with my good friend and fellow MVP Ed Blankenship to learn about the Team Foundation Server deployment in Infragistics. They have a global development team working 24x7 and their Team Foundation Server is now critical to the daily operation of the business.  Ed has plenty of tips and tricks in keeping TFS running with high availability but also in the organizational challenges when deploying the tools across a diverse, global software development organization.

We recorded our chat and I’ve just made it available as Radio TFS episode 23.

Play Now: Radio TFS - Using TFS with Ed Blankenship

As well as talking about the challenges of rolling out TFS to a large, global organization, we also discussed some of the innovative integration work Ed’s team has carried out to integrate TFS with Microsoft CRM. 

It turned out to be a longer show than usual, almost a double length episode.  Hopefully people will find time over the holiday weekend to listen to it.  I’m keen to hear your feedback. We are trying to step up the number of Radio TFS episodes that we put out to two a month.  If you haven’t subscribed to Radio TFS then now is the time.

Photo courtesy of Barry Gervin.

igate_logo

TFS has a many strengths.  Two of them that I particularly like talking about are it’s performance over a wide area network and the strong IDE integration available for both .NET and Java developers (the latter via Teamprise of course).  Microsoft have just posted a new case study with iGate, one of the top 20 global outsourcing companies which talks about this in depth.

iGate has been assesed at CMMI Level 5, Six Sigma methodologies and is COBIT, ISO 9001 and ISO 27001 certified.  They have 8 offices in 12 countries and manage global delivery centers in Mexico, Australia, and India. Like most software development organizations, version control is critical infrastructure and they chose TFS to manage software development projects across all platforms.

“When we implemented Visual Studio Team System, we noticed immediate process improvement through automation. It reduces the administrative burden and reduction in administration efforts leads to significant cost savings of 55 percent.”

Chella Namasivayam M
Vice President IT & IS, iGATE.

iGate chose TFS ahead of tools such as IBM Rational ClearCase, MKS Implementer and CVS.  For more information on why and what benefits they have got from standardizing on a single platform take a look at the case study.

Last week at TechEd 2009 North America, I had the pleasure of sitting down with Brian Keller to discuss Teamprise past, present and future. If you have Silverlight installed you can watch the interview or you can download the video from the TechEd site.

Cross-Platform Development with Team Foundation Server and Teamprise

Rock The Build with TFS

| No Comments

If bunnies are just a little bit too cute and fluffy for you, then you might be interested in a little side project that reader Terry Humphries just got in touch with me about.  You see Terry had no love for robotic rabbits in the build process – but an electric guitar was something that he and the other developers in his team would pay attention to. So he hooked up a vintage 1990’s Warlock Electric guitar made by B.C.Rich to TFS and let that rock their world.  I thought this was a cool project so asked permission to share his email with you all. If you want to get in touch with Terry, drop me a line and I’ll send your details on to him.

 

From: Terry Humphries


guitarMy name is Terry Humphries and I work for EnGraph Software. I’ve been a developer for over 25 years the last three months at EnGraph. I came here to join a development team that was scaling up from a couple of developers to over 14 folks. Part of my job has been and continues to be leading EnGraph’s push into using Team System. I spend part of my time wearing a developer hat and part wearing the TFS admin, Build Sensei hat.

Having always been a strong believer in nightly builds and making sure everyone is aware of the status of the build, I’m always looking for ways to get the other developers invested in the status of the build.

Having seen Brain aka the Build Bunny and the Lava Lamp build indicator I decided it was time to create something unique for EnGraph to use.

I almost used a full size traffic light, but since all of the pcs here are named after guitar manufacturers, a Build Guitar seemed the way to go, and the search was on. It took me about three week to locate the used Warlock I used as the basis of the project. I didn’t want a run of the mill guitar, it need to be electric and it needed to have a unique look. When I got the Warlock it’s better years were behind it, the body was in bad shape. I had to end up stripping it, filling in a few dings and refinishing it with a purple undercoat and a bronze metallic pearlized overcoat.

I looked at several options for the switching mechanism for the LEDS. Basically, I wanted something that would provide the low dc power needed to drive the LEDS and a programmable interface for switching them on/off. I considered Ethernet based relays, Bluetooth based relays, Ethernet to parallel port converters, and USB controlled relays. Mostly because the other options were much more costly I settled on the USB controlled relay. I decided to mount this control circuit in its own box and use standard Ethernet cabling to get the power to the guitar from the relay. With this option the only things I had to mount in the guitar were the LEDs, the Ethernet jack, and wire connecting them.

Once I obtained everything I need I started build the controller. Wanting it to also be somewhat different I decided to mount the relay circuit old 3.5 diskette plastic case that was designed to hold 10 diskettes. After mounting the circuit board I added the ethernet jack and connected the power supply. Cut a few hole for the cables and bam the Build Guitar Controller was born.

Next, guitar time. I decided the best place to mount the LEDs was in one of the pickup coil frames, you see a Warlock comes with 2 Humbucker pickup coils each mounted in its own frame. I fashioned a piece of black plastic to fit the frame and drilled three holes for the LEDS. Then I wired the LEDS to the Ethernet jack I had placed in the jackplate.

Then I hooked everything up loaded the Phidgets drivers and using they’re control panel applet tested the wiring and after a few minutes I had everything working as planned.

The folks at Phidgets provide 2 way to interface with their devices, either directly or via a webservice, I used both. I couldn’t find a TFS event that fires when a build starts so I created a custom task that turned on the correct relay and hooked it into our build scripts via the BeforeEndToEndIteration target and then used Howard van Rooijen TFS Event Framework to react to the BuildCompletionEndpoint to set the red and green leds.

The basic code for manipulating the relays is only 9 lines:

InterfaceKit RelayPhidget = new InterfaceKit();

RelayPhidget.open("gibson", 5001);

System.Threading.Thread.Sleep(1000); //wait for the server to connect

RelayPhidget.outputs[0] = false;     //Set build start off

RelayPhidget.outputs[1] = true;      //Set build success on

RelayPhidget.outputs[2] = false;     //Set the other off

RelayPhidget.outputs[3] = false;

RelayPhidget.close();

RelayPhidget = null;

I’m not sure what else I can tell you about it other that it’s a big hit with the other developers. As for more about EnGraph you can visit our web site at www.engraph.com

Hardware:

  • Warlock Electric guitar made by B.C.Rich vintage 1990s
  • 10MM diffused LEDS in Blue, green and red
  • Phidget Interface Kit 0/0/4 available here
  • 5VDC 350milliamp wallwort power supply
  • Various bit of wire, tape glue paint, etc.

Software:

  • Team Foundation Server Notification Event project template from Howard van Rooijen
  • VS2008
  • Phidgets Driver

 

Thanks for sharing this with me Terry, and for allowing me to post your email.  For anyone interested, I’ll be talking more about integrating with Team Foundation Build API’s during my session at Tech·Ed North America 2009 next week.

DTL307 Brian the Build Bunny: Extending Team Foundation Server Build

Fri 5/15 | 9:00 AM-10:15 AM | Room 404

This session digs deep into customization of the Microsoft Visual Studio Team System Team Foundation Server Build system. Learn about the .NET API for Team Foundation Build and how to use it to create your own build status display or even have your team chastised about build failures by a robotic rabbit.

For a while now, we’ve been helping our Java customers by providing the Teamprise Build Extensions to allow people to easily build Ant based projects using Team Foundation Build and publish JUnit test results into TFS for inclusion in the reports etc.  With the release of Teamprise 3.2 we also released a new version of the Teamprise Build Extensions which enables Maven based builds to be performed under Team Foundation Build with the same ease.  We’ve been using this with a few different customers this year and it has proven to be very successful so I wanted to spread the word a little.

The easiest way to build a Maven project from Team Foundation Server is to install the Teamprise Build Extensions on your build server using the MSI installer provided on the download site (http://www.teamprise.com/products/build/).  You must also have a Java JDK and a copy of Maven 2 installed on the build server.  See the User’s Guide for full details.

You can then use a copy of Teamprise Explorer or the Teamprise Plug-in for Eclipse to create the build definition. 

Team Explorer in Teamprise

Once you have given the build definition a name and specified what should be included in the build using the usual options, go to the Project File section. 

Project File section of Build Definition dialog

Just as in Visual Studio you can change the folder that you want the build configuration to be stored (1) but when you press the Create button (2) things differ a bit from  the Visual Studio interface.

Teamprise Build Configuration Wizard

As you can see, you are prompted as to what type of build you would like to create. When connected to a TFS 2008 server you will be offered two options, Ant and Maven.  In our case we are going to select Maven and then we get to pick the master POM file for our Maven 2 build

 Maven Build Configuration Wizard

The wizard will then create the TFSBuild.proj file necessary to run the Maven 2 project and check it into the build configuration folder specified previously.  You can then define you trigger and build agent just as you would normally and you should be good to go.

As well as creating the build definition, the Teamprise client simply creates a TFSBuild.proj file in the following format which you could easily create yourself if you wanted to create the build from Visual Studio or something.

<?xml version="1.0" encoding="utf-8"?>

<Project DefaultTargets="DesktopBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">

 

  <!-- Do not edit this -->

  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets" />

  <Import Project="$(MSBuildExtensionsPath)\Teamprise\v2\Teamprise.Build.Maven2.targets" />

 

  <ProjectExtensions>

    <ProjectFileVersion>2</ProjectFileVersion>

    <Description></Description>

    <BuildMachine>buildserver.mycompany.com</BuildMachine>

  </ProjectExtensions>

 

  <PropertyGroup>

    <TeamProject>Billing</TeamProject>

    <BuildDirectoryPath>UNKNOWN</BuildDirectoryPath>

    <DropLocation>\\UNKNOWN\drops</DropLocation>

    <SkipWorkItemCreation>false</SkipWorkItemCreation>

    <WorkItemType>Bug</WorkItemType>

    <WorkItemFieldValues>

      System.Reason=Build Failure;System.Description=Start the build using Team Build

    </WorkItemFieldValues>

    <WorkItemTitle>Build failure in build:</WorkItemTitle>

    <DescriptionText>This work item created on a build failure.</DescriptionText>

    <BuildlogText>The build log file is at:</BuildlogText>

    <ErrorWarningLogText>The errors/warnings log file is at:</ErrorWarningLogText>

    <UpdateAssociatedWorkItems>true</UpdateAssociatedWorkItems>

  </PropertyGroup>

 

  <ItemGroup>

    <!--  Maven 2 Call Configuration. 

          The POM file called should be included in the workspace of the build definition.

    -->

    <MavenPomFile Include="$/Billing/Main/billing-service/pom.xml">

      <Goals>install</Goals>

      <Properties>

         BinariesRoot=$(BinariesRoot);BuildDefinitionName=$(BuildDefinitionName);

         BuildDefinitionUri=$(BuildDefinitionUri);BuildDirectory=$(BuildDirectory);

         BuildNumber=$(BuildNumber);DropLocation=$(DropLocation);LogLocation=$(LogLocation);

         SourceGetVersion=$(SourceGetVersion);TestResultsRoot=$(TestResultsRoot);

         TeamProject=$(TeamProject);WorkspaceName=$(WorkspaceName);

         WorkspaceOwner=$(WorkspaceOwner)

      </Properties>

    </MavenPomFile>

  </ItemGroup>

 

</Project>

 

The Import statement at the top is calling the Teamprise.Build.Maven2.targets file. This safely inserts the call to Maven 2 into the Team Foundation Build process. It uses the MavenPomFile item group to specify the server path of the POM file to build – this is converted into a local path as part of the build process.

The Maven 2 integration will listen for surefire steps as part of the build process and automatically include those files in the list of JUnit results to publish to TFS. It will also automatically copy any files in the Maven 2 targets directory over to the drop location for build archival purposes.

The Teamprise Build Extensions are provided free of charge, and the source code is available under the permissive open source MS-PL license if you want to take a look in more detail at what they do and how they do it.

Internally, we also have a Maven SCM Provider for TFS coded up and we are about to submit this to the Maven project so that people using Maven will be able to perform SCM operations easily from inside their projects (and use things like the Maven Release plug-in to perform releases).  If you would like a copy of the SCM provider in the mean time then let me know and I can send you a copy.

Looking forward to hearing what people think.  Now that we have both Maven 2 and Ant support for building Java projects in Team Foundation Server this really helps Java development be a first class citizen in the TFS world. I’m always keen to hear feedback how we can improve the situation further if you have any suggestions then let me know.

Catching up with MIX09

| 1 Comment

MIX09Sadly, I couldn't go along to MIX this year. However luckily for me, Microsoft has followed a new trend with its conferences and made all the sessions available online for free for everyone to access.  As well as being able to browse the sessions online, Mike Swanson has posted a comprehensive list of all the sessions on his blog.  However, I like to download them all so that I have them locally and can watch them on the move (sat in airplanes or doing jobs around the house etc).  Therefore I created the following text file containing links to all the downloads so that I can copy the list of sessions into the excellent Free Download Manager to download them in the background over the next few days.  I thought that others might find the file useful so here it is:

mix09_content.txt mix09_content.txt (32KB)

Also, Mike has created a very handy MIX09 Renamer batch file (4.17KB) that can rename all the downloaded sessions to put the session title on them making them much easier to browse and find later.  For more information on this batch file see Mike's post.

If you use iTunes or Zune, then you can also subscribe to the MIX09 podcast feeds to download all the sessions to those devices (iPod/iPhone Friendly Feed, Zune Friendly Feed).

So far I am working my way through the sessions.  The Bill Buxton keynote is great, and I'm very excited about the new SketchFlow stuff in Blend.  Also - be sure to download session C02F - Improving UX through ALM (with Chris Bernard and Christian Thilmany) as they do a great job of showing the integration between the designer and the developer using TFS.  They also spend a good deal of time in Teamprise on the Mac :-)

Team System MVP of the Year

| 2 Comments

Martin Woodward: MVP Of The Year

This week I have been in Seattle for the MVP Summit 2009. It has been a busy week chatting with the Team System team and catching up with all my friends from the MVP community around the world.

I have to admit that, without doubt, my proudest moment of the week (and also the first time I think I have blushed in a while) was when it was announced that I had won the first ever Team System MVP of the Year award.  I am deeply honoured particularly because it was the 100 or so other VSTS MVP’s that made the decision.  As part of my “prize” I got a shiny belt buckle that I’ve been proudly showing off to anyone that will listen.  Dan Fernandez and Brian Keller were even kind enough to have me on their “This Week on Channel 9” show when I popped round to show off my award.

Take a look at the This Week on Channel 9 Episode, and don’t forget to subscribe to the show. When they don’t have me on it is usually a very entertaining 30 minute re-cap of the weeks events in the .NET world.

Archives

Creative Commons License
This blog is licensed under a Creative Commons License.