Getting VS2005 Team Explorer to Connect to TFS2008

Posted by kunal on July 17, 2008

As you can see from here there is a nasty error that pops up when you try to create a new team portal site from Visual Studio 2005 which is connecting to Team Foundation Server 2008.

If you look at the error log the problem is as follows:

Event Description: TF30162: Task “SharePointPortal” from Group “Portal” failed

Exception Type: Microsoft.TeamFoundation.Client.PcwException

Exception Message: The language id specified in the process template does not exist on the WSS server.

VS2005 will show you this:

“The language id specified in the process template does not exist on the WSS server”

On the weblog referenced above the hot fix indeed works, but most of the comments indicate it is not.

Here is the solution:

YOU must reinstall Visual Studio Service Pack SP1 before applying the Hotfix.

This problem happens because VS2005 SP1 was applied before installing the VS2005 Team Explorer Client.

So the version of the dll that is causing the problem is:

Microsoft.VisualStudio.TeamFoundation.TeamExplorer.dll -> 8.0.50727.147 - this version is not what is expected by the hotfix.

After you apply SP1, the version of this dll is correct, and the hotfix will work, and you will be able to connect to TFS2008 from a VS2005 Client.

Everything should work now.

Getting Subsonic to work with NUnit 4

Posted by kunal on November 23, 2007

I just started using SubSonic after Matt used it recently on a project. Setting it up was pretty straightforward, but when I tried to write some test cases using Nunit and tested my class library using the nunit-gui, I kept getting the following error:

“Cant Find the SubsonicService in your application’s config.”

Now if I converted my test class library into a console app, and spit out the results of by subsonic based calls, everything worked just fine.
What I discovered was that if you create a config file with the same name as your Nunit project file and add the subsonic section, everything will work. (Not to be confused with YourClassLibrary.dll.config).

So if your Nunit project is called Leet.nunit you need to create a config file called Leet.config and include the SubSonic configuration sections and then the nunit gui will happily test any code written with subsonic

Stomach Ache v/s a Cold

Posted by kunal on July 07, 2007

I have long said that i would take a terrible stomach ache v/s a sore throat and a cold. I have also always asked people their choice, if they had to choose, and almost every person said that they would rather take a cold. Well, after the 24 hour stomach virus I got yesterday, I’ve changed my mind too, I’ll take a sore raspy throat over a stomach ache any day. My wife had it first, and then I got it, we’re trying to protect our 5 month old, we’re not sure how we got it, but I am pretty sure I don’t ever want it it again. I wont go into the gory details, but like I said, I have a whole new respect for stomach and body aches coupled with NAUSEA!

Item information from Armory

Posted by kunal on June 29, 2007

Provided you get the basic character data, you can get information for Items using the link:

http://armory.worldofwarcraft.com/item-info.xml?i=28156

where 28156 would be the itemId from the characterinfo sheet

The XPath for the items would be: /page/characterInfo/characterTab/items

Once you get Item information, you can also get the path to the image…

I don’t know why Blizzard just doesnt expose the Armory via consumable web services, since enough people are already figuring out how to scrape/parse data via web requests.

A real neat service would be to return all items crafted by a character…and the corresponding character that may be wearing said item, or using a bag crafted by someone…

Warcraft Armory Web Service Source 3

Posted by kunal on June 27, 2007

A couple of people have emailed me for it, download it here. Again it just uses a basic webrequest and XPath…. Feel free to use it/extend it/etc, just shoot me a line if you use it.

Enter Key -> Submit Form in ASP.NET in IE 1

Posted by kunal on June 25, 2007

For some bizzare reason in IE, if you have a single text box and a submit button (even if its within a content place holder, for Master Pages), the Click event will NOT FIRE when you hit enter. In the case of master pages “DefaultButton” will not help you either, however, if you fake out Internet Explorer and make it think another text box is there, it will work. The style attributes should be display:none and visibility hidden. Do not set Visible= false. Today was the first time I actually ran into this problem (It does work with an asp:TextBox unlike this link says though)

Day 2 @ Tech Ed 1

Posted by kunal on June 05, 2007

I have taken a few more pictures but will upload them later tonight. I didn’t bring the laptop because there are internet ready PC’s available everywhere. Matt and I got here at 7am from the hotel and went to breakfast, where we spent some time talking to the software architect from Fujitsu. The one thing that he told us that really stuck was to “Keep learning”. He said if you fail to keep learning and keep up with the flurry of technologies that are being released you run the risk of becoming irrelevant, especially to other developers because you simply cannot “speak the language”. His team is already in the process of migrating their existing applications to the WPF. Keep sharpening the knife, if you will.

There was a small issue with internet availability this morning, but it has been resolved (That is why I can write this post ;)). All and all the conference so far has been a positive experience. Scott Guthrie’s “A Lap around Silverlight” has probably been the best session I have been to thus far. We also saw a preview demo of a Managed CardSpace application being developed for online banking authentication by Corillian(now CheckFree) for Wachovia. Pretty neat stuff, although it was quite evident that CardSpace is in its infancy and needs to mature considerably.

The next session we are going to is LINQ. More later.

Shots From Tech Ed - Day 1

Posted by kunal on June 04, 2007

Some shots Matt took, I’ll take more tommorow:

For Garrison: Holla

Will write more about the day today when I get back to the hotel. I am currently in a session called “A Lap Around Silverlight” with Matt Linder’s hero Scott Guthrie.

Made it to Orlando

Posted by kunal on June 03, 2007

Matt and I are in Orlando for TechEd 2007. I will post pictures from the convention center tomorrow. The place is huge. Lots of people here. Swag is decent. There are a lot of sessions we want to go to, we’re going to try to plan out each day the night before.

The drive from Lexington was pretty decent, we stopped a couple of times and drove through Barry. The traffic near the hotel we are staying is pretty bad. The hotel was our 4th choice, the first one being the DoubleTree across from the convention center, which by the way, is gigantic. Our hotel doesn’t have free WiFi either :( , we have to pay $9.95/day for wired access, I got some for today, but from the week there is WiFi at TechEd so it probably won’t be necessary.

Matt and I drove down International Blvd last night looking for food and we saw a group of protesters outside of KFC. Matt of course honked at them and gave them the thumbs up sign. This is the website they had on their protest banner. International Blvd, is pretty much the Harbison of Orlando if you are familiar with Harbison in the Columbia, SC area. Except multiply the traffic by a factor of 5 and add a lot of foot traffic. Our hotel is on International Blvd (the Wyndham) but its got a lot of area so you can’t really hear a lot of noise from the street.

I was looking at the weather back home in Lexington and find it ironic that we are getting hit with rain the day after I had my sprinkler system fixed. By the way, if you ever need any kind of landscape/sprinkler/sod/decks/etc work done in the Columbia/Lexington area, David and Tonya at Live Oaks are awesome.

Scraping the Warcraft Armory using C# and a Web Service 2

Posted by kunal on May 29, 2007

The World of Warcraft Armory provides a plethora of data about any given character on any given realm. The armory itself will return a pretty xml document provided you alter the standard request url that has a ‘#’ in it. Removing the # and viewing source in a browser gives a nice xml document that can be easily parsed

So your standard request would look like : http://armory.worldofwarcraft.com/#character-sheet.xml?r=Kil’jaeden&n=Vagh. View the page source, you wont see much. Removing the # however makes life much easier. Once the xml document was available via a web request, parsing it was easy enough. The only thing I had to do was set the UserAgent property of the request, without it being set, for a reason I cannot explain, the response received was the entire content page including the entire page starting with the html tag. Excluding the # however, fixed(?) it.
In anycase, I wrapped the code into an ASP.net webservice which can be called here

Screenshots:

Another point worth noting is the way Blizzard constructs its image url’s on the armory, the basic format is gender-race-class, so a male (0), dwarf(3) priest(5) would be 0-3-5.gif. This image url is exposed in the webservice. The interesting thing I found was, if you look at the Race and Classes that map to numbers…

enum Race
{
Human = 1,
Orc = 2,
Dwarf = 3,
NightElf = 4,
Undead = 5,
Tauren = 6,
Gnome = 7,
Troll = 8,
BloodElf = 10,
Draenei = 11
}

enum PlayerClass
{
Warrior = 1,
Paladin = 2,
Hunter = 3,
Rogue = 4,
Priest = 5,
Shaman = 7,
Mage = 8,
Warlock = 9,
Druid = 11

}

Race 9 and Class 6 are left out….hmmm…