« Launch of Dr. Dobbs TV | Main | USB Vacuum »

March 17, 2006

Microsoft gives .NET a vote of no confidence?

Richard Grimes has posted a great article detailing the extent to which Windows Vista actually uses the .NET Framework. The conclusion is: not much. At the end of the article, Richard extrapolates that Microsoft has lost all confidence in the .NET framework, and is internally abandoning it for developing their own products.

On this point, I'm convinced that Richard is incorrect. Richard has collected great data, but looking at that data, I reach different conclusions.

First, WinFX is not included on Vista, and therefor, none of the Windows Vista UI is built using WinFX. My guess is that this isn't because Microsoft has lost faith in .NET, as a technology, but because Vista is going to ship in 2006, come hell or high water. I think it's likey that Vista will ship before WinFX. At the very least, Microsoft has architected Vista so that it's not going to slip because of delays in WinFX. People also told Microsoft that having WinFX be a Vista-only thing pretty much made WinFX worthless. WinFX had to run on down-level platforms. As a result, Vista uses .NET very little. However, WinFX will run on XP, and Windows Server, in addition to Vista.

Then there's ye' ole Vista Reset. A massive fubar on Microsoft's part, but it doesn't appear that .NET was the root cause. It does make me question Microsoft's ability to keep pouring in features and complexity, and actually getting products out the door.

Richard also claims that if you look at the products that require the .NET framework, they're all bit players:

  • Customer Relationship Management (CRM)

  • DirectX 9.0 SDK

  • Sharepoint Services

  • Content Management Server

Richard infers that Microsoft doesn't trust .NET enough to use it in any products that generate any real revenue.

Um, SQL Server 2005, anyone? It requires the .NET Framework, and portions of it are written in managed code. .NET's integrated into that product about as freak'n deep as it could be.

The real issue, and Microsoft has underemphasized this, is that it's not very easy to build applications that are somewhat .NET. It's great when you're building something new from scratch, but managed and unmanaged code are so different that it's a big effort to mix the two in, say, Office. And applications like Office are just too big to rewrite from scratch. Hence the problem that Microsoft, and much of the industry, face with their millions of lines of "legacy" code.

Posted on March 17, 2006 at 02:02 PM | Permalink


Boy, that one heck of a post by Mr. Grimes. Too long for me to read (sorry)...

Steve Smith had his own take on this same issue, his approach was a lot more approachable in my mind, and (like you) arrives at a completely different conclusion:

Posted by: Michael K. Campbell | Mar 17, 2006 4:45:25 PM

The big hole in his argument is XP Media Center Edition:


Although SQL Server 2005 is also a pretty good example, but it is a hybrid. MCE is "almost entirely" C#.

Posted by: Jeff Atwood | Mar 17, 2006 5:20:43 PM

The comments to this entry are closed.