Daily Archives: July 27, 2012

WP8 SDK Silverlight Alive!……XNA Dead……Native XAML gone missing!

I suppose you guys have heard that the windows phone 8 SDK has leaked. Well I decided to download the bits and have a quick look around.  This  post is really just summary of some interesting observations I made.  If you want to download the bits yourself you will have to hunt around. I found it on on a torrent site and had good seeding.

Where is the winRT support? 

One of the first things I did once I had installed the SDK was to run up Visual Studio 2012 and see what projects types were available.  What caught my eye was the fact that there appears to be no “Metro style” or “WinRT” project templates installed.  The naming of the projects is pretty much the same as the 7.5 SDK. I’m sure that’s a good thing as you don’t want to confuse people right? Below is a screenshot of the project picker.

You can see I have highlighted a new project type which never used to exist in the 7.5 SDK.  I’ll come back to that shortly.  As winRT tech does not seem to be obviously visible in the project list it seems I will have to dig a little deeper.  Lets see if creating a standard “Windows Phone Application” will provide more detail as to what’s going on in this new release.

new apps for WP8 wont be running on winRT aka native xaml but instead managed xaml

Well that’s a turn up for the books.  From what I can tell these new apps for WP8 wont be running on winRT aka native xaml but instead managed XAML.  To me that looks like standard CLR namespaces being imported and therefore is managed code. Also it seems I have classes that aren’t available in winRT such as RadialGradientBrush. Digging out jetbrains dotpeek proves exactly that, the whole runtime is silverlight.

This raises a couple of questions, firstly why did Microsoft put so much effort into creating native XAML and then not adopt it for WP8?  Secondly what does this mean for developers wishing to develop across 3 screens?

The first question I think is easily answered, it is likely to be timing issue. With the monumental effort to get Windows 8 ready for its October release there probably hasn’t been time to migrate the winRT tech & tooling to WP8. Further, developers who have already created apps on the platform do not want to have to rewrite them for winRT.  Especially as winRT is equivalent to Silverlight 2.0 at the mo and would lead alot of gaps.

 If you’re a html5 developer building apps for winRT and you want to port them to WP8, well you are royally screwed at the moment

The second question is difficult.  It seems the one dev platform for all screens is not here yet. Although porting code is possible it’s not going to be smooth given the current situation. If you’re a html5 developer building apps for winRT and you want to port them to WP8, well you are royally screwed at the moment.

One last point on this, it seems C++ devs get a raw deal as they wont be able to leverage XAML on WP8.  Well not until winRT arrives.  From what we have heard from Microsoft, the key deliverable for this release was about providing native code access.   This is so that all those game developers who need to extract every cycle of  performance out of platform can do so.  It will be good to see popular games from iOS transitioning quicker to WP8.  But that leads to the next topic….

What’s the deal with XNA? 

Well I think with WP8 SDK I think you can official say goodbye to XNA.

One of the other big questions hanging over the the future of WP8 was what’s happening to XNA.  Well I think with WP8 SDK I think you can official say goodbye to XNA.  In this new SDK you only seem to be able to create XNA games that target WP7.1. If you want to use XNA in WP8 then it seems you are out of luck.

But the story gets a little worse than that,  if you remember in my screenshot above I highlighted a new project type called “Windows Phone Direct3D XAML Application”.  Well the good news is that this project can target WP8, however on creating one of these projects your actually going to be developing your game in C++.  The project is set up with a simple c# xaml app with a DirectX drawing surface, then all your access to DirectX must be written in native code.  I can’t see XNA coming back from this personally but hey, you never know. Microsoft are anything from consistent these days.

All in all this leak is a bit of mixed bag, while the WP8 platform looks to be getting some cool new features the dev story is a mixed one.  A few bullet points below for the guys that don’t want to read my waffle above.

  • Managed xaml lives on in WP8
  • winRT is nowhere to be seen
  • 3 Screens development story not being realised in this release.
  • Native code now available on the platform
  • XNA is left out of the WP8 party
  • If you want to build games then dig your C++ book out