Via Mike Taulty I came across an article by Richard Grimes - Analysis of .NET Use in Longhorn and Vista - which puts my posts earlier this week about Windows DVD Maker into context. I've not been following the Longhorn/Vista saga too closely - its dragged on for far too long to remain interesting - so I was surprised by the extent to which .NET has been downplayed in Vista, at least according to Richard's analysis. I remember reading that WinFX was going to be a new managed sub-system alongside Win32, not on top of it, and that much of Longhorn/Vista was going to be built on top of this, but I must have missed a lot of news since then if Richard's conclusions are correct:
Finally, there is the issue of WinFX. Initially, this was called the Longhorn API (LAPI) and it was intended to be the foundation of all the applications in Longhorn. Microsoft have retreated significantly from this position. WinFX was not provided as part of any of the builds of Vista, so the clear implication is that Microsoft intends to develop Vista with native code (and possibly with a little bit of .NET through the framework library) and not to use WinFX at all. I cannot stress how significant this retreat is. Microsoft have so little confidence in their own application framework that they will not use it even in their own managed applications.
My conclusion is that Microsoft has lost its confidence in .NET. They implement very little of their own code using .NET. The framework is provided as part of the operating system, but this is so that code written by third party developers can run on Vista without the large download of the framework. Supplying the .NET runtime for third party developers in this way is similar to Microsoft supplying msvbvm60.dll as part of XP.
Richard links to a Microsoft Watch article - The 'Dirty Secret' About Longhorn - which has anonymous developer source #1 saying:
The original plan for Longhorn was to build lots of components on top of the next version of the .Net Framework," according to one of our developer sources, who requested anonymity. "But given how late (.Net Framework 2.0) is, and how new it would be (Microsoft Chairman) Bill Gates realized it would be foolish to build important pieces of Longhorn on top of .Net.
Joel Spolsky, not known to be a.NET enthusiast, is quoted as saying:
From the rumors I've heard, the Longhorn project has disentangled themselves from .Net, so core operating system functionality will no longer require the .Net framework, which is a good thing: It's clearly not mature enough for implementing operating systems quite yet.
And finally anonymous developer source #2
Everything in Longhorn was supposed to be written in C# and to be managed code. But managed code was going to require machines that weren't going to be available for five years or more. So now Microsoft is rewriting everything in Longhorn.
Presumably when Richard says "They implement very little of their own code using .NET. " he is talking about Vista. From a wider point of view Microsoft does seem to be using .NET, as seen by this list of managed code Microsoft apps that Dare Obasanjo quoted from Dan Fernandez:
The Microsoft's not using Managed Code Myth
One of the biggest challenges in my old job was that customers didn't think Microsoft was using managed code. Well, the truth is that we have a good amount of managed code in the three years that the .NET Framework has been released including operating systems, client tools, Web properties, and Intranet applications. For those of you that refuse to believe, here's an estimate of the lines of managed code in Microsoft applications that I got permission to blog about:
- Visual Studio 2005: 7.5 million lines
- SQL Server 2005: 3 million lines
- BizTalk Server: 2 million lines
- Visual Studio Team System: 1.7 million lines
- Windows Presentation Foundation: 900K lines
- Windows Sharepoint Services: 750K lines
- Expression Interactive Designer: 250K lines
- Sharepoint Portal Server: 200K lines
- Content Management Server: 100K lines
However the fact that .NET has apparently such a small role to play in Vista itself does suggest a loss of confidence in .NET, or problems encountered with its usage, or different opinions about .NET within its various development groups.