Managing your application lifecycle with TFS – Workshop

QuickLearn’s MVP Anthony Borton is scheduled to teach the pre-conference hands-on workshop Managing your Application Lifecycle with TFS at next week’s ALM Summit.

Audience

This pre-conference workshop has been developed as a level 200 event to help get conference attendees up to speed with TFS and maximize their understanding of the product and its features prior to the ALM Summit kicking off.

Course Abstract

Many organizations use only part of what Microsoft Team Foundation Server (TFS) has to offer and as a result are not realizing the full range of benefits available to them. This workshop will give you a hands-on walk through of the many ways TFS can help your team realise more frequent successes with software development projects.
The workshop will start by evaluating and selecting a suitable process template for the project. We’ll work through an end to end project and examine the many capabilities of TFS that can help you start your project off on the right track and keep it there. Some of the key topics we’ll look at include:

  • Ensuring effective team communication
  • Configuring version control and enabling release management through branching
  • Maintaining quality across all parts of the project
  • Creating automated builds and seeing how we can customize the build process
  • Leveraging the out of the box reports and creating ad-hoc reports

About Anthony Borton

Anthony has designed and developer all of QuickLearn’s ALM curriculum. Anthony is a Microsoft Visual Studio ALM MVP with over 20 years’ experience in the software development and training industries. Anthony is a sought after trainer and has delivered technical training and consulting in the United States and all across the Asia Pacific region. He is a Microsoft MVP (Visual Studio ALM), a Professional Scrum Developer Trainer and a Microsoft Certified Trainer.

View all of Anthony’s upcoming training courses at QuickLearn: http://www.quicklearn.com/tfs-training.aspx

WCF, OneWay and BizTalk

In WCF there is an option in your contract to markup as an OneWay method like this:

        [OperationContract(IsOneWay=true)]

You will get the following error when you try to send a message from BizTalk to this WCF Service:

Details:”System.ServiceModel.CommunicationException: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.

The problem with this is that BizTalk can’t consume the WCF service as it only supports the Request/Reply pattern of WCF, so what options do you have when you have a fire-and-forget WCF service that you want to consume from BizTalk:
  1. Change the attribute in your WCF Service, so the “IsOneWay” is set to “false”. This is only an option if you have control over your WCF Service
  2. Create a wrapper around the WCF Service that wraps you service. This blog post is one way to do it: http://www.pvle.be/2008/12/calling-one-way-wcf-service-with-biztalk-wcf-adapter-part-2/
You should go for the solution it the order listed above. Other possible solutions that I haven’t tried, but might work (could be fun to try out at some point in time):
  1. Implement a custom behavior (could maybe also be a solution as you hook into the WCF model, but I am not sure if it will work)
  2. Implement your own WCF adapter using the WCF SDK (A lot of work, should work as you have complete control over the message flow)


Labelling a Build in TFS from Cruise Control

This is just a reminder for my self of how and why we do this.

We have 2 projects within a TFS project collection for our integration component developments. We have:

1. A project for .net based integration projects

2. A project for BizTalk based integration projects

The main reason we do this is so we dont have loads of TFS projects as we have a significant number of components but also we want some different rules around check in and source control locks etc etc…..

At this stage our build servers are still running cruise control rather than Team Build so one of the problems i was finding was when cruise control labelled a build in TFS i couldnt tell easily in the label search which component or folder the build label related to. We modified the build scripts to do a custom label with TF.exe so that we could put a specific label from each build. We used the following command:

<Exec Command=“C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\tf” label “$(CCNetProject).$(CCNetLabel)” $(MsBuildProjectDirectory) /recursive/”/>

Using this command means that the build label is applied at the right place for the workspace but also the label includes the cruise control project name making it easy to workout what the label was actually for rather than just being a bunch of version numbers.

There is probably a better way to do this but its working fine for us.