Saturday 17 September 2011

Microsoft Build Conference Day 4: Final Analysis and Links

Now that the Build Conference is over and people have had a few days to mull over the various presentations, new MSDN articles and blog posts, much of what WASN'T said at the keynotes has entered the public domain.

It's clear that far from being one operating system, Windows 8 is two that run, some would argue ather messily, side-by-side.

The first is a marginally improved (a bit lighter, a bit faster) version of Windows 7, which Microsoft are calling the 'desktop environment'. This is where the corporate customers are likely to sit, running applications like Visual Studio, Blend and Photoshop and writing traditional .NET code that will run server-side.

The second is a brand new tablet/phone OS, oriented at the consumer rather than business, called Metro, built on a shiny new runtime called Windows RT, which may look like it's a slightly smaller version of .NET, but which is in fact a completely different beast, introducing all kinds of new rules that are likely to cause people a bit of pain as they first get to grips with it.

Early reports indicate that developers will want to write components in either Javascript, C# or C++, with C++ being the preferred choice for tablet devices because of its better 'native' performance that will increase battery life. Yet another 'old' technology that some of us are going to have to re-learn!

Javascript, HTML and CSS3 (all in very proprietary Microsoft form), are seen as the preferred choice (over XAML) for the front-end design of the UI for several reasons. I'm not sure if these include better battery life on tablet devices but the fact that most samples are in Javascript, that Blend 5 is currently only currently shipping with HTML support, and that there are lots of good HTML/CSS designers around but very few good XAML ones pushes developers this way too.

It's a whole new world out there, but the good news is that the Developer Preview of Windows 8 is already looking pretty solid, seems to run well on even very old hardware, with great device support, and there are days, if not weeks, -worth of free training available via the Build Conference session videos.

Tomorrow I'll be kicking off a new series of blog posts on Windows 8, starting with step-by-step details of how to install the 64-bit version of the Developer Preview version of Windows 8 (which is too big for a DVD, despite all the crap the Microsoft site spews about most DVD writers supporting the dual-layer DVD-9 format!) onto an older laptop that has a 32-bit version of Windows running. Needless to say it's not as straightforward as the Microsoft instructions imply, and while some have reported install times of 10 minutes, a clean install on my HP 4GB notebook took nearly two hours to complete.

If you're too impatient to wait for my walkthrough/analysis and want to consider installing Windows 8 on a laptop immediately, there is an excellent, in-depth analysis of what running Windows 8 on a laptop today is like over at Engadget.

If you are running Windows 8 on a laptop without Touch capabilities, your first port of call should probably be Windows 8 Metro Keyboard Shortcuts. It will save a lot of scratching of heads when trying to work out how to navigate the new Metro UI. And don't forget that if you find the new OS runs but none of the true Metro apps will run it's most likely because you're not running at the required resolution. You need at least 1024 x 768 (I found out to my cost that 1280 x 720 just doesn't cut it!)

Before I kick off this blog more formally with Windows 8 Metro -specific material (tomorrow!), here's my quick wrap-up and commentary of the last day of the Build conference....

iPad vs Windows 8

I always take endless tweets from Microsoft fan boys attending ;'Kool Aid' marketing conferences, telling of how Apple got trounced by Microsoft's latest announcements with a very large pinch of salt. Too many Build attendees tweeting nonsense about the iPad vs Samsung slate seemed to forget they're evaluating something that's at least a year away and unavailable to the general public, while Apple have another version of their world-changing product hidden, waiting in the wings, to wow the world before Microsoft have even got out the starting gates. Just look at Windows Phone!

However, there's no doubt there's a lot about Windows 8 that will see power users like myself suddenly interested in migrating from the Apple iPad platform to the Microsoft tablet PC one. I'm just waiting for those crucial 'battery life' figures, and if Microsoft can't run on hardware that gives me a full day's battery life the way the iPad does it's a deal breaker. There is an excellent video comparing an iPad tablet with the early Samsung Windows 8 slate which shows the differences in approach between the two tablets. In truth the video is more about comparing the operating systems than the hardware, and there's a wealth of information about Windows 8 tucked away in the comparison: Well worth a watch to find out more about the usability of the new O.S. - what's good and what's (currently) missing!

Converting Silverlight Apps to Windows RT XAML Apps

There's been some debate over how 'easy' it will be to convert existing Silverlight apps to the new world of Metro Style XAML apps. Regular readers will know I was very cynical about the keynote demo, which showed how 'easy' it was to convert an application, albeit a very simple tutorial app that was written in a release of Silverlight that's a few years out of date!

Sure enough, early enthusiasts are banging their heads against the wall in frustration. Jeremy Likness hit a brick wall pretty quickly in trying to convert his Jounce Silverlight framework when he discovered INotifyDataErrorInfo wasn't implemented. Laurent Bugnion pointed out, in a comment on one of this blog's posts, that although parts of MEF have been ported to Windows RT, some catalog functionality is missing (although apparently planned for a future release).

Morten Nielson at SharpGIS has started an excellent series of short posts, highlighting the differences between Silverlight apps and XAML Windows 8 apps which will enable developers to start porting their apps. Amongst the gems he's discovered are that you will need to maintain two copies of your XAML if you want your Silverlight applications to run in the new world AND the old world. You can find the index, and links to the first four posts in the WinRT vs Silverlight series online now.

Windows RT Localisation

While early reports are full of what's missing in Windows RT/Windows 8 Metro, or at least complaints that suddenly we're back to the bad old days of COM rather than the simpler world of .NET, there's one area of the new OS that all the critics seem to be in agreement that huge improvements have been made: Localisation. You can get an overview of some of the improvements in Neowin's Localizing Windows 8 Metro (XAML) Applications.

Windows 8 Metro Apps - Today!

The conference is barely over, and already people have written new Windows 8 Metro Style applications. If you're unhappy with the Windows 8 included Twitter client (and you should be!), and liked the Twitter app used as the backdrop to all the live Channel 9 broadcasts from Build, you can download that Twitter application at MetroTwit.com.

If you want to start writing your own Windows 8 apps, then there are tutorials on MSDN, as well as all the various Build videos to help you along. One nice looking site that aims to teach you how to write for the new environment is Windows 8 Tutorial. It's early days yet, but this looks like it's going to become a useful resource over the weeks to come.

Once you've written your app of course, you'll need to make it available to the great unwashed masses. The problem is the Microsoft App Store isn't available yet. Not to worry, as there's Not Windows Store which will let you make your Windows 8 Metro apps available without charging you. Now there's a pricing model I like, and one that's far better than the 30% gouge Microsoft are apparently contemplating for the official App Store when it launches.

Visual Studio 2012 News

More news leaked out via the Twitter stream about what's new in Visual Studio 2012. Perhaps the biggest news was that ALL SKU's of Visual Studio (even Express) now support unit testing, and you can choose any testing framework you like. Nice!

Don't forget you can find out all the information about the various SKU's and what's new at The MSDN Home Page for Visual Studio 2012.

To find out what's new for .NET Developers be sure to check out the MSDN page: What's new in .NET 4.5.

C# For PlayStation!

Yes you read that right: Sony have announced support for C# in their PlayStation series. For some reason the announcement got lost in all the noise from Build, but you can read all about it in Engadget's article PlayStation Suite SDK Beta Coming in November Offering Games in C#.

Meanwhile, outside the Blogosphere

Javascript got a lot of attention at Build, but even more outside Build as Google's machinations around the language and its hoped for Dart replacement became clear in a leaked letter from Google. Nice to see the company really living up to their "Don't be evil" slogan again </sarcasm>! You can read more on the background to this leaked email in the Critics call foul as Google takes aim at Javascript with Dart article over at Ars Technica.

And if Windows 8 looks like too much work, you might want to look at the new Carbyn HTML5 operating system that was announced yesterday. Yes, that's right - an operating system written completely in HTML5. Go check it out!

Miscelleanous Tweets

I'll just round off this final Build report with some of the links/tweets that caught my eye in all the noise that came out of my Twitter Stream yesterday.

WPF Itemscontrol scalability improved in .NET 4.5. Before 7 min to load 12000 items. Now 2.3 seconds to load 200000.
System.Drawing does not work in Metro UI. Surprisingly WinForms dialogs appear and work correctly although Metro switches to desktop.
It seems that the new 4.5 async/await uses the standard ThreadPool, no good for server code
WinRT uses deterministic destruction (it is native after all) while .NET still relies on the garbage collector
XAML and HTML UIs have similar controls, but have totally different rendering engines; interop between the two may not be possible.
WinRT strings are value types, immutable and don't support nulls.
WinRT method parameters are never reference types.
You cant do private reflection anymore in .net 4.5 ... ah man! the loophole is closed
.NET 4.5 Framework Install sIze heavily reduced by not installing all native images and create them on the fly when needed
Great conference but nothing on Skype? WTF?! (repeat tweet replacing 'Skype' with 'XNA', 'SQL Server' etc)

Miscellaneous Windows 8 Links

Metro Design Guide (written last year for Windows Phone, but still appropriate)
Design Considerations for Windows 8 on HD Slates
Here's a list of 300 Windows 8 Features that Microsoft Didn't Show
101 Tips and Tricks for new Start Experience
Tip: Enabling Demo-like Touch Feedback Want the classic menu? There's an app for that
How to Disable the Windows 8 Metro start screen
What's New in the Windows Dev Center: New Center Controls
TweetSearch: A Cross-Platform Metro UI WinRT and Silverlight Application
MEF Windows 8 Snippets from Jeremy Likness
Ziff Davies on 'News from the Build Windows 8 Sessions
Metro and WinRT: Too Early to Call But I'm Playing Close Attention
Site ready WebSockets

No comments:

Post a Comment

Comments may take some time to appear as all comments are moderated to avoid spam.