A tool for Zune Playlists: KritzZu

If, like me, you manage your playlists pretty much by folders on your source PC, you probably end up finding it frustrating to use Zune in order to create those playlists on your Windows Phone 7.

Desperate no more.  There’s a tool I found on a blog allowing you to create those playlist in a few keystrokes, KrizZu:


The tool’s author, Vishal Joshi, offers it for free.

It’s a simple WPF application.  Zune’s playlist are stored in xml files and KritzZu simply generate those xml files.

Still, it saved me quite a few minutes!



Transport for London Moves to Windows Azure

I follow quite closely Windows Azure Team blog.  Many of the blog entries consist in “Real World Windows Azure” article where they interview company executive who just moved a piece of mission critical asset from their premise to the cloud using Windows Azure.

I still wait to see a Canadian example of those post, but so far nothing came by!

But…  a quite interesting variant on those articles was published in mid-December.  This was a much bigger asset than usual and Microsoft did a special announcement.

image The Transport for London (TfL) Trackernet data feed is now hosted in Windows Azure.  This is a real time feed about the status of the transport network.

I found it especially interesting because the size and the visibility of the application.  Sure, we’ve seen a lot of start up trying it out over the last couple of months, but TfL is an established institution, European at that, moving a key piece of public asset to the cloud.  This is an excellent credential!

January 2011 Releases of the Identity Training Kit & the MSDN Online Identity Training Course

You can read more details on Vittorio Bertocci’s excellent blog.

You can find the training kit here and the courses here.

The training kit is an update from last June’s and now contain elements about ADFS, Windows Azure AppFabric Access Control v 1.0 (Septembre 2010) and Access Control Lab (Decembre 2010).

The courses seem to be migrated from the Channel 9 learning center.


Have fun!

Entity Framework Code First CTP 5

I wrote a blog post a while ago about Entity Framework’s POCO capability.  Basically, the current state is that you don’t have POCO.  You have a T4 template to generate classes without EF attributes or base classes, but it stops short of being a real POCO implementation once you start looking at the collections.

Microsoft is working on a real POCO technology, named Code First.  They just released the 5th CTP.

You can read Scott Gu’s blog about it here:  http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx.

The technology is quickly maturing.  The current CTP offers those improvements:

  • Better support for Existing Databases
  • Built-in Model-Level Validation and DataAnnotation Support
  • Fluent API Improvements
  • Pluggable Conventions Support
  • New Change Tracking API
  • Improved Concurrency Conflict Resolution
  • Raw SQL Query/Command Support

The alignment between model-level validation and data-annotation is very nice.  The entire configurability and override of convention is quite well thought as well.

This product is another great example of Microsoft embracing the open source ideas and making them available to the masses.

BizTalk beyond 2010

I recently blogged about the future of BizTalk and the roadmap of the product version Windows AppFabric.

An even more recent blog post shed some light on the topic.

Biztalk Executive Summary

We are planning to invest in the following main areas:

  • Deep Microsoft Application Platform Alignment

  • Enterprise Connectivity for Windows Server AppFabric

  • On-Premise Server and Cloud Service Symmetry

The three bullet points are interesting.

Basically, we should see BizTalk being less of a satellite product and getting more aligned with the platform.  Here I suppose we are talking about WF 4.0, WCF (e.g. Routing), AppFabric, SharePoint, etc.  .  But should also see Windows Azure AppFabric embracing more and more business integration features to a point of equating BizTalk server on premise.

The idea of having your ESB in the cloud might seem a bit far fetch since it’s quite essential to your operations.  But actually, because it is so essential, and because Enterprises are using ESBs for more services with more volume, the reliability and infinite scalability of the cloud becomes a very interesting attribute indeed.

Globalization and web services

I always found that globalization is the poor child of computer literature.  In any .NET book, you won’t hear specifically about globalization before chapter 23.  You can even tell it’s not shooting high on the radar when you look at the ways globalization was implemented in the three main front-end Frameworks of .NET:  WinForm (great!), ASP.NET (retrofitted in sub-optimal way in .NET 2.0) & WPF (totally Byzantine and not even in line with the rest of .NET Framework).

Since I work in Montreal –a bilingual city in a bilingual country– I’m confronted to globalization on nearly every projects I’m involved in.  So with time you do build up your bag of tricks & patterns around globalization.

I recently posted a blog talking about the W3C globalization specs for SOAP endpoints, WS-I18N.  I found that spec quite interesting because it describes a standard way to handle globalization at a web service level.

Actually, the most common approach I’ve seen (or architected myself) with globalization & web services is to not localize it.  For the time zone, you can usually get away by returning time in standard GMT and let the client localize it.  For languages, if your application is only bilingual (as is often the case in Canada), you can get away by returning the localized data in both languages since you will typically have properties such as FrenchTitle & EnglishTitle in your data contracts.

This approach has a lot of advantages.  First is simplicity of course.  But you also get other advantages.  For instance, if your application needs to flick between languages in a real-time fashion, with this approach you do not need to interrogate web services again (and potentially get different data, which would make the change language feature a refresh feature at the same time, which is weird).  It’s also easier to implement caching if you do not have out-of-band parameters also.

Sometimes you won’t have that luxury.  For instance, the project I’m currently working on is multi-lingual in the sense the number of supported cultures is open.  We therefore have to model our database with localized value in a vertical way (one row per culture).  For the services we were still lucky.  The only localized values are list of values (lookups) ; for those we manage them explicitly in the respective service.  The other services aren’t localized:  the content is in the language the user punched it in.  Also, we raise SOAP faults with English-message.  The architecture guideline there is that the services aren’t producing user-messages, they are APIs, they can raise faults, but it’s up to the application to interpret the fault and inform the user accordingly.

I think it’s important to think about the role of your services in your application, system, enterprise or context in general.  If it’s an API for smart applications to use, I would really aim at not localizing them.  This way you can rip the benefit of simplicity but also, you won’t get into confusion of an application being in culture X calling services in culture Y.  If your services are meant to be use by themselves or by thin applications (e.g. something doing an xslt-transform on the data returned by your services), you should manage the culture at the service layer.

My new Windows Phone 7

I finally got into it and bought a Windows Phone 7!

The device is an HTC Surround.  I’m sure you’ve read plenty of reviews, so here’s just a list of pros and cons of the new OS.

To give some context, I’m not a huge gadget consumer.  My previous similar device was an iPod Touch first generation.  My previous phone dated from 2003 and was just a phone (oh, it could also SMS!).

HTC 7 Surround™ - First the pros.

What strikes in the first minutes using the phone was how crystal clear the text is.  The letters are crisp and the text reads itself without tiring the eyes.  I use my phone to read a lot (e.g. during public transport commute) and it is a very enjoyable experience on that device.  I don’t know if it’s some funky fonts, Silverlight or just the screen resolution, but compare to the first iPod touch (I hear the iPhone 4 has an incredible screen which I haven’t experimented), it is way sharper.

The People Hub, or contact management, is also very well done.  It’s super easy to merge your Windows Live & Facebook contacts and link them together (e.g. john.smith@hotmail.com is the same contact than «John Smith» on Facebook).  You can add information on those contacts, for instance their phone number if they’re not sharing them on Windows Live already, or a different photo.

Image: Zune Marketplace

The management of photos & videos is also efficient.  You can see your albums on Windows Live & Facebook and the photos / videos you’ve taken with you phone or that you’ve synked on it.  Very intuitive, very quick.


The entire Metro interface is quite cool, easy to navigate, intuitive and efficient.  You get proficient very quickly.  You can customize your phone to put the hubs you’re using the most where you want.  You can even have a contact as a first class shortcut on the landing page.

The Zune software is way better than iTunes.  iTunes always felt like a Macintosh virtual machine running on my poor Windows box.  Zune doesn’t.  It starts quickly, sync quickly, in the background and when there’s nothing to sync, it doesn’t go through a lengthy cycle in order to sync nothing.  It has a sexy WPF UI which is quite easy to use.  The only caveat is that while Zune is online, you can’t listen to movies or music.  This is a little annoying if you’re only recharging your device.  The workaround is simple though:  shut down Zune, keep the phone connected and you’re good.

The Marketplace surprised me.  2 months after the launch, there’s already a lot of applications.  The ratio of crap applications is way lower than on Apple app-store.  The fact that Silverlight is the API probably help a lot.  The next version should include a better search since they are basically victim of their own success!

Now the cons, or the point I would like to see improved:

You’ve heard it elsewhere, but it is quite annoying:  there is no Cut & Paste!  It will be fixed in the next version of the OS in a couple of weeks, so…  next!

One of the inconvenience of this phone, it might be unique to the HTC Surround, I don’t know, is the battery.  Gee!  You watch 60 minutes of videos and half your battery is gone!  It’s hard to pass the day without plugging it!  I find myself deactivating the Wi-Fi all the time in the hope of gaining some minutes of electricity independence.

Something I miss from my iPod Touch is the easy access to the media player when the phone is locked.  On iPod, you can double-click the main button and the play / pause / forward / backward buttons appear on the screen.  No such luxury on the Windows Phone 7 yet.  You do have a mini media player appearing once you unlock the phone but it stays there only for a limited time.

The next negative point isn’t about the Windows Phone 7 OS per se, but the PDF Reader provided as an extra.  In one sentence:  it sucks!  It’s basically way too sensitive to finger motion which makes it shaky and extremely annoying.  It doesn’t suffer from comparison though, since it also sucked on the iPod.  Apparently the developers at Adobe have extremely good finger control or an extreme resistance to motion sickness.

There are no way to synchronise my PC’s favourite to my phone.

The handling of mail is also sub part.  I’m using Yahoo as my main private email provider and the integration is so-so.  Yes, I can read and send email, but the process of receiving email is byzantine at best.  On my iPod Touch, I could simply go to a mail folder and press refresh ; within few seconds the device was downloading the new messages.  With Windows Phone 7, you have to subscribe to mail folders in order to ‘sync’ them.  Now the sync process takes forever, as in above 10 seconds.  Totally unacceptable.  If I’m in my inbox, I don’t want the device to sync all my folders, I just want to see if I have new mails!

Now this is not the only thing bad about emails on my phone.  On the landing page of the phone, you can see how many new emails you have on the email hub icon.  Well…  that is until you open the hub.  Then, even if you don’t look at any of the new mails, your count drops to zero on the main screen.  And…  I just discovered it this morning:  when you delete a message, it doesn’t go in the special trash folder, it goes in a ‘deleted items’ mail folder that the phone just created for you!  That’s just fantastic!  So now you have a way to know if you deleted you mails from your phone or from elsewhere and those that were deleted from your phone are never deleted, they are just moved to a folder you never created!  A big round of applause for that feature!


Anyhow, despite those little annoyances, the Windows Phone 7 is a very nice device to use.  I’m looking forward for the next refresh of the OS to enjoy the real potential of the phone.  So far, extremely great device to read with and great for keeping in touch with my contacts and listen / watch multi-media.

Single Sign-On from Active Directory to a Windows Azure Application Whitepaper

A new whitepaper on how to connect to Windows Azure hosted applications using Active Directory has been published in December 2010.

The two major building blocks are WIF & ADFS.

I did cover this topic in a series of blog last summer.  Now you have a nicely packaged whitepaper explaining it!

Also, Microsoft has published a series of how-to guides on ADFS 2.0.

Federating identity has never been easier!

Surface 2.0

Microsoft has shown the new Surface table at the CES show.

The new device is able to be either horizontal or vertical (v 1.0 was horizontal only), is coming with Windows 7 loaded on an AMD Athlon II X2 Dual-Core Processor 2.9GHz and a GPU AMD Radeon HD 6700M Series.

The screen is 40 inches (16:9) while the table is 4 inches tick, made out of Gorilla glass.  This includes everything:  the cameras, computer, etc.  .  So this is a huge difference compare to the first version of the table!

If you want one in your leaving room, you’ll only need to fork $US 7600.

I’ve worked with the Surface 1.0.  The company I was working for, a Microsoft Partner, was trying to find ways to use the Surface table to help customers.  Above easily doing very attractive applications, we never found a customer interested to invest in it.  The problems we did hit were:

  • The price ($10K-$20K / table) per unit was too high
  • There was not enough applications available (no ecosystem), which meant the customer had to heavily invest in custom development
  • Different logistic problems:  the table was too small to realistically work many around it, the horizontal position meant it wasn’t comfortable to work for a long period of time around it (imagine watching a TV on the floor), etc.

The new table addresses some of the issue:  the price tag is lower, the dimension are better and it can sit straight.  The ecosystem is probably still quite sparse though.

The only interested customers we found were after a marketing device and for those application the new table might actually do the trick and hit the sweet spot.

Before you see the table on your financial planner desk (as seen in Surface demos), you might have to age a little though!