Marius Gheorghe

Building software : make it work, make it good, make it fast

Some thoughts on WinRT 1.0

Overall i'm kind of dissapointed with WinRT. In v1.0 the scope of the API is very limited. When you came to WinRT from the .NET world , you'll be shocked to see how many things are missing. Things that we took for granted in WPF a few years ago. The XAML situation is pretty sad : new XAML parser (whose "error reporting" sucks....everything gets spitted at runtime as XamlParseException with a generic description), no multivalue binding, no UpdateSourceTrigger,no a lot of nice little stuff from WPF etc. Other notable stuff that are missing : sockets, local database (where are you Sql Server CE ?), full reflection etc.

I'm guessing that 3-4 years ago when they started working on this they had to decide between a limited API available for multiple environments (C++, JS and .NET) and a proper API consumed only from .NET .I guess the recently fired Sinofsky had a say in choosing of the first version and now honestly it doesn't seem to me such a great choice. Trying to build the Win32 "follower" in a few years for multiple environments it's a futile attempt. Also it's worth mentioning the ARM support...maybe a few years ago it sounded very nice but today (with Haswell releasing in a few month, ARM support doesn't seems at all that great (and let's face it the ARM devices are not that cheap).

It's interesting to see what will happen next. I guess the Windows 8 rumored "Blue" update (which should be released next summer) will "fix" and expand the API a bit (and the update itself will be pushed by Microsoft asap on existing devices) but i'm quite curios what will happen after that. Will Win 9 continue to "expand" WinRT or they'll start over ?

Beware of deploying VCLibs in a package build on Debug

The other day i found a deployment problem with a WinRT apps that left me (almost) speechless. Basically deploying VCLibs (dependency required by Bing Maps) in a app package build on Debug makes the app crash on startup with a XamlParserException. On Release it works fine (of course i was doing a QA build and did in debug to get proper stacktraces).
So, there you go. Always build on Release (even for QA builds) if you plan to deploy that package on a machine without Visual Studio installed.