Notes from BUILD – Day 1 – Big Picture Session 2 Part 2 – Kieran Mockford and Chris Sells on Tools for Building Metro Style Apps

This is part of a transcription of my notes from Microsoft’s recent BUILD conference in Anaheim, CA, minus anything that might be considered Red Gate confidential. Thus, they’re somewhat unstructured, sometimes ramble off-topic, and often contain dodgy grammar. My own commentary and observations will generally be italicised so you can easily distinguish it from the reporting on what actually happened. Much has already been said about this conference, and about Windows 8, but I hope you find these useful. Please feel free to comment or ask questions and I’ll be happy to answer them as best I can.

Kieran Mockford is an Architect at Microsoft Corporation:

Chris Sells is a Program Manager at Microsoft Corporation Corporation.

Started off with a bit of banter and showed an Xbox controller hooked up to a Windows 8 PC and accessed via the XInput API.

Showed off debugging a Metro app, illustrating that even with a single monitor and Metro’s full screen nature, it’s possible to keep Visual Studio in view whilst debugging using the application thumbnail view. This also works for other fullscreen apps.

Also showed off WinMD files, which expose meta-data for the WinRT API in a CLI compliant format, which means you can open them with ildasm. As of the latest 7.4 early access build, they can also be opened in .NET Reflector. I later discovered that if you develop a WinRT component in a managed language (C# or VB), then the WinMD file will also contain the actual code, and not just the meta-data – i.e., it’s just an assembly, and for the WinRT APIs it basically acts as a .NET reference assembly. This latter parallel was drawn elsewhere in the conference, but I had to go and talk to one of the guys on the Visual Studio expo stand to get to the bottom of the managed code issue.

C# Metro projects, and presumably those written in VB as well, support unit testing.

Showed that the XAML designer in VS is now the Blend designer. It thankfully looked a wee bit simpler to use than it does in Blend, although this may have just been my perception.

Demonstrated remote debugging of a Metro app running on device from Visual Studio running on a different computer.

Remote debugging in this way also works for JavaScript and HTML apps, and includes a DOM explorer view which seems pretty sweet, especially because it can highlight the selected element in the app being debugged, even though that’s on a remote machine, via the “select element” button. Having fiddled around with debugging a bit in Chrome and Firefox, I can’t overstate the value of being able to do this. It turns out that edit and continue is supported for JS/HTML apps.

Visual Studio 11 includes a “debugging simulator” allowing debugging under different screen sizes and resolutions, even resolutions hire than the native monitor resolution thanks to some cunning scaling, although obviously everything gets a little blurry and unclear. This works via a terminal services connection to self, and seems pretty good. One of the other things it offers is the ability to simulate touch on a non-touch device.

Blend has been significantly enhanced. Apart from the fact that it now obviously supports HTML & CSS, it can also execute the JavaScript in your app which, if you think about it, is pretty much essential to render the visuals properly in many apps.

Visual Studio 11 includes some cool support in the area of 3D graphics, including the support of HLSL (High Level Shader Language) as a supported programming language with, I believe, all the usual refinements (IntelliSense, etc.).