Monthly Archives: November 2009

Uninstalled Windows Virtual PC

A while back I blogged about testing VirtualBox. At the same time we’ve tested Windows Virtual PC, and it’s been disappointing pretty much across the board:

  1. It doesn’t run on our company’s Lenovo T61’s, which displays some vague error message. Since most of our developers have a T61, this means they can’t use it at all. Virtual PC 2007 and VirtualBox run fine, so it isn’t clear why WVPC can’t. We have some different machines where it does work, so we went on testing on those to see how well it works, in case Microsoft steps up and fixes the T61 problem and starts supporting 64-bit guests. See the remaining points for my experience…
  2. The integration features of WVPC suck. Even something simple like dragging a file from the guest to the host or vice versa doesn’t work. The reason is that with Integration Mode enabled, you’re actually connected to the guest through Remote Desktop Connection. Microsoft has done this to leverage some of the advantages of RDP (as Ben Armstrong explains), but IMHO they should find a different way to do so.
  3. Starting/stopping a guest takes forever, and renders my laptop inoperable while doing so. With VPC 2007 hibernating or restoring a hibernated VPC with 1.5 GB of memory takes several tens of seconds, but I can easily use all other applications while doing so. WIth WVPC just restarting a hibernated image tages 3-5 minutes and during that time my other applicaties are pretty much frozen. I can get a cup of coffee (if I’d drink coffee), eat a sandwich, and go to the John, during the wait. I have no clue why this works as bad as it does, because VPC does this perfectly fine.

The only thing that’s been a positive experience is the performance once it has started. That said, I can’t really tell if VPC 2007 or VirtualBox work better or worse, so I can’t even praise WVPC on this point.

So for now it is back to VPC 2007, with our final decision on switching to VirtualBox postponed until we really need 64-bit support.

On a side note, we’ve been trying to get the open source version of VirtualBox working, and that appears to be quite a challenge. There are no binaries, so you need to compile yourself. Even though we have a recent build, getting all the prerequisits is hardly possible. Some of the needed SDKs are no longer available. Our conclusion up until now: the open source version is not really viable (at least for Windows), and possible only there for marketing reasons (“see, we do open source”).

System.IdentityModel.Claims.ClaimTypes vs. Microsoft.IdentityModel.Claims.ClaimTypes

Windows Identity Foundation introduces a new ClaimTypes class. It contains predefined claim type URIs for claims defined by OASIS and Microsoft. In the WIF SDK project templates for a custom STS this ClaimTypes class is mixed with the one already in System.IdentityModel.Claims, which is rather confusing. So, what’s the difference?

Functionally: None. All claim type URIs in Microsoft.IdentityModel.Claims.ClaimTypes are identical to corresponding types in System.IdentityModel.Claims.ClaimTypes. That said, Microsoft.IdentityModel.Claims.ClaimTypes adds a few new claim types.

Technically: Claim types in System.IdentityModel.Claims.ClaimTypes are defined as static read only string properties, whereas in Microsoft.IdentityModel.Claims.ClaimTypes the claim types are string constants.

My advice: for clarity always use Microsoft.IdentityModel.Claims.ClaimTypes.

Link in SDN artikel gewijzigd

Soms verandert de realiteit zo snel dat iets wat in een magazine bij mensen op de deurmat valt alweer verkeerde informatie staat (tja, dat heb je als op de PDC weer van alles aangekondigd wordt). In mijn artikel voor SDN Magazine 103 – ASP.NET onder de motorkap: ASP.NET op bezoek bij de browser staat een link naar de ASP.NET AJAX Library die inmiddels al verouderd is en een foutmelding oplevert. Je kunt nu naar Met dank aan Leo Broos die me liet weten dat de oude link niet meer werkt.

Azure story much better from PDC 09

Earlier this year I was pretty negative about the Azure story from Microsoft. My main gripe was that (from my perspective at the time) it was not a write-once, run-anywhere story, so you couldn’t run your current apps in Azure without modification. I’m very pleased about what I’ve seen now from PDC. Microsoft has opened up Azure in many ways, giving you much more control over what’s happening. In fact, you can get your own virtual machines and have complete remote admin access. Also, they’ve been really thinking about how to tie your existing hosting environment to Azure and vice versa. It will be possible to connect a web app inside Azure securely to a database server in your own data center.

I must say I’m impressed at how well Microsoft has listened to all the feedback about Azure. With all the changes they’ve implemented I feel that it has now become interesting for some of the services my company is implementing, whereas previously we weren’t even considering Azure.

Windows Identity Foundation released

Windows Identity Foundation, formerly known as “Geneva”, has shipped. I’ve been talking about Geneva/WIF on several occasions and I absolutely love it. It opens the door for a whole new realm of authentication/authorization scenario’s. SharePoint 2010 will be the first Microsoft Product to support it, apart from the new Active Directory Federation Services 2.0, which was part of the development effort and was formerly known as “Geneva” Server. Be sure to check it out!

Debugging SQL Server (large) stored procedures

Recently I found myself having to debug a large stored procedure that calls all sorts of sub-procedures. Also, the data set was rather large and it only failed sometimes. SQL Management Studio in this scenario isn’t very helpful for several reasons:

  • The number of PRINT messages that it’ll show is limited, so if the error is out of range… tough luck.

  • Even with PRINT messages it can be hard to pin down which statement is actually in error.

  • Line numbers are never accurate.

  • It seems View Dendencies sometimes misses out on dependencies.

  • View Dependencies doesn’t show the number of times a proc is called from another proc.

SQL Profiler, which also comes with SQL Server is a much better tool when it comes to pin-pointing the erronous statement(s), after which you can modify your code to show an error message that prints the values causing the hickup. When you use SQL Profiler, be sure to select more than just the default events. Click Show All Events and select all Error events, as well as the Stored Procedure events that show Starting and Completed of SQL statements with stored procedures. Then, once the root procedure is done, do a Find through the trace for “Error”, and you can see exactly which statement is causing the error.



Testing with different versions of IE

My company regularly works on public facing websites, and as such it is imperative we test the sites we create with most common browsers. Naturally that means at least Internet Explorer, FireFox, Safari, and Opera. With the last three we just download and install om some test (virtual) machine. With IE however this is somewhat more complicated (although not impossible to run different versions of IE side by side. However, Microsoft provides a set of Virtual PC images known as the Internet Explorer Application Compatibility VPC Image. These images enable you to test different versions of IE on different versions of Windows. These images have a limited lifetime (between 1-4 months), so you’ll have to download a new set on a regular basis, but other than that this is really handy. The following configurations are available:

  • Windows XP SP3 with IE6

  • Windows XP SP3 with IE7

  • Windows XP SP3 with IE8

  • Windows Vista with IE7

  • Windows Vista with IE8

Unfortunately these configurations are all en-US, so if you want to test with say a Dutch version of Windows, you’ll have to create your own images (which is what my company has done, even for en-US).

New ASP.NET Open Source CMS in the making

Today went live. Orchard is an open source Content Management System that the folks from Redmond are working on together with the ASP.NET community, and which I’ve been following with much interest. Orchard is based on ASP.NET MVC, which means I’d favor it over something like Umbraco when it is mature enough. Why? Because this should mean that it blends easier with your regular development efforts, rather than having to deal with an entirely different templating technology. Umbraco for instance uses XSLT, and even though I wrote a book a about XSLT and my company is well versed in XSLT because we do a lot of BizTalk, it is troublesome for plain ASP.NET developers.

Keep in mind that Orchard is relatively new and a lot of scenario’s are still not supported. But at the pace the team is going, you’ll soon see more advanced stuff being possible. You can make yourself heard about what you’d like to see through CodePlex or through one of the sessions at TechEd or PDC this month.