Certified
Yesterday, I took (and passed) the Microsoft Certification exam 70-536 (Technology Specialist: .NET Framework – Application Development Foundation). Three months worth of studying and it finally paid off.
Just wanted to share. = )
Yesterday, I took (and passed) the Microsoft Certification exam 70-536 (Technology Specialist: .NET Framework – Application Development Foundation). Three months worth of studying and it finally paid off.
Just wanted to share. = )
Within the Visual Studio Source Control Explorer, there are a number of options available for getting files out of TFS. Often times, developers just want to get the latest code to work with. But in some scenarios, developers need to get source files based on alternate criteria, such as by a specific date or label. TFS provides a handful of options for selecting source files easily within the “Get Specific Version” dialog.

This works really well within Visual Studio, but how can you do this programmatically? As it turns out, the Workspace.Get() method has an overloaded method that takes a VersionSpec argument. Notice that VersionSpec is actually a base class. and that there are several inherited classes that can be used to specify the changeset type, including:
For example, if you wanted to perform a GET on a specific changeset, you would simply pass an instance of ChangesetVersionSpec:
'connect to source control and get reference to existing workspace
Dim tfs As New TeamFoundationServer("http://myTfsServer:8080")
Dim vcs As VersionControlServer = _
DirectCast(tfs.GetService(GetType(VersionControlServer)), _
VersionControlServer)
Dim ws As Workspace = vcs.GetWorkspace("MyExistingWorkspace", My.User.Name)
'Perform a GET on Changeset 100
Dim version As New ChangesetVersionSpec(100)
ws.Get(version, GetOptions.GetAll)
Performing a GET based on a pre-defined label works in much the same way (just replace the ChangesetVersionSpec object with a LabelVersionSpec object):
'connect to source control and get reference to existing workspace
' (same as above)...
'Perform a GET on items defined by label "My Label"
Dim version As New LabelVersionSpec("My Label")
ws.Get(version, GetOptions.GetAll)
I’ve been a fan of the Microsoft’s ASP.NET site for a while now. If you’re not familiar with it, the site contains an awesome amount of information and resources for ASP.NET developers. One of my favorite features of this site is the Learning section, which contains a large number of tutorial videos covering a range of different technologies, tools and controls within the realm of ASP.NET development. While the videos are not usually in-depth on any single topic, they do provide great introductory examples to help me get past a lot of my initial hurdles and start developing something to cater to my specific needs.
Today, I came across theWindows Forms and WPF equivalent of the ASP.NET site, and I was amazed that I hadn’t thought to look sooner. This site has the same great information and resources I was used to seeing for ASP.NET. And this site also has a large number of video tutorials, both catering to the traditional Windows Forms developers as well as those moving into the WPF space.
This site has already made its way onto my list of useful work resources. Today’s video was a review on how to use the BackgroundWorker class to simplify multi-threading.
Disclaimer: Rarely do I get a chance to totally geek out and write a post specifically about code. I enjoy the change-up. And hopefully some of you will benefit from this.
Ok. On a recent project, I’ve been playing around with the .NET APIs that were made available for interacting with TFS. You can tell that the documentation for these API’s are a little more raw than what is available for the .NET framework components, but that is not to say they aren’t still helpful.
As part of my project, I needed to programmatically download files to the local machine from version control. As part of my unit testing, I wanted to validate the source path before attempting the download. Basically, I wanted the equivalent of the System.IO.Directory.Exists() method in the .NET framework, but that validates against version control.
After several minutes of searching, I found the VersionControlServer.ServerItemExists() method. This handy method basically combines the functionality of the File.Exists() and Directory.Exists() methods, switching between the two (or combining) by setting the custom ItemType enumeration.
Using this method, I can first validate the path, as the following example shows:
Dim fakePath As String = "$/MyFakeTeamProject/RoadToNowhere"
Dim vcServer As VersionControlServer = Nothing
'...initialize a reference to the version control server here...
'Perform validation against server path before downloading.
' This example works for both file or directory paths.
If Not vcServer.ServerItemExists(fakePath, ItemType.Any) Then
Throw New Exception("Hey! The path you gave me is bunk!")
End If
…and for the C# folks:
string fakePath = "$/MyFakeTeamProject/RoadToNowhere";
VersionControlServer vcServer = null;
//...initialize a reference to the version control server here...
// Perform validation against server path before downloading.
// This example works for both file or directory paths.
if (!vcServer.ServerItemExists(fakePath, ItemType.Any))
{
throw new Exception("Hey! The path you gave me is bunk!");
}
For those of you keeping track, Microsoft released the new Visual Studio 2010 beta 1 release last week. I was a little disappointed – though not surprised – that, unlike with their September CTP, Microsoft did not provide a Virtual PC image for the Beta 1 release.
Like some of you out there, I prefer to show a little restraint when it comes to installing beta software on my personal machine. I prefer not to hose my computer intentionally, nor incur the wrath of my better half by denying her access to her e-mail and internet.
Fortunately, the people at Channel 9 care about marital bliss, and have therefore posted a step-by-step video guide explaining how to set up your ownVirtual PC – at no cost! The video shows you how to install Visual Studio Team Suite 2010 beta 1, TFS 2010 beta 1, and SQL Server 2008 running on Windows Server 2008. You don’t need an MSDN subscription to get this software, which means that some of it is going to be trial-based. But, it’s a great way to give the beta a test-run without risking detriment to your own PC.
My install was very straightforward, with the help of the video . It took me about 3 hours from start to finish, mostly waiting for installation progress bars to fill up. Performance will vary based on your internet connection (when downloading the various software), and how much CPU and memory you are able to allocate to the Virtual PC. Oh, and the finished .VHD file will likely weigh in at a hefty 15 GB, so make sure to account for that ahead of time.
Have fun!
The May 2009 MSDN Magazine has a good article reviewing XML comments and their usefulness for code development and documentation. The article is primarily written for VB developers, but the concepts do apply to C# developers as well.
I’ve been using XML comments since Visual Studio 2005 came out. For your VB developers still developing legacy .NET 1.1 / VS 2003 apps, you can install the VBCommenter add-in, which will give you some of the basic functionality (C# developers have this out-of-the-box).
If you’re not familiar with XML comments – or if you’ve heard of them, but haven’t tried them out yet – give the article a look.