Microsoft PDC 2008 day 1

Keynote The keynote was of course introduced by MS chief architect Ray Ozzie. He summarized the past few decades of backend-services, from monolithic over client/server and SOA to Services. He then presented what is Microsoft's take on world class availability: The cloud operating system, Windows Azure. * From what I could tell it is a managed hosting environment, based on Microsoft's world wide hosting centers, providing a service management interface that will allow services to scale out and upgrade while providing continious availability. Ozzie recognized Amazons recent innovation on practices in this field. Nothing comes for free and what little information came out was that the pricing will be based on service resource usage and the service level provided by Microsoft. Azure consists of the new "light blue" (re-)branded technologies: Microsoft .NET services (WPF, WCF, Identity Foundation), Silverlight, Live. The applications running on the tech: SQL, CRM, SharePoint Online. Interestingly authentication in the cloud can be done by Active Directory on premises. *SharePoint online A demonstration of the new cloud SharePoint Online was given. It's basically a scaled down version of MOSS, where the collaborative and visually extensible functions remain - and is hosted by Microsoft. This version begins at 5 seats and scales to 5000, so in contrast to what I heard Ballmer say 3 weeks ago, MS is definately going for small- and medium sized businesses hosting. The bad news is the feature list is heavily shaved, ie. all the code, web.config and general file system customization is off limits - all is done via SharePoint designer. Also missing is enterprise features like BDC, Excel Svc and ent. search. I had hoped for some new online-like-BDC functionality, I think would be spot on. The product still looks early. The speaker had trouble publishing a Master Page. So the unstability-feature of SharePoint is also available in the cloud. >o) -- Updated: Dublin The "Dublin" Windows Application Server Extensions session was a bit messy and noisy from where i sat. They generally talked about .NET services but didn't tell how it actually extended the WAS. From "Oslo" two new WCF bindings was shown: NetEventRelayBinding for publishing events to the cloud, and NetTCPRelayBinding for observing these events. Future of C# Technical fellow Anders Hejlsberg was a very popular man as he revealed the vision for the next generation of the C# language. He showed a running version of Visual Studio 2010 (without mentioning it). Improvements to the language fell in three categories he said: Declarative, Dynamic and Concurrent.  He presented interop with the new dynamic runtime library, using the new keyword "dynamic" he said was actually an object type with an attribute. It seemed like syntactic sugar for dynamically invoking methods on an object type, but he demonstrated it with Python and Javascript also, and it had the exact same syntax. Nice! The biggest applause today was given when Anders told C#4.0 will support optional and named parameters - this is a great thing for those using COM Interop. The .net Array type is covariant, meaning you can e.g. pass a string[] to an object[] reference. But until C#4.0 the IEnumerable could not be passed to a IEnumerable reference. Very nice, so no more stupid foreach-yield... Not much was said about concurrency, except he meant today's code overspecified. Linq is clearly a good way to take a step up the abstraction ladder. I had hoped for more in this field. Metaprogramming is becoming a big thing, i.e. code generation based on DSL or VS designers like Entity Framework. Reflection Emit can do it, but it's tedious. Anders demonstrated an early version of a post-4.0 release that had classes to generate and execute c# code real simple. He did a simple "immediate-window" c# interpreter, and it looked awesome. A lap around Azure (part 2) Basically a walkthough of the core services in Azure. Identity and access control supports Windows Live accounts and on premises Active Directory accounts via the new Services Connector or the upcoming Geneva service for AD federation. User data is connected with publish/subscribe, so profile data can be replicated to the application when a user updates her Live profile. A lot more Mesh technology will be revealed on the keynote Tuesday, so I'm really looking forward to this. The .NET Service Bus is basically a message enabled protocol layer for loosely coupled applications that lives in the internet cloud. The url was specified with sb:// (that was translated into something like http://servicebus.windows-ppe.net/) A nice VS extension to Workflow Foundation was shown that enabled 1-click deployment of a WF to the cloud. WF can be used for building stateful and long running services (hosted on something like http://workflow-ppe.biztalk.net). For the SQL Data service they showed an addon to Excel, that enabled it to consume SQL Data Online directly and display it in a graph. Great stuff. Asked if cloud SQL supports transactions, the answer was no. WF4.0 Great news from the Workflow Foundation team that have turned the somewhat funky WPF coding experience much more straightforward. Aside from the sequence and state models a flowchart model is added, and there is support for fully declarative workflows and Code Activity is now depricated.  Expressions and rules can be expressed as VB or the new "m" language, and activities are now simpler to  code. Persistence is optional and provides a major scalability/performance win. This and other improvements should give 10-100 times faster execution. The designer is rewritten to use a new WPF GUI, and is also much faster that the old slug. Snapshots are up at  http://www.flickr.com/photos/mads_klinkby/sets/72157608438820497/.