Visual Studio 2008

In case you haven't heard ObjectSharp is hosting a free VS2008 What's hot and what's not event at the Paramount Theatre downttown on Feb 7th 2008.

It's going to be a lot of fun. Our graphics guy has been busy making movie posters for the event. They are wonderful not to mention very funny.

Check out Rob Windsors Blog he explains wonderfully.

Cleaning up your TFS Build Server

The Team Foundation Build Server at one of our clients was getting out of hand. We set up continuous integration so we are getting a lot of builds per day. The server had hundreds of builds that we just didn't need hanging around anymore. We asked our IT guy extraordinaire, Max if he could write us a script to automate the cleanup of TFS Builds. He rose to the challenge and now we have one.

He wrote the VB Script attached to this post. I tried it out on the server last Friday and it worked great. Here is the command to call it.

cscript TFSBuildCleanup.vbs http://<Server>:<port> <Project> <Build Location> <BuildType> <Days>

  • Server = Team Foundation Server
  • Port = TFS port
  • Build Location = Folder that contains the builds on the server (ie: c:\Builds)
  • BuildType = Name of the build Type to remove
  • Number of days of build to keep. If you put seven it will remove all the build 8 days and older.

I set it up as a task on the build server to run each night.

I hope it's useful to someone out there.

GoDiagram by NorthWoods

I have been using a tool that is new to me. I am very impressed and would like to share my experience.

The product I am talking about is GoDiagram from Northwoods. I of course am using the .net version there is also a Java and MFC version of the product.

The tool is used for creating diagrams and also includes a library of Instruments, if you buy the right license.

The object model is a little complicated at first but there is a good document that comes with the product that explains the architecture, I recommend reading it before you begin it really helps to set the stage.

The documentation is OK, but could be better. However Northwoods makes up for that via support. Their online forum is watched very closely and responses are very quick and helpful. I called and left a message the other day and someone called me back. We chatted for ages, he gave me his email and personal number. They are so eager to help its very refreshing. The other wonderful support tool they have is their samples. When you install you get a bunch of samples, with source code. They have been a great help in learning the tool.

It's amazing how powerful and flexible this product is. If you have a need to create any kind of diagram or free form drawing tool I highly recommend it.

Some of my favorite features include:

  • Overview: A control that duplicates your diagram in a smaller window with zooming and scale changes of the main diagram.
  • UndoManager: Automatic undo and redo capabilities.
  • AutoLayout: Costs extra but it's worth it. AutoLayout does just what its name implys. It will automatically organize your diagram for you.
  • Images: With the GoImage object you can easily add graphics to your diagram.
  • Flexability: You can create your own Node and Link classes and they can look and behave any way you want them to.

If you have a need for such a product, do yourself a favour and make sure this product is on your list to evaluate.

Autumn Background taken in Burlignton, Ontario

I recently found out that my favourite XP Background was a photograph taken in Burlingto ON, Canada, my home town. A friend of mine pointed out this article in the Toronto Star.

 Imagine that!?

Test Deployment

DeploymentItem Attribute on a VSTS TestMethod

Did you know there are two ways to Deploy files to be used when executing unit tests in VSTS.

 

You can added them to the .Testrunconfig:

 

 

Or using the DeploymentItem attribute on the TestMethod:

 

 

[TestMethod,DeploymentItem(@"Bin\fr-CA\Thermo.Automation.Foundation.Tests.resources.dll","fr-CA")]

public void Multilanguage()

{

    Message msg = Message.Retrieve(Messages.Multilanguage);

    msgServ.Post(msg);

    Assert.IsTrue(msgServ.ValidateMessageReceived("English message"));

 

    Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");

 

    Message msgFr = Message.Retrieve(Messages.Multilanguage);

    msgServ.Post(msgFr);

    Assert.IsTrue(msgServ.ValidateMessageReceived("French message"));

}    

 

Snagit and TFS

Two great tools come together to make our lives easier.

 I have been a fan of Snagit for many many years, and more recently Camtasia, both from Techsmith. Now snagit has a hook into Team Foundation Server, allowing you to create a Work Item from a Snapshot of a screen. Using the tried and true features of snagit to capture a portion of your screen you can now use the newly added Team System tool bar item to create a Workitem and automatically attach the screen shot to it.

TechSmith has a Camtasia demo here so you can see it in action.

Thanks Andre

VSTS unit testing and the .VSMDI

If you have done any serious unit testing with Visual Studio Team System and tried to include these tests in your Team Build you will have come across issues with the .VSMDI. It might drive you crazy until you completeley understand what is going on. Lets see if I can explain the situation with a series of truths.

  1. The .VSMDI file is Test Meta Data
  2. Each Solution can have only one .VSMDI
  3. The .VSMDI stores, amoung other things, test lists created using Test Manager
  4. Test lists are required to execute tests in a Team Build
  5. The .VSMDI must be checked into source control for this to work
  6. VS for Developers does not come with Test Manager
  7. A solution can have multiple .testrunconfig files
  8. The active .testrunconfig is stored in the .VSMDI
  9. When a developers switches to another .testrunconfig it will change the .VSMDI

All these truths together mean that everyone on a team including the Build server sharing one solution (which I see happen a lot) is a pain in the ass.  

So how do you each have your own .testrunconfig without messing up the build server. There are plenty of blogs and forum entries out there complaining of this in one way or another.

From what I can tell there are a couple of things you can do.

  1. Download and use the TFS PowerToys TestToolsTask so you can run tests in a build without test meta data files and test lists. The problem with this is it's more difficult to include only the tests you want executed on the build server. Not impossible but not as easy as using test lists.
  2. Create a solution for the Build Server to use. It can have it's own test run config and test lists .VSMDI ( You still need team suite or VS for testers to create them) of course all the developers should have their own Solutions also. This can have it's own headaches on a large project when many VS Projects make up the solution. As developers add projects to their solution they have to make sure everyone else knows as well as the build server solution.

I hope they address this in a coming release, I'd like it to be more transparent to the developer.

Do you buy Dell?

If you do, you might find this article useful 22 Confessions Of A Former Dell Sales Manager.

 

EnergizeIT

I am speaking today at EnergizeIT. I'm doing a talk on unit testing with VSTS at 3:30. I'll be talking to the kids about some of the things to watch out for when doing unit testing in VSTS, as well as some of the really nice features.

I attached my demo apps to this Blog entry if you are interested.