.NET Applications on a Mac with WPF/E

As you might be aware, in sequence with Vista, Microsoft released .NET 3.0. This is an addtional set of libraries on top of .NET 2.0 - so your existing apps continue to work and the runtime CLR is otherwise unaffected.

This incremental set of .NET 3.0 libraries include usful parts for building distributed applications in new ways:

  • Windows Communication Foundation
  • Windows Workflow
  • Windows Presentation foundation

It should be noted that although these are released and pre-deployed with Vista - they are backward compatible to run on XP and 2003.

Windows Presentation Foundation (WPF) is for building very rich (i.e. 2D, 3D, animation, video & audio) client side applications and includes a markup language (XAML) to help out with that.

MS is already at work on a new derivative of WPF, namely WPF/E - E = Everywhere. Everywhere is a bit of a stretch - but it will include other browsers (Firefox, Safari, etc..) and other platform(s) - namely the Mac. Not clear if this is going to run on my J2ME, blackberry or Mobile Framework yet.

So with WPF/E we have this new thing that can make rich multimedia content and run in any browser, any platform - some would say a Flash Killer. With that in mind there are a few interesting tidbits I find interesting.

  1. You can script with JavaScript, like flash. Here's a nice demo on the http://thewpfblog.com/ where a cityscape is split in half - one side Flash, the other side WPF/E and a blue disc is scripted to bounce from one side to the other using JavaScript glue.
  2. The source code - and what's published to the browser - is Markup language - namely XAML.
  3. One of the reasons we like HTML so much is that search engines can parse and index i. That makes it's easy to find stuff. Anybody who has built a fancy front end to their website in Flash knows however that this content that is pushed to the browser is binary format to be executed by the flash runtime. Therefore it is a black box and can't be indexed by search engines.

    Remember I said WPF/E uses XAML - a markup language. Well the cool part is that this is pushed out to the browser so indeed it can be indexed. No reason why a rich WPF/E document couldn't be searched by Google & Live. It should be interesting to see what happens and how engines like Google, Live, Yahoo, etc. crawl, rank, search & render results of XAML content. Hmmm, search engine wars aren't over yet.
  4. CLR Integration is one of the tricker features that Mike Harsh says they are currently scoping. Being able to use the CLR with WPF is of course a key feature, so is this going to run on the Mac? I've expected to a commercially supported CLR for the Mac for sometime, well since, the Rotor project and more recently since this Mix 06 demo of the MiniCLR.. I've seen a lot of folks excited about the possibility of cross-platform .NET development. There are obviously technical and commercial hurdles to overcome. I suspect the technical hurdles to be no less challenging than any other attempts at cross platform support.

I think if we keep our perspective on on WPF/E in the same context of Flash, we'll find good uses for this technology and enjoy a more consistent development platform from CLR in our SQL Database right through to our browsers and devices.

WPF/E is expected to ship in the first half of 2007, but the December Community Technology Preview (CTP) is downloadable now. http://www.microsoft.com/wpfe