Friday, March 24, 2006

TFS VSS Mirgation and Team Build Config

VSS Migration

One VSS to TFS migration is done... Again, it’s best to follow the doc’s.

It’s a manual, command-line driven process, but it’s not that hard. Create a folder, create a XML settings file (cutting-n-pasting from the doc’s... see I told you following the doc’s was a good thing), fire up the VSSConverter utility to analyze the VSS DB, tweak the settings file, run VSSConverter again to migrate...

All in all, pretty easy and painless.

For my one small test VB8 project at least. ;)

The one thing I did cowboy was to not follow the instructions on manually backing up the VSS DB and then using that backup. Our VSS hosts years of projects and releases. Across a couple product lines... Yeah, we’re pushing it close (to the VSS cliff edge). For example, my product line alone has a 900MB archive.

So since our VSS DB has such an accumulation of projects, I decided I was going to take another approach. I archived my test project, using the VSS Admin tool, copied that archive local, restored it to a local VSS hive and then migrated that.

Yeah, I know that’s not perfect (restoring to a different location can break links, etc), but in my case, I’ve kept my product line fairly isolated from other projects, so it worked like a charm.

Also it lets me analyze/repair a much smaller VSS hive, isolates my work from others using the production hive, etc.

This procedure worked great for my one project... So now it’s time to try it with my entire product line’s VSS hive. I’m copying down the archive and will be prep’ing that for migration. This will be interesting in that it contains VB6, VB7.1 and VB8 projects...

One other thing... In creating a local hive, I can clean it up, nuke old crap (and I still have the source archive if I ever need that crud...). No need to deal with stuff that’s just not valid anymore. This is a good time to clean house...

Team Build

Since I now have a VB8 project under TFS version control, it was a good time to knock out my Team Build to-do item.

Earlier, I was a little confused about Team Build. I thought it was supposed to go on the TFS server and that I’d have to figure out how to put it on another box. Nope, that’s not how it goes. MS was much smarter than that.

Team Build is MEANT to be run on another workstation, or side-by-side on your dev box or both.

Again, read the doc’s. Team Build’s doc’s are a little lighter, but still a good resource. The setup is very easy, as long as you know to run [%TFS CD-ROM%]\build\setup.exe. There’s no menu/auto-run item for installing it.

In any case, I have team build in side-by-side mode on my dev box up and running, with a successful number of Team Builds now under my belt. The next step is to get a stand alone team build machine (the request has already been submitted)...

Some Notes:
A) Watch your path lengths.
When you create a "Build Type" you have to enter the local path that will be used to build the solution(s). This is where the source, once it’s been grabbed from version control will be put, the exe’s built, etc.

Well I like descriptive path names. And hiving my folders. So I created a rather long path for the Build Type.

Add that to the solution paths and I broke 260 characters. Dogh! (Let’s not get me started on how much I hate how the shell and most app’s use the ANSI (ASCII?) File IO API’s when the Unicode API’s will allow paths 32K long...).

So in your Build Types, use short local paths (like C:\TFSBuild\).

B) To edit your Build Type’s, you’re in XML land.

One you create your build with the wizard UI, to edit them, you’ll need to manually check out the .PROJ file from version control and edit XML.

What’s cool is that MS makes that VERY clear in the PROJ file itself. In the comments at the top of the PROJ file are all the instructions you should need as to where to get the file, check it out, edit and check it back in...

C) Team Build is Hacker Friendly

There’s a bunch you can do with Team Build (as it’s based/using MSBuild), but it’s going to take hacking to make it all happen. The wizard to create the Team Build is all the Build Type UI you’re going to get (except for the start build dialog and the results report...)

Meaning to extend your Team Build, you’re hacking the XML in the PROJ file...

What’s nice is that the schema for that is already installed, so you get intellisense when editing it.


That’s enough for today... I think my brain is full ;)

Related Past Post XRef:
TFS - Work Item’s and Customization
TFS Lesson #2 - Listen to my own advice...
TFS SQL Databases Moved... One Tip, Remember the DB Owner
"Moving Your Team Foundation Server Deployment"
My First Soup to Nuts Team Foundation Server Install
TFS Check In Policies, Code to Police Code
"An updated TFS MSSCCI provider is available"
VS6 MSSCCI Provider for TFS
TFS Administration Tool
"Migrating from Visual Source Safe to TFS"
"How many users will your Team Foundation Server support?"
Team Foundation Server 2005 & the "New" MSDN Universal

Technorati Tags: , ,

TFS - Work Item's and Customization

One of the primary concepts in TFS is the work item. Bugs, Feature Requests, Tasks, etc, etc all are Work Items. I’m not going to go into detail as there’s tons of great info from MS and others about Work Items...

As you know I have TFS installed and am playing with it. One of the early decisions I have to make is which TFS methodology I want to base my Projects on (which effects the available Work Items). While I feel my projects are more "agile" like (very short timeline, many iterations, light spec’s, customer/task driven, etc, etc), I think CMMI fits in my brain better.

I was raised on Bug’s, Change Requests, Requirements, etc, etc. And while I said my current projects are currently more agile like (I’ll not say chaotic... I’ll not say chaotic... I’ll not say...) I want them to grow up and become more manageable and the process more repeatable and dependable. Yeah, CMMI like.

Now that I’ve focused on a methodology, it’s time to tweak it. The Work Items in the CMMI box are close, but I want some different look up values, label names, etc.

This is where you can tell TFS is a v1.0. With a v1 you need to throw it against the wall and see if it sticks. You build in the features to make it "just good enough" and no more (well you start with a v3 like feature list, but in the end, cut, cut, cut... ;)

TFS v1 does a very cool job of rendering and displaying Work Items for filling-in and viewing. But it’s rough around the edges when it comes to changing the actual definition of the Work Item. Like if you want to change the values in the combo boxes, change field labels, etc. To edit the definition of a Work Item, out of the box, you’re using command line tools and XML editing.

The good news is that MS is already working on this.

For example, check out this very cool post/utility from Darren Jefford, VSTS Work Item Type Designer Preview. This tool leverages the cool DSL features of VS2005 to help diagram and visualize a work item’s fields and workflow. It doesn’t help in the importing or exporting, but that’s the easy part (once you know to use witexport and witimport)

"...Quite often customers will be happy to use these Work Item Type, but more often than not you may not like the terms we use such as Iteration, Milestone, etc. and you can change the names of any of the items on these Work Item Type definitions and if you want to collect further information you can add your own fields.

In Team Foundation V1, there is no graphical tool to customise these work items so you’ll need to use your favourite XML editor (normally notepad!) to customise the work item XML. The Work Item XML document is fairly complex and has lots of intra-dependencies so you have to be sure to get the spelling of everything right for example.

face=Verdana size=2>This type of workflow is very hard to visualize in an XML document which is where the VSTS Work Item Type designer comes in, I reference such a designer in my DSL Tools Chapter which is part of the Professional Visual Studio Team System book - it includes a screenshot of an early version of the designer.

The designer leverages DSL Tools and Visual Studio 2005, a Domain Specific Language model has been defined based on the Work Item Type Definition language and a graphical modelling tool has been overlaid on top

...


If your interested in trying the designer out then I’ve uploaded a current release of the designer to a new GotDotNet workspace.  This release works with VS2005 and it will install the DSL Tools Redist as required, you’ll also need to download the latest VS SDK (free once you’ve registered) as I haven’t got a Package Load key for VS2005 yet to enable it to load in a regular install of VS2005 (I have to jump through some hoops internally to get this done).

This release lets you open a Work Item Type definition that you’ve exported from Team System or created yourself and visualize it, you can add new States and Transitions, and new Fields (by right clicking Fields in the Model Explorer).  ..."

Installing it now. And while this preview is only that, a preview (it doesn’t save yet), it’s a good look at the cool stuff that is coming soon.

For today, to edit the labels and lookup’s I’m in witexport/import land.

I wonder how many thousand GUI command line wrappers are going to be written for
witexport/import in the coming weeks (I’m like 10 seconds away from writing one myself...)? I know there’s a TFS API, so I should be able to call it to get the Work Item XML instead of using the command line tools? That would be much cooler...

Also I need to hunt down the schema so I get intelisense in VS when editing the work item’s xml...

Man, I LOVE this stuff.... ;)

Related Past Post XRef:
TFS Lesson #2 - Listen to my own advice...
TFS SQL Databases Moved... One Tip, Remember the DB Owner
"Moving Your Team Foundation Server Deployment"
My First Soup to Nuts Team Foundation Server Install
TFS Check In Policies, Code to Police Code
"An updated TFS MSSCCI provider is available"
VS6 MSSCCI Provider for TFS
TFS Administration Tool
"Migrating from Visual Source Safe to TFS"
"How many users will your Team Foundation Server support?"
Team Foundation Server 2005 & the "New" MSDN Universal

Technorati Tags: , ,

Thursday, March 23, 2006

TFS Lesson #2 - Listen to my own advice...

I made the point earlier that it is important to follow the TFS setup checklist and to not cowboy the install...

Well I didn’t listen to my own advice when selecting the domain account I used to install TFS. Instead of waiting for our TFS Setup account to be configured correctly, I used my domain account.

Now I’m paying the price. Sure the install worked, but many of the DB objects were created with my domain account as the Owner.

For example, I was checking the SQL logs and saw the Agent jobs had errors...

Since I used my account to install TFS, the jobs were Owned by me. And now that I changed the DB ownership, they were failing. Changing their ownership fixed the problem, but what else am I missing? I’m pretty gun shy at this point... It seems to be working now, but I’d hate to be using TFS for a few months to only then find I’d jacked something.

I’m thinking of backing out everything, uninstalling it and starting again, this time doing it 100% by the book. Just to be sure...

Maybe I’ll first try some VSS and Bug/Issue migrations first and then nuke it all.

Yeah, I think that makes more sense. That way there’s no migration stress...

Related Past Post XRef:
TFS SQL Databases Moved... One Tip, Remember the DB Owner
"Moving Your Team Foundation Server Deployment"
My First Soup to Nuts Team Foundation Server Install
TFS Check In Policies, Code to Police Code
"An updated TFS MSSCCI provider is available"
VS6 MSSCCI Provider for TFS
TFS Administration Tool
"Migrating from Visual Source Safe to TFS"
"How many users will your Team Foundation Server support?"
Team Foundation Server 2005 & the "New" MSDN Universal

Technorati Tags: , ,




Copy Source as HTML - For VS2005

Dim Blog As New ThoughtStream(me) - Official CopySourceAsHTML 2005 Installer

"Jason Haley has posted the official CopySourceAsHTML 2005 installer over on his website:

http://jasonhaley.com/files/CopySourceAsHTML2005.zip
Much thanks to Jason for the work that he has put into this VS 2005 plugin. I use it on a daily basis."

Very nice. I was bummed that I didn’t have this tool for VS2005... Now I’m a happy camper.

Make sure you check out the comments for install hints (i.e. how to add the default install folder to the Add-In File Path list...without which the add-in will not load).

(via Peter’s Gekko - Copy source as HTML for VS2005 !)

Technorati Tags: , , ,

TFS Term of the Day: Self-Toast

I was browsing the Process Guidance for the MFS for Agile in TFS and in the Team Build, Work Product section for Developers I came across this...

"A team build is the compilation of all of the files, libraries, or components into a new set of executables, libraries, or components. Team builds that pass verification tests, are referred to as self-test. Builds that do not pass are referred to as self-toast."

LOL. The "self-toast" made me laugh (and snort-laugh too, which I hate doing :)

Based on a quick google, it looks like a valid term.

Here’s a post quote that explains the term, "your computer is toast if you install them." I like it... Added to the official Greg Dictionary.

Technorati Tags: , ,

TFS SQL Databases Moved... One Tip, Remember the DB Owner

After getting a quick confirmation from Rob Caron (here) that moving the TFS SQL DB’s should be as easy as detach/attach, I shut down IIS, the Reporting services, Full Text Services, detached all 11 DB’s, copied them to the E drive and reattached them.

One thing I didn’t think of was to record the original Owner of the DB. Woops.

When you attach a DB, you become the Owner by default. In this case, that’s not good. So thinking I was clever, I changed the Owner to SA for all 11 and rebooted.
(Changing the DB Owner is very easy. In SQL Management Studio, right click on the DB and select Properties. On the Database Properties dialog, click on the Files page. There’s the Owner field where you can easily change the Owner... assuming you have the right permissions).

And guess what? Almost everything seemed to be working... um... except for WSS. Dogh!

It was a login error, so I was sure my DB Owner assignment was the problem. Quickly changing the DB Owner to our TFS Service account solved the problem...

Now everything seems to be happy (for my login at least...).

Now to move the Analysis Server data files. I’ve not done this before, so it’s RTFM time...

Related Past Post XRef:

"Moving Your Team Foundation Server Deployment"
My First Soup to Nuts Team Foundation Server Install
TFS Check In Policies, Code to Police Code
"An updated TFS MSSCCI provider is available"
VS6 MSSCCI Provider for TFS
TFS Administration Tool
"Migrating from Visual Source Safe to TFS"
"How many users will your Team Foundation Server support?"
Team Foundation Server 2005 & the "New" MSDN Universal

Technorati Tags: , ,


"Moving Your Team Foundation Server Deployment"

Visual Studio Team System User Education - Moving Your Team Foundation Server Deployment

"Today we have some draft documentation on how you can move your Team Foundation Server deployment.  We have one conceptual and three procedural documents on this: Team Foundation Server Move Types, How to: Move from a Single-Server to a Dual-Server Deployment, How to: Move Your Team Foundation Server from One Hardware Configuration to Another, and How to Move Your Team Foundation Server from One Environment to Another.  This content is not yet part of the live MSDN content, but all of the other topics referenced within these draft topics are available on MSDN. This is the latest, most up-to-date content for Visual Studio Team Foundation - be sure to check it out!"

Yesterday I posted that one of the things I need to do is to move my TFS data stores around a little. These posts are for more complicated moves, but are still related (so in case I need them, posting them)...

My move requirements are much simpler, just moving data on the same machine from one drive to another. And since everything is in SQL databases (looks 11 DB’s) my move should be a simple administrative process? I’ve moved DB’s before (using both backup/restore and detach/attach) so that doesn’t concern me at all... but you never know.

I guess I better do this move before I migrate any code, just in case... ;)
 
(Via Federal Developer Weblog - The [Visual Studio Team Foundation Server] Moving Finger writes; and having writ, Moves on)

Related Past Post XRef:
My First Soup to Nuts Team Foundation Server Install
TFS Check In Policies, Code to Police Code
"An updated TFS MSSCCI provider is available"
VS6 MSSCCI Provider for TFS
TFS Administration Tool
"Migrating from Visual Source Safe to TFS"
"How many users will your Team Foundation Server support?"
Team Foundation Server 2005 & the "New" MSDN Universal


Technorati Tags: , ,

Free Plug-ins for Paint.Net

The Road to Know Where - New Free Plug-ins for Paint.NET

"Paint.NET is a free image and photo manipulation software designed to be used on computers that run Windows 2000, XP, Vista, or Server 2003. It supports layers, unlimited undo, special effects, and a wide variety of useful and powerful tools.

...

 
Download the New FREE Plug-Ins Here 


  • Four Distortion Effects Plug-ins
  • Benchmark Utility (PdnBench)
  • Glow Effect Plug-in
  • Effect Plug-in: CodeLab (for advanced users)
  • Conditional Hue/Saturation Effect  

..."

These are some cool plug-ins for my fav MSPaint replacement....

For example, there’s a ICO/CUR Plug-in (that’s not listed above) which was posted just a few hours ago. Finally I can use my favorate paint app to edit my icon’s. Now that’s cool... (Check out the forum post and its homepage).

The CodeLab plug-in is also pretty cool. It’s a mini-IDE for creating effects on the fly via C#. And when you’re done, it can compile the effect into a DLL for you... There are a number of samples in the zip to get you started.


All in all there are some cool items here, many with their source...


Past Post XRef:


Technorati Tags: ,

Wednesday, March 22, 2006

Visual Basic Snippet Editor 2005 version 1.1 Released

Visual Basic Snippet Editor: Workspace Home - Visual Basic Snippet Editor 2005 version 1.1
 
"(03/21/2006 • 702k ...)
Source code and binaries for the latest release.

Tested on English versions of Win32 and Win64, Visual Studio 2005 Professional, Team Suite and Express editions."
 
The VB Snippet Editor has rev’ed to 1.1.
 
Related Past Post XRef:
Visual Basic (and C#, J#, XML) Code Snippet Editor

 
Technorati Tags: , ,

My First Soup to Nuts Team Foundation Server Install

With the RTM of Team Foundation Server (TFS), it was time I get real about it and get it installed.

Today was that day. Starting with a fresh Win2003 install, I now have a working TFS install.

How long? Hours. Mostly due to install time and hunting down Win2003 & SQL Server ISO’s.

My main advice? Follow the Checklist and install How To’s closely. They are a great resource and will get you up and running with little or no problems (hopfully... your mileage may vary, etc, etc). There are a good bit of moving parts and pieces that need to be setup, setup correctly and in the right order. The checklist will help you with this... Don’t cowboy the install. RTFC (Read The Fine Checklist  ;)

So what do I have to do now?

A) Move the databases from their default C drive location to the RAID drives (E).
This should be... um... easy? I hope? Detach, move and then Attach?

B) Get the purchase process moving to get Standard.

C) Plan my VSS migration.

D) Generally play with it in a production mode.
I learn best by doing, so I need to pick a low risk CLR2 project and make the move to TFS...

E) Plan my existing Bug/Feature Tracking system (Test Director/Defect Manager) migration to TFS.

F) Install Team Build. Need to research this as I don’t want the builds to happen on TFS, but another box. I’m pretty sure this is do’able, I just need to figure out how.

New toys are so much fun.... ;)

Enterprise Library Integration Pack

colinco - Enterprise Library Integration Pack: First Look

"I’ve been working on a small side project to integrate Enterprise Library with Visual Studio.  The end result of the project, tentatively named Enterprise Library Integration Pack, provides the functionality of the Enterprise Library Configuration Console as an editor in Visual Studio 2005.  Here’s a first look:


In addition to releasing Enterprise Library and ACA.NET versions inside Avanade, I’m working to get legal approval to release the Enterprise Library version and source outside Avanade.  I expect to have installers for both versions and a decision on public release later this week.  Until then, enjoy the pictures, and dream of a world without the Configuration Console. :)"

Saw this on Brian’s blog (a fellow Simi Valley blogger... Go Simi!) and thought it cool.

Why do I think it’s cool? Anything that makes Enterprise Library easier to use is pretty cool. The VS integration is very cool and how Avanade supports the releasing to the public personal/side/background thread projects like this is coolest.

My feeling is that companies have much to gain by releasing non-core IP to the public. Utilities, add-on’s, hacks, tools, etc, etc. Those simple utilities that every company seems to generate. Like we learned in kindergarten, it’s good to share (as long as the company can be protected from litigation, etc, etc)...

(via Bryant Likes’s Blog - Enterprise Library Integration Pack)

Technorati Tags: , , ,

"Microsoft MechCommander 2 Shared Source Release"

Microsoft Downloads - Microsoft MechCommander 2 Shared Source Release

"This is the Shared Source release for MechCommander 2. This release contains all of the source code and source assets required to build MechCommander 2. This release can be used with the Microsoft XNA Build March 2006 CTP."

Not that I plan on playing with this source, I still think it’s cool to have...

Technorati Tags: , , ,

Scaling Bitmaps in .Net

Coding4Fun - Rob’s Image Shrinker

"... Scaling the bitmap is quite easy. There are draw methods that can be used to draw a rectangle from one image into another. By manipulating the sizes of the source and destinations, we can resize the image to fit on our device. The only difficulty is that we have to handle the aspect ratios of the source and destination, so that we don’t clip off any parts of the image.
 
...
 
Resizing images is actually quite easy. The DrawImage method can be supplied with source and destination rectangles. The method above decides which way the source needs to be scaled and then adjusts the size and position of the destination rectangle to suit. The call of DrawImage at the bottom of the method is the part that does the actual work. ..."

Just what I needed when I needed it...I needed a simple method to scale an image to a thumbnail representation and this did the trick.

This stuff always looks so easy in hindsight...

Technorati Tags: , , ,

Monday, March 20, 2006

"Simple Crawler using C# sockets"

The Code Project - Simple Crawler using C# sockets

"Introduction

A web crawler (also known as a web spider or ant) is a program, which browses the World Wide Web in a methodical, automated manner. Web crawlers are mainly used to create a copy of all the visited pages for later processing by a search engine, that will index the downloaded pages to provide fast searches. Crawlers can also be used for automating maintenance tasks on a web site, such as checking links or validating HTML code. Also, crawlers can be used to gather specific types of information from Web pages, such as harvesting e-mail addresses (usually for spam).

 
Crawler Overview

In this article I introduced a simple Web crawler with a simple interface to describe the crawling story in a simple C# program. My crawler takes the input interface of any Internet navigator to simplify the process. The user just input the URL to be crawled in the navigation bar, and click "Go".

The Crawler has a URL queue that is equivalent to the URL server in any Large Scale Search Engine. The Crawler works with multiple threads to fetch URLs from the Crawler queue. Then the retrieved pages saved in the storage area as in the previous figure.

The fetched URL are requested from the Web using C# Sockets library to avoid locking in any other C# libraries. Retrieved pages are parsed to extract new URL references to be put in the Crawler queue again to a certain depth defined in the Settings.

In the next sections I will describe the program views and discuss some technical points related to the interface.
 
..."

Sounds like something I might be able to use...

One of my personal projects is write a Blogger Backup/Export utility. The problem is that all the Blogger API’s and components I’ve found have a 100 or so post limit. That kind of hobbles me, having 1,695 posts. So I’ve resigned myself to having to crawl my blog and manually extract the data.

This Code Project sounds like something that will help me a good bit on my way...

Technorati Tags: ,