Twenty-eight months since my last report on Microsoft's .Net technology suite, it's interesting to see what's changed and what hasn't. The desktop version of the Longhorn OS was renamed Vista, but its release status remains the same: beta. Of the three .Net-oriented "pillars of Longhorn" -- Avalon, Indigo, and WinFS -- two are renamed (Avalon to Windows Presentation Foundation and Indigo to Windows Communication Foundation) but none have shipped, and WinFS has been pushed post-Vista.
What did ship, this past fall, was a set of products that developers long awaited and eagerly anticipated: Visual Studio 2005, .Net Framework 2.0, and SQL Server 2005. Those releases, however, didn't change the fact that there still is no shipping version of Windows that includes the .Net Common Language Runtime and Framework in the box.
The extent to which Microsoft programmers eat their own dog food -- that is, use .Net technologies to create their own products -- is a perennial topic that armchair quarterbacks hotly debate. In reality, .Net is making steady gains. According to one Microsoft blogger, C and C++ remain the dominant languages in use at the company, but products such as Visual Studio, SQL Server, and BizTalk Server each incorporate millions of lines of managed code -- which was, after all, the primary paradigm shift that .Net represented.
Another sign of .Net's maturation is the legacy it has already created. The developers of a line of clinical data capture tools, for example, tell me they're in no hurry to upgrade from Visual Studio 2003 and Framework 1.1 to VS 2005 and Framework 2.0. The 2005 stuff may be better, they say, but the 2003 platform and tools are productive and reliable.
For such pragmatic developers, the hot new .Net technologies that debuted at this past fall's Professional Developers Conference -- notably Windows Workflow Foundation and Language Integrated Query, both of which are implemented as extensions to the .Net Framework -- are tactically irrelevant but strategically important. If you're making a bet on .Net, you'd like to know that the best and brightest architects at Microsoft are making the same bet. They are.
The evolution of the .Net platform has, of course, occurred in the context of broader industrywide change. The Windows Communication Foundation responded to the growing popularity of REST (Representational State Transfer) and POX (plain old XML), agonistically embracing these modes even as it continued to build out top-notch support for advanced WS-* standards. The Windows Presentation Foundation (WPF), however, is not similarly agnostic with respect to AJAX. Some of WPF's technical underpinnings are analogous to, but not interoperable with, native Web technologies such as CSS and Scalable Vector Graphics. Microsoft argues it was necessary to take a clean-slate approach in order to deeply unify documents, applications, and media.Along similar lines, Microsoft has also announced a portable .Net runtime, WPF/E ("E" for Everywhere), which aims to challenge both Flash and Java on a variety of devices and operating systems.
The client tier is chaotic, even for Microsoft-oriented developers, and no one can yet resolve the rich-vs.-reach dilemma in a convincing way. But if you want to use state-of-the-art tools to build rich clients and/or advanced services, Microsoft's current .Net lineup is solid and the pipeline looks impressive.