Robert McLaws: Windows Edition

Blogging about Windows since before Vista became a bad word

A New Direction for the .NET Framework?

An interesting series of events have taken place over the last few months in regards to the .NET Framework. Little signs are popping up that lead me to believe that VERY big things are on the horizon. Take a walk with me, and I'll show you the future of .NET:

Some history:

  1. 5 January 2002: .NET 1.0 is released.
  2. 15 November 2002: The Shared Source Common Language Infrastructure 1.0 is released. This is the source code for the heart of the .NET implementation. It runs on Windows XP, FreeBSD, and Mac OS X 10.2.
  3. 23 March 2006: The Shared Source Common Language Infrastructure 2.0 is released. Support for other operating systems is conspicuously missing.

More recently:

  1. 5 September 2006: Microsoft releases IronPython 1.0. A member of the IronPython team says: "Not only will we continue to drive IronPython forward but we're also looking at the bigger picture to make all dynamic languages deeply integrated with the .NET platform and with technologies and products built on top of it."
  2. 20 October 2006: John Lam, creator of RubyCLR (a project to get the dynamic-language project Ruby on .NET) is hired by Microsoft. His job? "Bringing dynamic languages to the .NET Framework."
  3. 16 November 2006: Microsoft releases a CTP bringing IronPython to ASP.NET. The download page has this telling bit of information: "The infrastructure is extensible to allow other dynamic languages to plug in as well."
  4. 4 December 2006: The first CTP of Windows Presentation Foundation Everywhere ("WPF/E") is released. Multi-OS support makes a triumphant return, with support for running on both x86 and PowerPC Macs.
  5. 8 December 2006: Jon Udell from InfoWorld announces he's joining Microsoft as an evangelist. In his "exit interview", he sites Jim Hugunin's efforts to make IronPython "A first-class citizen of the .NET platform." as a reason for taking the red pill.
  6. 31 January 2007: The February CTP of "WPF/E" is released. It includes support for both Safari and Firefox on OS X 10.4.

So, where am I going with all this? Well, I think 2 important things are on the horizon:

- First, I think the evidence is clear that Microsoft is close to putting together an extension to the .NET runtime to support dynamic languages.

- Second, I think that the multiple-OS support in "WPF/E" is a precursor to full-blown multi-OS support of the .NET runtime. If "WPF/E" is a subset of WPF, which is built on top of .NET 2.0, then why would Microsoft go through all that effort to make only part of the runtime compatible?  If you've gotten the ball to the 8 yard line, wouldn't you take the risk and go for the touchdown?

Why go through all this trouble connecting the dots? Because MIX '07 is coming up, and if Microsoft was going to make any big announcements, they'd do it then for sure.

Anyway, that's just what I think. Anyone else heard any rumblings about this?



  • Kevin Dente said:
    February 26, 2007 9:10 PM
  • Check out the about page on visitmix:

    It reads: "Exciting new Web experiences with the still-secret “Technology X” Don't know what it is, but it definitely must have something to do with WPF/E and/or dynamic languages

    February 27, 2007 1:14 AM
  • WPF/E has much in common with WPF and yet it doesn't.

    WPF/E is a light weight graphics runtime built in unmanaged C++ that doesn't use any part of the Common Language Runtime or managed code. It can parse and render a subset of the WPF XAML yet it does so in a completely different way than WPF. WPF/E is also in a completely different ballpark with regards to download size. .NET 3.0 is a 40 MB setup. WPF/E is roughly 1.5 MB in size. The C# 2.0 compiler is already almost that size!

    In my opinion the goal for WPF/E is to beat Flash at programmer productivity, because developers and designers can reuse WPF/XAML skills and tools.

    Microsoft does want to enable the scenario where you can use for instance C# to manipulate WPF/E content in the same way as you can do with JavaScript right now. Being able to run C# code does bring the need for a Common Language Runtime and basic .NET class library support. On Windows this requires you to have the .NET Framework installed.  I am not sure if they will enable this on non-Windows platforms though. That will be a separate effort. The Rotor project and Mono have shown that it is quite feasible to port the .NET runtime to other platforms.

    All in all I doubt we will get a light weight crossplatform CLR from Microsoft.

    February 28, 2007 3:12 PM
  • Are you smoking crack?

    MS has no intention of diluting it's Windows franchise which was built by VB which is now .NET (and not anything like anti-competitive practices... it was easy programming, nothing else...)  WPF/E is multi-platform because MS is positioning it as a Flash killer (and missing the point of what it should be which is deeply embedded with databases without the need to write javascript). To do that it has to be on all platforms just like Flash, it's as simple as that.

    .NET won't go to a Mac any time soon because it would be yet another reason not to use a Windows PC, when developers can write an app and have it used on a Mac. It kills the entire business model of Windows:  Be passible and give it great developer tools that save a ton of time, so everyone develops for windows instead of anything else.

    March 1, 2007 10:27 PM
  • James, I wouldn't be so sure of that if I were you.... the Developer Division has always been far more forward-thinking than the rest of the company...

    March 19, 2007 2:03 PM
  • Microsoft has announced that the little cross-platform, cross-browser cousin of Windows Presentation

    April 16, 2007 3:33 AM
  • Today, Microsoft completely changed the web development game , and chances are, you didn't even know

    April 30, 2007 7:08 PM
  • May 22, 2007 5:43 PM