Good question. There are a few things we know about Microsoft’s managed application runtime and class library:
There will be major updates to the Windows Communication Foundation (WCF) and Workflow Foundation (WF). According to this announcement along with this post by Steven Martin we are going to see “better support for Web 2.0 technologies like REST, POX and ATOM” and a 10x performance increase in WF.
The table shown here also mentions a bigger role for XAML:
Seamless integration between WF and WCF and unified XAML model. Build entire application in XAML from presentation to data to services to workflow.
There will be a new application server codenamed Dublin, which hosts WF/WCF applications and manages messages, long-running transactions, state management. Dublin extends Internet Information Services (IIS) and will run on Windows Server – probably Server 2008 only.*
Dublin supports Oslo, which is Microsoft’s latest attempt at model-driven development. I guess Dublin is the host for Oslo applications, as this post implies. XAML is a good fit with modelling, because it is both declarative and well-suited for visual representation. Models do not have to be visual, and Oslo includes a new textual language which could also be based on XAML (?), but nevertheless there is synergy between modelling and visual designers.
Putting this together, we have a new take on Microsoft’s end-to-end stack, developed in Visual Studio with XAML supplemented by procedural code where needed, hosted on Dublin, and using WPF or perhaps Silverlight(?) for the presentation layer. Thanks to the new REST support, or the old SOAP support, you could also use other clients including JavaScript or Java.
It is all a bit perplexing if you currently think of the .NET Framework as the runtime engine and class library for C# and Visual Basic. It sounds as if .NET Framework 4.0 is enterprisey, more JEE than Java. We are seeing increasing fragmentation or more positively, diversification, in Microsoft’s .NET story. There are micro versions, cross-platform versions (Silverlight), desktop versions (client profile), and more and more pieces that only belong on servers.
How much of Oslo and the Dublin application server is likely to be implemented in Mono, I wonder? I suspect not that much, since Mono has focused in the past on the common language runtime and ASP.NET. There was no WPF support in Mono until Moonlight.
All this begs the question: is .NET becoming too complex? I interviewed Scott Guthrie, Corporate VP Developer Division, at the Remix conference in Brighton last month. I asked him about Oslo, thinking that he must be closely involved in what is, according to some at Microsoft, a major step forward in application development. His reply: “That’s not my world”.
Guthrie is a simplifier. He was one of the original developers of ASP.NET, along with Mark Anders, and as I recall, when asked what modelling tool he used he replied, “a whiteboard”. I spoke to Anders about the early days of ASP.NET and he emphasized the value of simplifying what already exists; see also How ASP.NET began in Java.
Microsoft also claims that Oslo/Dublin will make complex things easier for developers, but looking at all these pieces I’m waiting to be convinced. PDC 2008 is where we will find out more.
*According to this post “Dublin” actually refers to the next version of Windows Server itself, though this announcement says “a set of enhanced Windows Server capabilities codenamed ‘Dublin’ that will offer greater scalability and easier manageability.” I guess this comes to the same thing, and that preview versions of Dublin could either be early releases of the entire OS, or preview bits that install into Server 2008.