TFS 2010: Changing Template for an Upgraded Team Project

IMG_3894 (Medium)The situation is fairly common, you have been using TFS 2008 for ALM in your work environment for a while, but suddenly, you have access to the latest version: TFS 2010, and wonder how cool could be make use of all the new features included in this new major version (like collections, work item hierarchies and finally a better integration with MS Project). You followed the Upgrade Guide (kindly provided by the TFS Rangers) and after some work you finally have your precious Team Projects safe in their new 2010 home. Clean and straightforward upgrade, wasn’t it?

Opps, wait a minute!, why I do not have access to those new cool dashboards, and reports from my upgraded project portals? Ok, let’s take a look at those functional testing capabilities I’ve been waiting for a long time.. opps.. The new MS Test Manager cannot connect to my upgraded projects!! The reason for all this and many other symptoms: the upgrade process did not upgrade the definition of your Team Projects.

You ended up with the same Work Items, Reports, etc. that you had in TFS 2008. No way!!

Steps to enable new features in upgraded team projects, or adding the missing dashboards are scattered through the blogosphere and the MSDN web site.

Based on my own experience, basically you have two options here:

  1. Branch the code from each upgraded project to a brand new Team Project in TFS 2010. Remove permissions to the upgraded project. This way you could have your source code history accessible from the new Team Project. Obviously, you will have trouble if you accidentally delete your old upgraded project from TFS. If you could live without your history then simply move the latest version to the new Team Project. This is very easy, and it is a valid option, but you will probably have this uneasy feeling that it could be done in a more elegant way (see option 2).
  2. Rebuild the entire definition of your Team Project to the latest ones included in TFS 2010!! This could sound a little drastic and unfortunately you will not easily find a comprehensive guide in the Web on how to accomplish this. That is exactly the goal of this article. 

Guide to Rebuilding your Team Project Template

Note: this guide is based on the assumption that you can delete all the preexisting Work Items created in your upgraded projects.  If you know how to overcome this limitation just let me know.

  1. Log in your TFS 2010 server or a desktop machine with Team Explorer 2010 installed. You must be Project Collection Administrator to execute the following steps.
  2. Download the latest CMMI and Agile Templates from your TFS 2010.  Open the Team Explorer 2010 (or VS 2010) as an Administrator. Right-click on the Collection..Team project Collection Settings..Process Template Manager…and download both templates to a folder in your disk. We will use the path C:\MSF for CMMI Process Improvement v5.0 in the following steps.
  3. Take a full back of your TFS 2010 server. Use the TFS Backup Power Tool for this.
  4. Open a command line prompt and change dir to C:\<Program Files>\Microsoft Visual Studio 10.0\Common7\IDE. You will need to execute the following steps for each one of the upgraded projects. In this case I will use a Collection named “Migrated”, and a Team Project called “TemplateChgTest”:

4.1 – Open Notepad and create a XML file called “ImCategories.xml” with the following content:

<?xml version="1.0" encoding="utf-8"?>
<cat:CATEGORIES xmlns:cat="
http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/categories">
</cat:CATEGORIES>

4.2 – Clean-up the current category list for the project. This would allow us to delete all the Work Item definitions. Import the empty Category list (ImCategories.xml) for the TemplateChgTest project. 

witadmin.exe exportcategories /collection:http://localhost:8080/tfs/Migrated /p:TemplateChgTest /f:"C:\TFSUpgrade\ImCategories.xml"

4.3 – Delete each one of the Work Item definitions of the team project. You can get a list of the current definitions through the Team Explorer, or using the witadmin listwitd command.

witadmin destroywitd /collection:http://localhost:8080/tfs/Migrated /p:TemplateChgTest /n:[Wort Item Name]

4.4 – Import the new definitions from the template downloaded in step 2. Do this for each one of the Work Item definitions in the new template.

witadmin importwitd /collection:http://localhost:8080/tfs/Migrated /p:TemplateChgTest /f:"C:\MSF for CMMI Process Improvement v5.0\WorkItem Tracking\TypeDefinitions\Bug.xml"

4.5 – Import the new Category list from the downloaded template.

witadmin.exe importcategories /collection:http://localhost:8080/tfs/Migrated /p:TemplateChgTest /f:"C:\MSF for CMMI Process Improvement v5.0\WorkItem Tracking\categories.xml”

4.6 – At his point you should be able to connect to your upgraded projects from MS Test Manager. You can also check your new definitions from Team Explorer (remember to refresh your projects or restart VS).

5 – Let’s rebuild the project portal and the new dashboards and reports. Details of this process are further explained here, but  in summary you will need to do this:

5.1 – In case you want your portal in the same path, backup your upgraded content and delete the portal. Open the WSS-based project portal and delete it (Site Actions…Site Settings…Site Administration…Delete this site).

5.2 – Delete your upgraded SSRS reports. Find the SSRS Server URL in the TFS Admin Console applet (under the Reporting node). Open the SSRS Report Manager in your browser and delete the reports folder for the upgraded team project.

5.3 – Manually copy the Queries from a new Project using the same template. Just copy and paste the queries in the Team Explorer tree view.

5.4 – Create the following XML file in notepad (C:\TFSUpgrade\AddDashboards.xml):

<?xml version="1.0" encoding="utf-8"?>

<Project xmlns="ProjectCreationSettingsFileSchema.xsd">

<TFSName>http://localhost:8080/tfs/Migrated</TFSName>

<LogFolder>C:\TFSUpgrade</LogFolder>

<ProjectName>TemplateChgTest</ProjectName>

<AddFeaturesToExistingProject>true</AddFeaturesToExistingProject>

<ProjectReportsEnabled>true</ProjectReportsEnabled>

<ProjectSiteEnabled>true</ProjectSiteEnabled>

<ProjectSiteWebApplication>WSSTFS</ProjectSiteWebApplication>

<ProjectSitePath>/Migrated/TemplateChgTest</ProjectSitePath>

<ProjectSiteTitle>TemplateChgTest</ProjectSiteTitle>

<ProjectSiteDescription>TemplateChgTest</ProjectSiteDescription>

<ProcessTemplateName>MSF for CMMI Process Improvement v5.0</ProcessTemplateName>

</Project>

Configure the parameter based on your environment. Remember that you can get the ProjectSiteWebApplication parameter from the TFS Admin Console (Under the Name column in the SharePoint Web Applications node.

5.5 Execute the rebuild process. For this, open the Command Window in VS2010 and enter the following command:

File.BatchNewTeamProject C:\TFSUpgrade\AddDashboards.xml

Wait for the completion of the command, and the check the generated log file for exceptions. This must contain a line to consider the process as successfully completed:

2011-04-12T15:36:08 | Module: BatchTeamProjectCreator | Thread: 1 | Team Project Batch Creation succeeded.

6 – Finnish! You are ready to go. Check the new portal, Excel and SSRS reports.

Notes:

  • Keep in mind that these steps will also work if you need to change the definition of your Team Project from CMMI to Agile or vice versa.
  • You will need minor changes if you are using your own template.

Enjoy, please let me know any comments!

Tags: , , , , ,

Beefing-up the Azure Platform

During PDC 2010 in Redmond, WA Microsoft announced a bunch of improvements to the whole Azure platform, some of them desperately needed:

  • Support for the new Virtual Machine role, in addition to the existing Web and Worker roles. This could allow PaaS scenarios, where you can build, configure and upload your own Windows Server 2008 R2 VMs as VHDs – quiet similar to the AWS model. (Great!!!) In addition, the pricing model for the Windows Azure VM role is the same as the existing pricing model for Web and Worker roles.
  • Enhancements to the Web and Worker roles: with the introduction of Elevated Privileges and Full IIS support!!! – so we now can have multiple IIS sites per Web role and the ability to install IIS modules. (Cool!!)
  • Windows Azure will also provide Remote Desktop functionality, which enables customers to connect to a running instance of their application or service in order to monitor activity and troubleshoot common problems. So basically your Azure computing instances are no longer black-boxes. (Finally!!!! OMG, I am going to cry…)
  • The introduction of an Extra Small Windows Azure instance – great!!, now you can configure an instance to run low-priority Worker Roles, or Admin apps without ruining your budget.

  • Compute Instance Size CPU Memory Instance Storage I/O Performance Cost per hour
    Extra Small 1.0 GHz 768 MB 20 GB Low $0.05

  • A range of new networking functionality under the Windows Azure Virtual Network name was introduced. Windows Azure Connect (formerly Project Sydney), which enables a simple and easy-to-manage mechanism to setup IP-based network connectivity between on-premises and Windows Azure resources, is the first Virtual Network feature that we’ll be making available as a CTP later this year. With this, your can establish VPN between your on-premises servers and your cloud machines. Much needed for some enterprise scenarios.
  • The Windows Azure portal will also be improved with SL technologies, and with access to new diagnostic information including the ability to click on a role to see type, and deployment time. (Finally, for god sake!!!)
  • A much needed update for the pretty basic Database Manager for SQL Azure (formerly “Project Houston”) was also announced.

Let’s wait these enhancements are released as soon as possible

Tags: , ,

Large DBs in SQL Azure

Recently, one of my customers asked me that question: “Based on the updated SQL Azure plans, the maximum database size is now 50GB. What if my DB requires more storage?

The first recommendation could be: try to measure how your DB is growing, and (if possible) try to have there only the most relevant information – SSIS is a great option to download all that historic data to your on-premises servers. Another option is Data Sync. Some good articles on measuring your DB size are:

How to Tell If You Are Out of Room – SQL Azure Team Blog – Site Home – MSDN Blogs

CalculatingTheSizeOfYourSQLAzureDatabase

Well, according to Microsoft 50GB is the maximum size, and if you need more space you will need to partition your data (either horizontally or vertically). Unfortunately, SQL Azure won’t help you much with this, and you will need to make some changes in your app logic to handle this. This should be done in your Data Access Layer, and it will not be an easy process to implement, let me warn you. Following articles could give you some insight on the details and limitations of this process:

SQL Azure Horizontal Partitioning- Part 2 – SQL Azure Team Blog – Site Home – MSDN Blogs

Scaling out with SQL Azure – TechNet Articles – Home – TechNet Wiki

Tags: , ,

Windows Azure… One Year After

We have been using Windows Azure for almost a year, hosting our portal (Hoteles.com.co), and the results have been quite good in general. Compared to the rest of PaaS offerings in the market, this is a great solution if your expertise is around the Microsoft stack – specially .NET and SQL Server.

For v2 we are planning to leverage more of the Azure platform, specially the Azure Storage. We will be servicing Hotel images directly from here. This could enhance the already good response times we have right now. Activating the CDN for this would bring some additional benefits as well.

The other good experience (should I say, the most important for us?? ;-) ) have been around the costs. After some changes, like moving out the Content Admin application from Azure to my regular Hosting provider, we are now paying an average of  60 USD per month. Not bad for a reliable and fast platform like this with access to data in SQL Server.

However, Azure is a new platform, and although it provides a good set of basic services, the portal still lacks of some important services, some available in some other PaaS offers (like AWS), such as:

  • It stills lacks an out-of-the-box UI in the Azure portal that enable Admins to monitor the load of the instances (in term of CPU, RAM, Disk Access, etc) – pretty much the functionality offered by really good tools like Azure Diagnostic Manager by Cerebrata. Why is this important? Well, because either you or the platform need to make decisions base on the load.  Should we allocate another instance to accommodate an increase in traffic?  — this is the base of the elasticity paradigm.  The Azure portal should bring some support to define such rules. The capability to define the number of instances per day of the week (i.e. what if the solution expects more traffic during the weekend..)
  • In addition, there is a lack of traffic statistics reporting in the Azure Portal. We are currently handling this through Google Analytics – but it would be great to have this integrated in the Azure portal.
  • It would be valuable to have access to some “Event Log” window from the Azure Portal with diagnostic information. Sometimes your application has problem and does not start but you cannot get the error info – it is like flying blind.

The good thing is that Azure is really strategic for Microsoft, and I expect to see this functionality shortly as part of the service.

Tags: , , ,

Walking in Cocuy – Last Day

Next day I had a good breakfast at the Herrera’s house. Scrambled eggs and hot chocolate started my last day of hiking in this beautiful place of Colombia.

This time Andres, one of our hiking partners convinced our guide to hire horses and save us around 2 hours of walking up to four thousand meters. We rode to a small, cozy refugee /hostel in the top of a small hill, just beside the most beautiful laguna I have ever seen – I regret I did not get a single picture of this multicolor beauty – the horse trail is so step and rocky that you have to firmly grab your seat – no time for holding a bulky camera.

SisumaOur horses took us through a step and rocky trail to a place called “el hotelito”, a known place for campers, in the middle of a narrow valley looking at the snow peaks. In this place the horses will rest and wait for us. We started to hike up over a extremely step hill covered with huge rocks during one hour to a granite plateau at 4500 meters.

Pulpito del Diablo

Walking in this plateau was very easy, with stunning views of the “pulpito del diablo” and the “pan de azucar”. 45 minutes and we reached the ice border. In this place we put in our crampons and follow the guide walking over the ice field. First time I do this and it feels like walking on glass pieces. Global warming is quickly melting these beautiful ice fields – the place is full of deep cracks. There are painted marks in the rock signaling where the ice border was in 2006 – like 100 meters downhill! This makes walking in this place, plus the high temperatures very difficult and risky, moreover we were not tied together with as rope!

Hiking Mates

After one hour we reached the 5000 meters. Andres wanted to make the summit of the “pan de azucar”, I waited in a beautiful and flat place besides the “pulpito” along with Liliana, for 45 minutes. What a great place to take pictures and the perfect blue sky make it even better.

Pulpito - from the side

Descent was quick. Andres and Liliana had to catch a bus in the town at 6.30, so all the journey we did in about 6 hours we now had to undo it in less than 4 hours. Both ankles hurt as we rush to the town. They  finally made it and we were ready for a good night sleep.

Next day we took it really easy, and we went to some “termales” nearby. I was so glad we could finish this trip in such a relaxing place with some beers.

Tags: , ,

Hoteles.com.co is unveiled!

Finally, after almost many months of continuous work between myself, and two friends (Thomas and Brian), Hoteles.com.co (aka “The H-Initiative”) was published the past 25th of April.

image

The amount of foreign travelers visiting Colombia has incremented during the past years due to a better perception in terms of security. The idea with Hoteles.com.co was to create a catalog of the best hotels, hostels and B&Bs in Colombia. This catalog is fully bi-lingual and constantly updated. Maps are also keys to the design of the site, and a good portion of the hotels in our database have accurate locations thanks to Google Maps.

From the technical side, the site is fully optimized for speed, using the new ASP.NET MVC model, and is basically the first solution in Colombia taking advantage of the new Windows Azure platform for cloud computing.

Please check it out and let me know your thoughts!

Tags: , , ,

Walking in Cocuy – Day 3

We started at 8AM, had breakfast, disassembled the tent, and arranged all the equipment for the long walk. We left our packs hidden in the bushes and started the walk with our day packs. Some later, Carlos will take them in horses to our next camp site.

On the way to Camp 2Hiking up to Camp 2On the Way UpValle de los Frailejones

The walk was difficult, but nothing serious, through a beautiful valley of fraylejones. We continued our hike climbing more and our over stone trails. That single day we hiked 1000 mtrs to up to 4500 mtrs. (a personal record!). Could you believe I forgot to bring something for lunch? I am such an amateur…  ;-)     Fortunately, Leo (our 2nd guide) kindly shared his soup/tuna with me. We had lunch besides a beautiful pond, full of fraylejones and crystal waters.

Finally we arrived to the camp site after 6 hours of walking. That was a significant test of my physical conditions. The site was basically a small plateau between the dust, and rocks.

MeBig Stones at Dawn

There is no vegetation at this altitude. A short walk from here was the “Laguna Grande de la Sierra”, surrounded by the “Concavo”, “Toti” and “Pan de Azucar” peaks. We would try to climb the last one during the next day.

What a gorgeous, pristine, cold and isolated place! Fortunately, only another tent was there—two young park rangers (how could somebody work at this altitude and conditions?). Night there was simply miserable, strong chilly winds smashed my tent for hours. Head aches also prevented me from getting a good sleep. My thumbs started to crack because of the cold and dryness, making the disassembly of my tent the following day a painful operation. In addition, the strong winds did not helped much.

Cocuy Concavo HDRCocuy - Pan de AzucarSunrise @ Laguna Grande

We started our descent at 9AM, leaving our still heavy packs to be picked up by horses later to “La Esperanza”. We arrived there after 4 hours of walking. I can feel that my body is responding better to altitude. We had a yummy trout for lunch, and a 4WD took us to the “Finca de los Herrera”— a beautiful finca conditioned for campers, like 20 mins from “La Esperanza”. We pitched our tents, then I had another chilly shower (call me masochist!), dinner and a good night sleep. This was our coldest night during the trip—anything liquid left outside was solid ice the next morning.

Tags: , , ,

Walking in Cocuy – Day 2

We started the day  not so early – around 7:30. Carlos, our guide cooked a delicious chicken and egg soup (changua). BTW, I had a fairly good night, not so cold.

A 4WD took us and our equipment to a small lodge/restaurant/grocery (“La Esperanza”) in the end of the road to La Laguna Grande de la Sierra, our first destination.

La EsperanzaCocuy - On the Way Up

From there we hiked for 30 mins to our first camping site (at 3500 mtrs.). The place was gorgeous, just besides a crystal clear river falling directly from the glacier . This river was so inviting, and the weather so warm that I took a plunge in its gelid waters…

Camp 1Cristal Clear Waters

Camping place was ok—hidden in the bushes, but very cold during the night, there was even a thin crust of frost over the tent the following morning.  

Walking in Cocuy – Day 1

 

The bus trip was long, during the whole night but without incidents. Unfortunately I could not see much of the scenery.


View Larger Map

Guavita cathedral was lovely, very different. We arrived early in the morning to this cold, remote town in the mountains. I grabbed a coffee in the main plaza and good breakfast in a nearby hotel. My guide did not showed up on my arrival, so I decided to spend the day resting until my guide shows up (I could not sleep much in the bus by the way) in a good Hotel I found just around the corner of the main plaza.

There were some travelers in the plaza, but most of the people come for daytrips with no camping equipment.

I still feel my pack heavy (14 kilos when I left).

Suggested Packing List (4 days)
Clothing:
-.Base layer pants (2)
-.Base layer sweater (2)
-. Underwear (3)
-. Hiking socks (3)
-. Polar fleece (Mid Layer) (1)
-. Rain Jacket/Shell (1)
-. Pocket quick dry Towel (1)
-. Hat/Kefiya
-. Hiking pants (light/quick dry)
-. Gloves
-. Sandals
-. Good waterproof hiking bots
-. Water proof pants (for the snow)
-. Gaiters for snow (optional)
Sleeping:
-. 2-two person dual-layer Tent. Tent must be able to handle strong winds.
-. Sleeping pad
-. Sleeping bag (<=-5C)
Backpack:
-. 70 Litters pack
-. ~15 Litters daypack, with strips for piolets.
Food:
-. Macaroni Cheese
-. Noodles
-. Sausages/ “Salchichón”
-. Cheese (Enmental)
-. Butter (portions)
-. Instant Coffee
-. Tea bags
-. Sugar
-. Gatorade instant powder or Activade
-. Beans
Health Pack:
-. Pain relief cream (Diclofenaco)
-. Hand cream (extreme cold will start to crack your fingers!!)
-. Sunscreen
-. Chapstick
-. Water purification system
-. Advil (painkiller)
-. Cipro/Lomotil
-. Band Aids
-. Vaseline tube
-. Biodegradable soap
Cooking:
-. Metal mug
-. Pot with cap (2 portions)
-. Utensils (2)
-. 2 cups/plates
-. Stove with butane tank (big one)
-. Matches/emergency fire starter
Gadgets and Accessories:
-. Swiss Army Knife
-. GPS (optional)
-. Headlamp
-. Camera
-. Spare batteries for your camera, and headlamp
-. Poles

El Cocuy, Boyacá

This town is very small, and beautiful, still not spoiled by modern Colombia. I finally met my guide at 4pm. He was expecting my arrive at that time!! – his cell phone was malfunctioning—so he did not get a single one of my calls since yesterday! Anyway, this is not the only improvised aspect  I have seen of this trip from their side… let’s see how things get through. I decided to take the “golden retriever approach” and simply be nice – anyway the hotel where I spend the whole day was quite good, clean and very cheap (COP 15K!! ~ 7USD ), and the meals great and also cheap (~ 3USD).

My guides have a beautiful house a few block from the main plaza. It is a big, old, authentic house with many rooms around a big patio. Full of photo opportunities.

Cocuy 630 Cocuy - Shadows of the PastMahoma from Cocuy

Many campers and climbers come a go during that day. By night, we took it easy and had some beers around a fire in the central patio.

Amelia

A faily good portrait of a remarkable woman:

I would love to see more women like her, specially here in LatAm..

Tags: