15 December 2006

As announced on Soma's blog, Service Pack 1 for Visual Studio 2005 and Team Foundation Server has been released.

This Service Pack addresses a range of issues that were found through customer and partner feedback as well as our own internal testing. Many of these issues were reported by you and I thank you for taking the time to report them to us. The release also adds a number of customer requested functionality and enhancements to some of the most common development scenarios to Visual Studio that I think you’ll find interesting and valuable.

07 December 2006

I'm currently working in a shop that tracks defects in Quality Center but I would like for our development team to be able to work with TFS defects directly from their Visual Studio IDE. I started to work on an in-house solution for synchronizing defects, however, I recently found out about a utility for synchronizing bug/defect items between Mercury Quality Center and Team Foundation Server. Although I haven't used it yet (I'll be trying it out over the next week or so) it looks to be very promising.

Here is a quick rundown of how it works:

For every selected defect for synchronization in TestDirector/Quality Center, it creates a matching bug item in TFS (with a link to the original defect).

For every selected bug item in TFS, it creates a matching defect in TestDirector/Quality Center.

For every defect updated in TestDirector/Quality Center, it updates the matching bug item in TFS.

For every update in TFS, it updates the matching defect in TestDirector/Quality Center accordingly.

It also offers the possibility of linking one TFS bug item to many TestDirector/Quality Center defects (inside the same project or in different projects) and update all related TestDirector/Quality Center defects when the TFS bug is updated.

It doesn't support attachments at this time but I'm told this capability is coming soon (i.e. possibly next week). I'll post my experiences once I've had a chance to work with it for a little while.

29 November 2006

The SRL Team has released a new utility to help with the management of Team Foundation Server permissions.? TFS Permission Manager 1.0 has allows you to work with all aspects of TFS-related permissions and includes the following capabilities:

Add or remove TFS group memberships, Reporting Services role memberships and SharePoint role memberships

Set Server- and Project-level permissions

Set Area Path and Source Control permissions

Create new TFS users with permissions identical to those of an existing user

Save user permissions as a template and use it later to create new or update existing users

If you have the responsibility?of managing?permissions on a TFS server then this utility could be a big time saver.

21 November 2006

Microsoft has made available for download a Virtual PC (VPC) based set of training for Visual Studio Team System basics.? The modules within this training program include:

Module 1 - Overview

Module 2 - Team Foundation Administration

Module 3 - Architect

Module 4 - Developer

Module 5 - Tester

Module 6 - Project Manager

Module 7 - Team Explorer

This is a relatively large download (5GB) and is comprised of eight separate files that must be downloaded and then extracted (a single download would have been nice :-).? The extracted files will take up about 15GB of space and can be ran using Virtual PC 2004 or Virtual Server 2005.

I haven't had a chance to go through the training yet but plan to do so in the near future.? I will post back with any interesting experiences I may have :-)

08 November 2006

Recently, I've started experimenting with the capabilities of add-ins for VS 2005 because I want to write some extensions for Team Foundation Server. However, before I could really get to work on the more complex add-ins I needed to start with something simple.

For anyone who has ever worked with Visual Studio 2005 solutions that contains multiple projects, you've probably spent a fair amount of time collapsing the project items in the Solution Explorer. So, my first "useful" add-in simply allows you to collapse all solution project items with a single mouse click.

After you install this add-in and run Visual Studio 2005, you will notice a new menu item, "Collapse All", when you right-click on a solution in the Solution Explorer. Selecting this menu option will collapse all project items within the solution.

I'm also planning on adding a few more features to this particular add-in down the road but even in its current state, it's already proven to be a time saver.

27 October 2006

The 2006 Heartland Developers Conference has officially come to a close. It was two days of a lot of technical sessions, food, prizes, games, socializing, and more. Although I don't know the official attendee count (yet) it was somewhere around 600 which is pretty good considering this was only the 3rd year for the conference. Philip and Joe did a great job putting this together (no surprise there :-). This was the first year I attended HDC and rumor has it that HDC '07 will be in Omaha as well so I look forward to attending again next year - I'm sure it will be even better!

I also had the pleasure of giving a presentation of Team Build at the end of the first day and had a pretty good turn out. I think the presentation went pretty well considering it was during the 5:00-6:30pm time slot at the end of the first day. If anyone is interested in the slides used for the presentation, you can get them here. I had the opportunity to answer a lot of questions during the presentation as well as at the end of the presentation. This was the first time I had ever presented at developers conference and it was a great experience. I hope I get a chance to do it again.

There were a lot of great topics covered throughout the two-day conference but some of the highlights for me would have to include the talks on LINQ and Custom Windows Workflow Activities as well as my own presentation on Team Build :-) I had attended talks on LINQ and Windows Workflow at this year's TechEd in Boston and it's nice to see how well the technology has progressed.

10 October 2006

It's official - I'll be presenting on Team Foundation Server's Team Build features at the up coming 2006 Heartland Developers Conference. This will be the first time I've attended the HDC (it's only in its 3rd year) and I'm looking forward to it.

I'll post a link to the presentation materials as the event date approaches.

If anyone out there is attending the HDC this year I'd be interested in hearing from you.

28 September 2006

In case you haven't already noticed (I'm a little late on this posting due to being off the last week) Microsoft has released two Service Pack 1 betas - Visual Studio 2005 SP1 Beta and Team Foundation Server SP1 Beta.

Brian Harry has posted details here and here about Team Foundation Server SP1 Beta. To summarize, SP1 includes a few new features as well as several bug fixes and performance improvements. Some of the new features include:

Extranet Support

WIT Custom Control Support

Support for Office 2007 (Project & Excel - no SharePoint 2007 yet)

Detailed Merge History

Ability to Separate SQL Analysis Services Server

Brian has also posted some various ramblings on Visual Studio SP1. This is an interesting read with interesting reader comments.

On a (somewhat) related note, the Visual Studio 2005 SDK v3 RTM has also been released which includes tools, documentation and samples for developers to write, build, test and deploy extensions for Visual Studio 2005 (including Team Foundation Server).

04 September 2006

Lately I have been reviewing a lot of Visual Studio Team System videos and Webcasts. After several days of searching I had acquired several link so I thought I would make this list public. You can view the list of videos and Webcasts here.

Please let me know if you've seen any VSTS-related video or Webcast that is not included in this list and I'll get it added.

30 August 2006

Those folks over from Attrice have done it again and released another useful utility in their line of Team Foundation Sidekicks - the Team Build Sidekick. This is an add-in for Visual Studio 2005 that adds a few new features to the context menu for Team Build Types.

If you've worked with Team Build Types then you already know how inconvenient it is to make modifications to them. First, you have to go to version control and locate the correct TFSBuild.proj file and check it out. Then you have to open it for editing to modify the XML. Although this isn't overly difficult, it does take you out of the normal flow of Visual Studio.

The Team Build Sidekick add-in simplifies this process by providing a "Check Out for Edit" option directly on the context menu when you right-click a Team Build Type. Selecting this option will check the TFSBuild.proj file out and open it for editing automatically. Much simpler than the previous process.

Once the TFSBuild.proj file has been checked out, you get three other (new) context menu options - Edit, Check In Changes, and Undo Changes. Very convenient.

21 August 2006

As some of you may be aware, I've kept a list of useful (at least in my mind) links to various Team Foundation Server-related sites and utilities on our company's web site. There are currently two links:

19 August 2006

For anyone who has ever had to generate documentation for their .NET projects, you know only too well how difficult and time consuming that can be.

There have been a few utilities available in the past that helped out in this area. One example is NDoc. NDoc generates some very nice API documentation in several different formats. However, it doesn't work so well for Visual Studio 2005. Also, the original developer of NDoc has recently announced that he is dropping future development for NDoc in favor of Sandcastle (as well as other circumstances - although the project may be picked up and administered by another volunteer).

Microsoft's Sandcastle project may not be as extensive as NDoc in some areas (e.g. support for custom tags - at least not yet) but it appears that it will support the majority of everyone's needs out of the box with the ability to be extended as needed.

If you follow the various examples on creating Sandcastle documentation you'll find that it's rather tedious to setup the initial scripting necessary to generate your final help file. However, there are some nice tools out there to help with this task as well.

So far, my favorite tool has to be Sandcastle Help File Builder - an open source utility available at The Code Project. This utility has a UI that looks almost identical to that of NDoc and works in a similar fashion. It allows you to simply refer to the assemblies you wish to document, set some custom properties, and generate your documentation. If you're looking for a UI to interface with Sandcastle, this is the tool to look at.

01 August 2006

A new version of the Team Foundation Sidekicks utilities has been released. Version 1.1 introduces a new History Sidekick as well as a new user interface where all Sidekicks are now available within a single UI.

The History Sidekick application pane provides the following features:

View version control tree with files and folders (similar to Source Control Explorer)

Search item (file or folder) by name and select found item in version control tree

View selected item history either for all users or filtered by user

Compare file versions selected in history

View selected item properties and pending changes

View selected item branches tree and selected branch properties

View selected item merge history; it is possible to view separately all merges performed with selected item as a merge target (merges to) or with selected item as a source (merges from)

Compare merge target and source file versions in history

View selected item merge candidates in a tree view; it is possible to select single merge source from the list

Compare merge candidate file version with latest version of target file

View selected item labels either for all users or filtered by user; the information displayed includes item version in label

Compare file versions between two labels

I have to say that I've been using the original Sidekick utilities for a while now and they just keep getting better and better. Thanks go to Attrice for providing these utilities.

07 July 2006

Martin Woodward has posted a tip on how to determine the expiration date of the 180 day trial edition of TFS. The short version is to run the following TFS command and add 180 days to the return value.

20 June 2006

A handy little utility, Bug Snapper, has been created and released by Grant Holliday. This utility allows you to quickly and easily create a "bug" work item within a Team Project without having to go through the Team Explorer client. You can quickly type in a title and description, specify a ranking, and take a screen shot.

It looks like the Team Foundation Server Service Pack 1 is getting closer to its initial beta release. Based on a blog post by Brian Harry, there is no current (public) timeline set for release but he expects the beta to be available in the "not too distant future".

Here is a list of improvements included in TFSSP1:

Version Control, WorkItem Tracking and Datawarehouse performance/scale improvements - the majority of these have come from our continued internal deployment. You can read one of my earlier blog posts for more detail on what kinds of things we've hit and addressed. We're now seeing great results on our internal servers with these fixes.

"Extranet support" - We implemented an ISAPI filter that will allow the intranet to use NTLM and integrated auth while the extra net uses basic auth. This enables TFS to be more easily deployed in environments where people on the internet need to be able to access TFS without having VPN.

WIT Custom Control support - This is a cool new feature. It is a mechanism by which people can design work item forms that host custom controls. The data behind the controls can either be persisted in WIT fields or elsewhere. I'm hoping people go crazy with it and build some awesome custom controls.

Bug fixes for Office 2007 (Project and Excel - no Sharepoint 2007 support yet), Vista and the new WAP project support - These were all things that were pretty far from shipping when we shipped so it was not possible to work out all the kinks (bugs on both sides). Now that they are much closer and more stable we've been able to make them work well.

Bug fixes for Dr. Watson reports - We've been collecting and analyzing all of the crashes that have been uploaded through Dr. Watson. We fixed the top offenders that accounted for a significant majority of all crashes that customers have experienced/reported.

I'm definitely looking forward to some performance improvements and am holding out hope that the version control improvements includes a "get latest on checkout" feature.

12 June 2006

Tech-Ed 2006 is now in ful force in Boston! I arrived yesterday afternoon, checked in, received a bag full of goodies and attended the keynote address. I had a nice, long, descriptive post about the keynote but the hard drive in my tablet PC decided to go kabunk this morning (it made some really horrible sounds and finally "blue-screened" Windows). So, if I'm able to retrieve any data from my hard drive, I'll post about the keynote at a later time.

This morning (Monday) I attended the session "Building Modern Software Services, Workflow and Identity" by David Chappell. He was a very good speaker (the best I've seen here so far) - almost to the point of being a motivational speaker. He is very passionate about software services and technology in general. His closing words... "go paint your bridge". This was in reference to an analogy that the Golden Gate Bridge is constantly being painted. Basically, the painters start at one end, paint all the way across, and then go back and start over again. He likened that process to technological advancements and change. Nicely put :-)

I still have a couple of sessions to attend before the day is over and am looking forward to more as the week goes on. I only wish my hard drive didn't crash-and-burn on me.

07 June 2006

The developers from Attrice have done it again. They have released a brand new sidekick - the Microsoft Build Sidekick. The Microsoft Build Sidekick allows you to edit your MSBuild projects in a graphical, hierarchical format. You can also use this utility to modify your TFS build types. It can take a few seconds to open up a build file and have it displayed in the utility but once it's loaded, it is very easy to work with.

Here is a list of initial features:

Load and modify any file complying to MSBuild schema

View build project structure in a tree view that displays tasks used in build, property groups and properties, item groups and items, targets and targets tasks and imported build projects.

Show or hide presentation of imported definitions in a project tree view

This is a nice feature set for a "1.0" product. Here are a couple of features I have suggested be added to the product (we'll see if they get implemented :-)

Ability to connect to a TFS project and directly modify TFS Build Type projects - including the ability to check it out from version control.

Ability to view XML source and graphical view side-by-side (or rather, over-under). It would be kind of neat, and somewhat useful, to be able to see the XML source get updated as changes are made in the graphical view.

Also, a new blog dedicated entirely to the set of Team Foundation Sidekicks has been created. Click here to check it out.

23 May 2006

Mitch Denny has posted a new TFS build clean-up service that will clean up your TFS build files throughout the day (at some pre-configured interval). If you find that you occasionally go in to manually delete old build files, this utility could be of use.

There are certain rules that must be met before the utility will remove the build files, including:

Have you ever wished you could have Intellisense when writing queries in Visual Studio's Server Explorer, SQL Server's Query Analyzer, or SQL Server 2005's Management Studio? Well, now you can! red-gate is currently offering their SQL Prompt product for free until September 1st, 2006.

SQL Prompt gives you the power of Intellisense for SQL. Here are a list of features:

19 May 2006

Brian Harry has posted an article on how Microsoft has started eating their own dog food by implementing Team Foundation Server within their own ranks. He details several of the issues they have ran into so far - most of which are related to the sheer size of their various projects. For example, one of the statistics he posts is the number of files and folders currently in their TFS system - 13,137,178 files and 1,677,668 folders. That's a lot of files although, according to his post, it will be a lot more than that by the time they're through.

Brian also goes on to state that they've fixed several bugs and performance issues internally within Team Foundation Server that they will be making publicly available (presumably sometime later this year).

It is a very interesting read to see how Microsoft is making use of their own tools.

I came across a nice document today on Microsoft's MSDN site that helps with planning new Team Projects. Although this document has probably been around for a little while, this was the first time I had seen. It provides a nice flowchart-like approach to planning Team Projects (e.g. do you create a new project or add to an existing project?).

Before creating a team project, you should carefully plan the scope of the project and consider the future path for the modification, growth, and maintenance of the team project. This topic presents a list of questions you must answer to determine whether you may want to create a new team project or expand an existing project. This list of questions is presented as a starting point for your deliberation and is not intended to be exhaustive or definitive for all software development projects.

This is definitely a good read if you haven't done so already. This document is a sub-topic of Creating and Managing Team Projects within MSDN. So, there is a lot of other useful Team System information at this site.

16 May 2006

Microsoft has launched a beta version of its new community software project development site - CodePlex.

CodePlex is an online software development environment for open and shared source developers to create, host and manage projects throughout the project lifecycle. It has been written from the ground up in C# using .NET 2.0 technology with Team Foundation Server on the back end. CodePlex is open to the public free of charge.

Since CodePlex is based on Team Foundation Server you can connect to the CodePlex site via the Team Client which will then display all projects for which you are a member.

You have to request approval to get a new project added to the site but they also state that if you create a gotdotnet project first, then your chances will be improved (assuming your gotdotnet project is active).

Word has it that Microsoft's current plan is to launch the final version of CodePlex at the Open Source Business Conference in London in late June.

15 May 2006

It's official... Tech-Ed 2006 in Boston is now officially sold out! Luckily I was able to register early on so I'll be there. If you were not able to register and would still like to attend, you can sign up for the waiting list.

12 May 2006

Although the PowerToys for the Visual Studio 2005 Class Designer and Distributed System Designers have been around for a while now (last release was December 1, 2005) I have just recently started to use them. There is some very useful functionality built into these PowerToys. Actually, there is surprising amount of functionality built in and I've only started to make use of some of it.

04 May 2006

Microsoft has released a set of monospaced ClearType fonts, called Consolas, intended for use in programming environments (e.g. VS 2005). In the past, I've not been a huge fan of ClearType fonts (they tend to look a little fuzzy to me). However, I've been using the Consolas fonts for about a day and, so far, I like it. I did have to bump my original font size up to 11 (from 10) to get rid of most of the "fuzziness". Per the Consolas download page:

Brief DescriptionOptimized for Microsoft ClearTypeThe Microsoft Consolas Font Family is a set of highly legible fonts designed for ClearType. It is intended for use in programming environments and other circumstances where a monospaced font is specified. This installation package will set the default font for Visual Studio to Consolas.

OverviewConsolas is intended for use in programming environments and other circumstances where a monospaced font is specified. All characters have the same width, like old typewriters, making it a good choice for personal and business correspondence. Optimizing the font specifically for ClearType allowed a design with proportions closer to normal text than traditional monospaced fonts like Courier. This allows for more comfortable reading of extended text on-screen.

The package will change the default text face in Visual Studio to the Consolas family.

This package is only intended for licensed users of Microsoft Visual Studio 2005.

Status Sidekick allows you to view pending changes for your Team Projects in a hierarchical format. The best feature of this utility is that it allows you to unlock one or more locked files/folders and/or undo pending changes on files/folders. Very handy if you don't want to break out the command line documentation :-)

02 May 2006

This semester marked the first time I've ever taught at the college level - an introduction to programming class using C#. It has been a fun semester and I've learned a lot - hopefully the students learned even more ;-).

Tonight was the final exam for the class so it is officially over until next time (actually, it's not over until I finish grading the exams - but close enough :-). I'm looking forward to having some of my evening hours back for other projects (home projects, software projects, movies, etc.).

Having been a contractor for eight years (not a contractor any more) I have done a lot of mentoring and one or two day sessions. However, I must admit that I like teaching in a classroom setting even more.

29 April 2006

Over the past few months I've come across several utilities related to Team System. Some of them have proven to be useful so I thought I'd compile a short list and post it in case anyone else might find them useful. Click here to see the list.

If you know of other Team System utilities that I do not have listed, please let me know about them so I can add them to the list.

The 3rd annual Heartland Developers Conference has been scheduled for October 26th and 27th, 2006. This will be the first time the conference has been held in Omaha, NE. I'm excited to go because A: it's very close (about 15 minutes from my house), B: it's inexpensive ($125 early bird registration fee - which my company is paying for), and C: I'm looking forward to hearing some great speakers.

If you live in the midwest (e.g. Nebraska, Iowa, Missouri, Kansas, Minnesota, etc.) then you should definitely consider attending this conference. Registration starts Monday, May 1st. There will most likely be a sellout crowd, so register ASAP :-)

Although I'll be attending Tech-Ed 2006 in Boston this year I'm excited to know that I'll get at least one more conference in (i.e. learning opportunity) before the end of the year.

18 April 2006

For those of you working in Visual Basic 2005, have you ever had a situation where you would like to view the value of a GUID variable during a debugging session?

One of the nice additions to Visual Studio 2005 are debugger visualizers. During a debugging session you can just hover over a variable to view the contents of that variable. This works for almost all .NET data types. However, if you try it with a GUID value, you can't see the actual value - rather you see "{System.Guid}" or "Empty", if you expand the visualizer.

I got tired of constantly typing "? guidVariable.ToString" in the Immediate window so I decided to create a GUID debugger visualizer. This visualizer allows you to view the actual value of the GUID variable, reset the value (either to an empty GUID or a GUID value of your choice), or generate a new GUID value. During a debugging session, simply click on the small magnifying glass while hovering over a GUID variable to display the visualizer (see image below).

Although I initially built this visualizer for Visual Basic 2005 (it's actually written in C#), it can be used for C# code as well. C#, oddly enough, has a built-in visualizer for GUIDs. However, my visualizer has some extra-added benefits (e.g. resetting to an empty GUID and generating a new GUID).

13 April 2006

Although I prefer developing in C#, I also develop in Visual Basic 2005. Microsoft has released the complete book, Introducing Microsoft Visual Basic 2005 for Developers, in PDF format for free.

Get a focused, first look at the features and capabilities in Microsoft Visual Basic 2005, Visual Studio 2005, and the .NET Framework 2.0. If you currently work with Visual Basic 6, these authors fully understand the adoption and code migration issues you'll encounter. They'll step you through a quick primer on .NET Framework programming, offering guidance for a productive transition. If you already work with .NET, you'll jump directly into what's new, learning how to extend your existing skills. From the innovations in rapid application development, debugging, and deployment, to new data access, desktop, and Web programming capabilities, you get the insights and code walkthroughs you need to be productive right away.

You can download individual chapters or the entire set as a single zip file.

05 April 2006

I came across a (relatively) new Microsoft site today that is dedicated to providing technical information for Visual Studio Team System.

Here you can access comprehensive resources from introductory to expert that include both online and self-paced training, the latest technical articles, videos, evaluation downloads, Webcasts by Visual Studio Team System experts and more. Take the first step to expand your opportunities!

There are a few "coming soon..." placeholders here and there but there is still a lot of good information on this site if you're interested in learning more about Team System.

19 March 2006

Team Foundation Server has been officially launched by Rick Laplante at SDWest 2006. We've been using TFS in various beta versions for several months now. It will be nice to finally have the release version available.

13 March 2006

I came across this utility a while back that allows you to easily remove project items from the Visual Studio MRU list. It works for the 2002, 2003, and 2005 versions. I saw a post today on a forum asking for a utility to do this so I thought I'd post this out for others to see (source code is included).

08 March 2006

If you've ever had to deal with turning the "wait" cursor on and off within your Windows Forms application then you've undoubtedly wished there was a better way.

The typical approach is to set the Cursor property for the current form to Cursors.WaitCursor at the beginning of a long-running process and then resetting it back to Cursors.DefaultCursor when the process has finished. You might even set the default cursor within a Finally block in case an exception is raised so as to prevent leaving the cursor in a "wait" state.

I've noticed that no matter how diligent you are, you almost always end up with the cursor out of sync at some point (e.g. your "wait" cursor doesn't display when it should or it displays when it shouldn't).

What if you could have your application automatically display the "wait" cursor at the appropriate time and then have it automatically reset back to the default cursor when the process has completed. Well, you can. During some research on this subject, I came across a custom class, AutoWaitCursor, that does just that.

Without going into the nitty gritty details (click the above link for the original source code and description), the idea is that the AutoWaitCursor class ties into the application's OnIdle event to determine when a long-running process is running. You only need to add a single line (using the version I've posted below - otherwise, you'll need at least two lines) of code to your application's main form's Load event to have your cursor change automatically.

For my current project, I had to convert the AutoWaitCursor class to VB.Net (the original is in C#). Click here to view the VB.Net source code.

Follow Up: I entered this as a suggested feature on the MSDN Product Feedback Center. If anyone else has any interest in seeing this become an intrinsic feature of the .Net Framework, click here to vote.

27 February 2006

thinktecture has released Version 0.6 of their hugely popular Visual Studio Add-In for developing web services using a contract first approach. The new version has been updated to work with Visual Studio 2005 & .Net 2.0. This version also offers a command line interface to the code generation tool. Here are some highlights:

24 February 2006

I had the opportunity to present MSBuild and Team Build to the Omaha .Net Users Group last night. We had a pretty good turn out of 73 attendees. I spent about an hour and 15 minutes going over MSBuild and Team Build and how they can drastically ease the burdon of the build process.

We just recently updated to the RC1 release of Team Foundation Server and I had to reconfigure the e-mail settings on the server. I had to do this the first time as well when we installed the Beta 3 Refresh version.

I didn't take part in the actual installation process so I don't know if the install asks for the SMTP server and Reply To address and the person installing it for us just didn't enter it, or if it's just not part of the setup.

In any case, if you ever need to go back and change the e-mail (SMTP) server or Reply To address, you can do it by editing the Web.config file under the following web service folder:

10 February 2006

Today we finished a 3-day crash course in TDD. We will start applying TDD techniques on our project starting next week. It should prove to be an interesting experience being that we have several schools of thought on our development team.