Archive

Archive for the ‘.NET’ Category

Certified

December 16th, 2009 1 comment

Microsoft Certified Professional logoYesterday, 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. = )

Categories: .NET, Misc Tags:

TFS API: How to Get a Specific Version Programmatically

December 4th, 2009 No comments

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.

TFS: Get Specific Version Options

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:

  • ChangesetVersionSpec
  • DateVersionSpec
  • LabelVersionSpec
  • LatestVersionSpec (equivalent to VersionSpec.Latest)
  • WorkspaceVersionSpec

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)

Microsoft Windows and ASP.NET Tutorial Sites

October 9th, 2009 No comments

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.

Categories: .NET Tags: , , ,

TFS API: Check if Server Path Exists

September 14th, 2009 No comments

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!");
}

Visual Studio 2010 Beta 1 on Virtual PC

May 27th, 2009 No comments

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.

Visual Studio logo

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!

MSDN Article: Using XML Comments

May 14th, 2009 No comments

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.