My work sent me to Microsoft MIX 2011 in Las Vegas this week. For those who don’t know, MIX is a conference for web developers who code on the .NET stack (ASP, WCF, OData). There were a number of interesting subjects covered over the course of 72 hours but on the whole, the conference was a mix (no pun intended) of strong-arm marketing and the occasional rebel idea. Here were a few themes I noticed:
HTML5 is (almost) the future
With the release of IE9, Microsoft has finally upgraded to be more standards compliant and less IE-like. The business rationale behind promoting a free product here is clear. IE9 is great. IE9 only runs on Windows 7 (and not Mac OS or Linux). Thus, you must buy Windows 7 to enjoy IE9.
Aside from pinned sites, IE9′s killer feature is HTML5 support and corresponding hardware acceleration for canvas. I attended a session for HTML5 Canvas where the presenter walked us through the game loop of Pirates Love Daisies, a JS-only game featuring heavy use of Canvas. The fact that artists can exploit Canvas to draw cartoon characters, animate explosions, and make everything look like Flash is pretty cool. Support amongst the latest browsers is decent, although only IE9 has the hardware acceleration (on Win7 of course). If you’re interested in hacking on Canvas, check out EaselJS.
Event-driven IO servers everywhere
Along with Node.js, I encountered a number of event-driven web servers throughout the conference. The most interesting of these was Manos de Mono, a “scalable non-blocking HTTP server”. I witnessed Miguel de Icaza’s demo at the Mono: State of the Union session and that thing was just blazing. Very cool to have an alternative to IIS for .NET hosting.
OData as a site’s data provider
The most awe-inspiring session happened on the 3rd day, at OData Roadmap: Exposing Any Data Source as an OData service. Jonathan Carter went from scratch to having a MongoDB hooked up to a WCF OData provider, providing full query, filter, sorting, and CRUD support for the model objects in 1 hour. The demo led me to think whether it would be possible to compose web-apps in a way that we use a MVM (Model-View Model) pattern, with the frontend doing most of the hardcore business logic and only using OData as a retrieval/persistence layer. Any additional data manipulations beside the site can be done with worker processes. Doing so would do away with the standard Controller layer completely, which would actually be great for client-side developers like myself.