in

Platinum Bay

Peace, Love and Visual Studio Team System

.NETicated

March 2008 - Posts

  • MSF for Agile Process Template v4.0 to v4.2 Differences

    A number of folks on the forums have asked about what changed between Team Foundation Server 2005 and Team Foundation Server 2008, specifically in regard to process templates. I recommended that folks use a diff tool (I use BeyondCompare), but I thought I should get around to doing it myself and sharing the results.

    In this post, I'll outline the differences between the MSF for Agile process template between versions 4.0 and 4.2 in relation to the process template folder structure.

    Root

    The name element value on line 4 of ProcessTemplate.xml has changed:

    MSF for Agile Software Development - v4.0

    MSF for Agile Software Development - v4.2

    Classification

    No changes (whitespace differences).

    Groups and Permissions

    No changes (whitespace differences).

    Reports

    Two reports were removed:

    • Load Test Comparison.rdl
    • Load Tests.rdl

    Two reports were added:

    • Exit Criteria.rdl
    • Issues List.rdl

    Twenty-One reports have changed; there were substantial changes made to both the queries and layouts of most reports.

    • Actual Quality vs Planned Velocity.rdl
    • Bug Rates.rdl
    • Bugs by Priority.rdl
    • Bugs Found Without Corresponding Tests.rdl
    • Builds.rdl
    • Load Test Detail.rdl
    • Load Test Summary.rdl
    • Project Velocity.rdl
    • Quality Indicators.rdl
    • Reactivations.rdl
    • Regressions.rdl
    • Related Work Items.rdl
    • Remaining Work.rdl
    • ReportsTasks.xml
    • Scenario Details.rdl
    • Tests Failing without Active Bugs.rdl
    • Tests Passing with Active Bugs.rdl
    • Unplanned Work.rdl
    • Work Item with Tasks.rdl
    • Work Item with TestResults.rdl
    • Work Items.rdl

    Version Control

    VersionControl.xml - new child element added to the taskXml node:

        <get_latest_on_checkout required="false" />

    Windows SharePoint Services

    There are far too many changes to list in this post related to the SharePoint project portal documents. If you have made project portal customizations, you may want to do a diff yourself to get the changes.

    WorkItem Tracking

    workitems.xml – Negligable change to the completionMessage attribute value on line 7:

    WorkItemTypes created

    Work item types created

    WorkItem Tracking – Queries

    AllWorkItems.wiq – The where statement changed in the Wiql element to include

    AND [System.State] &lt;&gt; 'Closed'

    MyWorkItems.wiq – The where statement changed in the Wiql element to include:

    AND [System.State] &lt;&gt; 'Closed'

    WorkItem Tracking – TypeDefinitions

    No changes.

    Posted Mar 28 2008, 12:37 AM by Steve with 4 comment(s)
    Filed under: ,
  • Quadriplegic Programming

    I have often wondered how folks with Quadriplegia, which is paralysis of all four limbs, might pursue a career in software development. I mean, software development is super-tightly-coupled to a keyboard and a mouse. To this end, I have long thought about what sort of devices could be used to overcome such a disability.

    My basic idea has always been to use eye tracking to substitute for the mouse, and voice recognition to substitute for the keyboard. Unfortunately, I have not seen any really great and inexpensive products out there to provide these services, until now.

    Andy Schwam recently posted about some YouTube videos by Johnny Lee in which he takes a Wii remote and thinks outside the box, and it got me thinking. One of Johnny's videos used reflective tape and an IR array to do finger tracking, and I realized the same effect could be used to track eyes, so here's my idea.

    First, an IR emitter array would be mounted above the computer monitor. Next, special contact lenses would be fitted which reflect light relative to the colored portion of the eye, and block IR light to the pupil to prevent eye damage. Third, a special baseball cap would be put on which contains an IR camera on the brim facing the user's face.

    The first step to using the system would be an eight-part calibration using four or five points, one for each eye, similar to the Windows Mobile screen alignment (left).

    The concept is to use 1-second winks to perform mouse button clicks. Winking the left eye would be the left-click; and the same for the right, with blinking being ignored. To drag, simply sight the cursor to the object, close the left eye for more than one second to select the object, and move the right-eye to the target, opening the left eye to release the object.

    The next, and slightly more complex step, is voice recognition, and this doesn't involve the Wii remote at all. There are many voice recognition systems on the market today, but the concept I believe is still in its infancy, and would be difficult to adapt to keyboard-less systems. I'd like to propose my method of speech recognition.

    Speech recognition would be handled in two modes: keyboard and transcriber. Keyboard mode would allow the user to simply speak a button on the keyboard, such as tab, space, percent and ampersand. Transcriber mode would allow for direct, dictation-type data entry. A visual toolbar would be visible and docked on the screen allowing the individual to switch data entry modes. The toolbar would also provide shortcuts and user-customizable system macros to perform common tasks.

    I believe these two methods provide the most convenient and simplest method of vocal data entry. Here are some examples:

    Navigate to 'C:\Temp' in the command prompt:

    • [Visually open the command prompt]
    • [Keyboard mode]
    • C
    • D
    • Space
    • C
    • Colon
    • Backslash
    • Enter
    • C
    • D
    • Space
    • T
    • Tab (to correct item)
    • Enter

    Navigate to Microsoft.com in a web browser:

    • [Visually open the web browser]
    • [Visually select the address bar]
    • [Transcriber mode]
    • Microsoft
    • [Keyboard mode]
    • Control
    • And – note the '&' symbol would be spoken as 'ampersand'. 'And' is used for multi-key input.
    • Enter

    The third method of data entry would be an onscreen keyboard, usable with the eye tracking system.

    So that's my idea. I'd love to see if a prototype could be put together, so if anyone is interested in playing with this, give me a shout.

  • From the Forums: Code Analysis and Custom Path Policies

    A couple users have reported issues with using the Custom Path policy with the Code Analysis policy. The Custom Path policy is part of the Team Foundation Power Tools, and can you can get the bits for free from the Microsoft Web site.

    The Custom Path policy allows you to scope a check-in policy to specific source control paths and file types. Unfortunately, it appears that the Custom Path policy doesn't play nicely with the Code Analysis policy. I was able to reproduce this by adding a Code Analysis check-in policy, and then creating a Custom Path policy to scope it. The result is that the Code Analysis policy doesn't run at all. For any path, though it works successfully as a standalone policy.

    I opened up a bug on the Microsoft Connect portal, so for those that may experience this issue I recommend you go and validate the bug, and provide any additional feedback you may have.

    Posted Mar 28 2008, 12:25 AM by Steve with 1 comment(s)
    Filed under: ,
  • CMAP Code Camp – Spring 2008

    Just a little plug for Chris down at CMAP: their spring Code Camp is coming up in April.

    Registration is now open. Space is limited for this FREE event, so register soon. Click here to register.

    Central Maryland Association of .NET Professionals (CMAP) will holding its Code Camp 2008 Spring Edition on April 12, 2008. The Code Camp will be held at the Loyola College Graduate Center in Columbia, MD from 9am - 5pm.

    Great source of information for FREE, with a FREE lunch, and chances to win great giveaway items, what a great way to spend a Saturday...

    Remember space is limited for this FREE event, so register soon. Click here to register.

    Posted Mar 25 2008, 12:00 AM by Steve with no comments
    Filed under:
  • And now back to our regularly unscheduled program

    So, my birthday post seems to have been a hit: so far over 1,500 views and 93 comments. It was so popular it seems that my database hit its storage limit and the site started acting goofy. A couple table truncations and a db shrink seem to have done the trick for now. Sorry for any problems folks encountered. Off we go again…

  • Team System Link Love: 4

    Events

    Resources

    Source Control

    Tools

    General

    Posted Mar 21 2008, 05:32 PM by Steve with 1 comment(s)
    Filed under:
  • Happy Visual Studio Birthday

    On November 10, 1775, an act of the Continental Congress declared "That two Battalions of Marines be raised…". Today they are known as the Marine Corps, and every November 10th the Marine Corps celebrates their Marine birthday with a reading from the Marine Corps manual, a birthday message from the Commandant, and other festivities as well as greetings and good wishes among Marines.

    Most Visual Studio developers have not fought on the enemy's battlefield with bullets and blood. For those that have in the 232 years of the Marine Corps, I offer my deepest respect and sincerest appreciation.

    On March 19, 1997, Visual Studio 97 was released to the public and thus began a new era of software development. In like manner to the Marines, on this March 19th I would like to wish all of my fellow Visual Studio developers a happy 11th Visual Studio birthday.

    Further, I suggest a Visual Studio birthday tradition. First, Scott Guthrie, corporate vice president of the .NET Developer Platform at Microsoft, should deliver a birthday message. Second, we should each read the Visual Studio 97 mission to help remind us of our legacy and what our ambition should be:

    In looking to build high-quality tools, Microsoft listened to customers, each clamoring for tighter integration across the myriad of utilities, tools, servers, and platform features they required. Visual Studio 97 enabled development teams to share in large-scale projects across the entire development life cycle, even when mixing components of various languages and using various deployment architectures such as the Internet, Microsoft Windows, and, increasingly, mobile devices.

    Happy Birthday!

     


    [Updated: 3/20/2008]

    I made a note in the comments, but I wanted to make sure I clarified my post.  I am in no way making any sort of comparison between Microsoft and Visual Studio, and the United States Marine Corps.  I am also not in any way trying to suggest that software developers do anything nearly as courageous or selfless as that of the US Marine Corps.  I am simply trying to make reference to the camaraderie of the Marines, and how we might introduce some of their 'community spirit' into our own software development community.

  • Visual Studio: Easily Edit Project Files

    In case you aren't aware, project files like .CSPROJ and .VBPROJ are really MSBuild project files, and as such, you can edit them to perform additional tasks, include targets, and more. I have often found myself editing them in Notepad because I believed it was the easiest way. As of today I am using Notepad no more, at least for editing project files.

    This is because you can work with project files directly in Visual Studio without closing your project, and with full IntelliSense and syntax highlighting. Simply right-click the project node in the Solution Explorer tool window and select Unload Project. Then right-click on the project file again, and select Edit [Project Name]. You can now edit the project file with full Visual Studio editor window support.

    When you are done editing the project file, right-click on the project node and choose the Reload Project command.

    Simple, eh?

  • Team Foundation – Diagnosing Common Connection Problems

    There are quite a number of questions on the forums related to connection issues with Team Foundation. Not that Team Foundation inherently has connection problems, I've never had any, but that it may not have been installed or configured it correctly or the environment could have changed. In this post I'll take a look at some of the common connection issues and make suggestions for the diagnosis and correction of these issues.

    This list is by no means conclusive, so please send me your suggestions and comments.

    Connectivity issues can cause the following errors:

    • TF31002: Unable to connect to this Team Foundation Server
    • TF31002: Unable to connect to TFS 2008
    • TF30207: Error when creating a project

    Ports

    If you have a firewall or system protection software running on your local machine or on the network between you and TFS, that software may block ports needed by Team Foundation or Team Explorer. The default ports are as follows:

    Team Foundation Server

    8080

    Team System Web Access

    8090

    Team Foundation Server Proxy

    8081

    SQL Server Reporting Services

    80

    SharePoint

    80

    SharePoint Central Administration

    17012

     

    Changing these default ports may lead to connectivity loss with team Foundation, so changes should be made cautiously.

    Note also that SharePoint, which contains the team project portals, runs on port 80 by default. If you try and set Team System Web Access to run on port 80 without using a host header, SharePoint will no longer be accessible, and you may receive the 'red X' in the document libraries folders Team Explorer.

    Team Explorer

    Make sure you have the latest version of the Team Explorer client installed. For instance, if you still have a beta version installed, you should install the RC version.

    Web Services

    Navigate to the Team Foundation server status web service from the server itself to ensure it is functioning properly:

    http:// <servername>:8080/services/v1.0/serverstatus.asmx

    If you can access the web service from the server, try accessing the same web service from the client machine.

    Network

    Try pinging the server using the full DNS name from the client. If this fails, you may need to update the DNS settings on the server, or flush your local DNS resolver cache:

    ipconfig /flushdns

    Machine.Config

    If you are seeing the following error message, make sure the machine.config file is not corrupted:

    Unhandled Exception: System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize

    If it is, you may want to try copying the System.ServiceModel node from another machine.

    Closing

    If your problem wasn't solved here, or was solved by another method, please send suggestions, updates and questions for future updates to this post.

    Posted Mar 14 2008, 06:13 PM by Steve with 2 comment(s)
    Filed under: ,
  • From the Forums: Custom Path Policy

    The idea behind the Custom Path Policy is to enable the application or exclusion of source control policies to a specific portion or portions of your source control tree. The Custom Path Policy is part of the Team Foundation Server Power Tools, and can be downloaded for free from the Microsoft Web site.

    Let's say you enable the Code Analysis check-in policy on your team project. All is great and the developers are checking in some wonderful code. Unfortunately for the QA team, this also means that Code Analysis is being run on their unit tests, where it isn't really needed (arguably).

    The solution would be to create a Custom Path Policy to exclude the unit tests directory from the Code Analysis policy by using the following steps:

    1. Open the Team Explorer tool window in Visual Studio
    2. Right-click on your team project, and select Team Project Settings | Source Control…
    3. Click to the Check-in Policy tab
    4. Click Add…
    5. Select Custom Path Policy and click OK
    6. In the Select Child Policy dropdown, select the policy for which the Custom Path Policy should apply. Note, if you just added the child policy, it may not show up in the dropdown until you close and re-open the Source Control Settings dialog. In our case, we would select the Code Analysis policy.

    Next, we must define the regular expressions which act as source control path filters. I personally use Expresso (here and here) to work with regular expressions and find it quite handy though your mileage may vary. Here are some path filter examples:

    Apply the policy to all C# source files, except under the UnitTests directory:

    ^((?!.*(/UnitTests/)).)*\.cs$

    Apply the policy to all C# source files, except under the UnitTests and Archive directories:

    ^((?!.*(/UnitTests/|/Archive/)).)*\.cs$

    Apply the policy only to a specific directory:

    .*/Path/To/Specific/Directory/.*

    Note, trying to enter an invalid regular expression filter results in the following dialog:

    It is also important to note that when entering multiple regular expression filters, they are joined using OR under the covers as in (regex 1 OR regex 2 OR BOTH). This is important when trying to specify a project and a file type, and means that you should express both in the same expression.

    Now that the regular expressions are set up, we can finish up with our custom path policy:

    1. Once the filters are defined, click OK
    2. You will be presented with the following dialog, which may be somewhat ambiguous:

      This means that you need to disable the original policy, which in our case is the Code Analysis policy, or it will be run twice: once by itself and once as part of the Custom Path policy.

       

    3. Click OK to close the message box
    4. Select the original policy, in our example the Code Analysis policy, and click the Disable button
    Posted Mar 07 2008, 10:49 PM by Steve with no comments
    Filed under:
  • Team System Link Love: 3

    General

    Add-Ins:

    Extensibility

    Work Items

    Code Analysis

    Data Warehouse and Reporting

  • From the Forums: Changing a Work Item Type

    Out of the box, it is not possible to change the type of an existing work item. For example, in the CMMI template, you can't convert a Bug to a Change Request.

    It seems to me that this could be a common scenario in many environments. The customer calls up and reports that the product is 'broken', and customer support opens a Bug work item. After further review, it is determined that the product is not broken, what the customer is really asking for is a Change Request, or enhancement.

    While you cannot change the type of an existing work item, there are two options. In a work items query results page in Team Explorer, you can right-click on the work item, and choose from the following two options:

    Create Copy of Work Item

    Copies a work item that can be modified and saved under another name. This option is useful as a method of creating a work item from a 'template'. It is also handy for creating work items from a Scenario or Quality of Service requirement.

    Add Related Work Item

    Allows you to create and associate two or more work items. This option is useful when work items are not identical, but are similar. It creates a related link between the original and the copy.

    Using this option, the hypothetical review mentioned above would take the original Bug work item and create a copy as a Change Request or Enhancement work item. The two work items are then linked together in the Links tab of the work item form. The original item can then be closed.

    Posted Mar 02 2008, 11:01 PM by Steve with no comments
    Filed under:
  • 5 People That Influenced My Career

    Andy Schwam and Dani Diaz have started a 'Post-It-Forward' meme highlighting five people that have influenced their careers.

    I think Andy says it best:

    I encourage all bloggers to write a post and mention 5 people that influenced their careers. It doesn't have to be a chain; you don't need to be "tagged" to join in. Just pick your 5 people. None of the people I am naming have blogs themselves. It's just a chance to say thank you. You can pick anyone you want, it doesn't even have to be someone you know personally or worked with, just someone who has had an impact on your career.

    Here is my list in no particular order:

    My Parents

    Ok, so it sounds cliché, but it is also true. I remember my parents getting me a Mac IIci for Christmas when I was around 15, and I would tinker with HyperCard and FileMaker Pro every chance I got. My Dad had to literally unplug it so I would go to bed (argh!!!). Even before that, I would spend time on my Mom's IBM PC in the basement playing with DOS and DOS-based text editors.

    Dan Hart – Owner – Sofwerks

    Dan Hart gave me my first job, which I wasn't technically qualified for, and mentored me in web development (ASP, VB6, and SQL Server). If it wasn't for Dan, I'd probably still be towing cars.

    Ovidiu Balan – Senior Software Developer – SunGard AMS

    Let's start out by saying that Ovi is a genius. I had the privilege of working with Ovi at SunGard for the better part of six years, and his knowledge and technical aptitude amazed me. Among other things, Ovi is responsible for helping me be more scientific and mathematical in my development, as well as to look closer at the business side of a problem before leaping in with a technical solution.

    The other part of this story is that Ovi was one of my interviewers before I went to work at SunGard. Little did he know he was also interviewing for a brother-in-law. His sister also worked there, and we worked two cubes apart for the same manager. She and I ended up falling in love there and getting married.

    Dani Diaz – Developer Evangelist – Microsoft Corporation

    I first met Dani about a year ago at a Philly .NET event. Dani has been a great inspirer and mentor in helping me find my passion and technology focus. Dani has also inspired me to be an influencer and a mentor myself.

    Bill Wolff – Grand Poobah – Philly .NET User Group

    Bill Wolff started the Philly .NET User Group in 2001. Not only have I learned a ton of information from attending user group meetings over the past year, but I got my current job after meeting a recruiter at one of the Code Camps.

    Now that you've seen my list, I encourage you to create your own; say thanks to those that helped you along the way.

  • Adding TFPT to the Visual Studio Command Prompt

    I was playing around with work items this afternoon, and wanted to delete a couple that I had been playing around with. You can't delete work items from Team Explorer, but you can using the Team Foundation Power Tools. So I opened the Visual Studio Command Prompt, and typed:

    C:\Program Files\Microsoft Visual Studio 9.0\VC>tfpt
    'tfpt' is not recognized as an internal or external command,
    operable program or batch file.

    Bummer, I guess the Power Tools install didn't add it to the environment variables. I decided to do it myself. First, I right-clicked on the Visual Studio Command Prompt shortcut and chose Properties. In the Target textbox, I could see it was calling C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat. Opening vcvarsall.bat, I found that it was calling vcvars32.bat in the bin directory. I opened vcvars32.bat only to find that it in turn called vsvars32.bat in the Common7\Tools directory.

    I opened vsvars32.bat and was relieved to find that it wasn't calling yet another batch file. On line 25, I was able to append the path to the Team Foundation Power Tools, 'C:\Program Files\Microsoft Team Foundation Server 2008 Power Tools' before the '%PATH% variable at the end of the line.

    It now looks like:

    @set PATH=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN;C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools;C:\WINDOWS\Microsoft.NET\Framework\v3.5;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 9.0\VC\VCPackages;C:\Program Files\Microsoft Team Foundation Server 2008 Power Tools;%PATH%

    Now I can run tfpt from the Visual Studio Command Prompt.

    Posted Mar 01 2008, 03:18 PM by Steve with no comments
    Filed under: ,
  • Team System Link Love: 2

    Today's list:

    Posted Mar 01 2008, 01:13 AM by Steve with 2 comment(s)
    Filed under:
Powered by Community Server (Commercial Edition), by Telligent Systems
© Platinum Bay | Some Rights Reserved Creative Commons License

Disclaimer: The information in this weblog is provided "AS IS" with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion. Feel free to challenge me, disagree with me, or tell me I'm completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever (abusive, profane, rude, or annonymous comments) - so keep it polite, please.