Ray Ozzie took center stage this morning at the Day 1 Keynote at PDC 2008 and everybody knew he had at least one surprise up his sleeve. He teased the audience a bit with some background on Microsoft vision for software as a service (SaaS) and cloud computing, including hosting for Exchange Server and SQL Server Data Services (SSDS).
The Azure Services Platform
Windows Azure is at the heart of the Azure Services Platform. It is the service which abstracts the underlying hardware from the other core Azure Services. Sources say that the Azure product name was finalized only days ago. That decision triggered a last-minute flurry of changes to PDC presentation materials.
The services that leverage the Windows Azure platform and make up the services exposed to the Cloud are Live Services, Microsoft .NET Services, Microsoft SQL Services, Microsoft SharePoint Services, and Microsoft Dynamics CRM Services.
While the basic ideas here are not new (Amazon Web Services and Google Apps both beat Microsoft to market), Microsoft ability to tie their services to popular, existing business solutions could be a key differentiator. They have a large customer base using their Exchange, SharePoint and Dynamics products. Pricing was not announced but figures to be competitive with Amazon and Google. Pricing for SharePoint Services will be particularly interesting considering SharePoint licenses have always been included with Microsoft Office System licensing.
Hardware by Dell
Microsoft did not talk about the hardware underlying their new cloud OS, but earlier today Dell put out a press release indicating that Microsoft is in fact “working with Dell's Data Center Solutions (DCS) division to build-out and power Windows Azure.”
What Does Windows Azure Mean to Developers
Azure Services allow .NET developers to push their applications and/or databases into the cloud, while still allowing them to debug their apps on their local machines. Existing applications will have to be re-worked to run on Azure according to Shan McArthur, VP of Technology for ADXSTUDIO, Inc. Yesterday, ADXSTUDIO announced support of Microsoft Azure Services for their Web Content Management system and CRM Developer Toolkit products. According to Mr. McArthur, the biggest hurdle for most ASP.NET developers who want to host their services in the cloud will be ensuring their application can run in medium trust. Many low-level operations are not going to be available to cloud applications for security and reliability reasons.
PDC attendees received codes to register for Windows Azure Services immediately. Those not attending the PDC will be able to register for the free beta period in the coming weeks. Once registered on the site, developers can use the new Azure SDKs to begin tooling their applications to run in the cloud. Microsoft has made SDKs available for .NET developers using Visual Studio as well as SDKs for Java and Ruby developers.
The Road Ahead
Ray Ozzie indicated that Windows Azure Services would open for a public beta period early in 2009 (in the U.S. only at first), but did not provide a concrete timeline for when the services will RTW (release to web). He also said that because this is an early preview, developers should expect changes to the API, possibly including breaking changes.
Several developers I spoke with felt the keynote was a bit high-level and dry for their tastes. I tend to agree with them, but I expect the keynotes on Day 2 will be more developer-focused, with a look at Windows 7 and Windows Live Services.
The Future of C#
Anders Hejlsberg's talk offered a look at the new language features coming in C# 4.0, as well as a sneak peek beyond that. Most of the features coming in C# 4.0 aim to provide developers with more backward compatibility to COM objects. The new features are Dynamically Typed Objects, Optional and Named Parameters, Improved COM Interoperability, and Co- and Contra-Variance.
Allowing C# to have optional and named parameters, brings a feature long available in Visual Basic to the C# developer’s tool belt. The reason for this was two-fold. The .NET team is focused on providing equal feature sets to VB and C#, however the implementation of these features may differ between the languages. The larger reason is COM interop, particularly when developing against the Office COM components.
Other interop improvements include making the ref keyword optional for parameters of COM methods, automatically mapping object COM variables to dynamic types in C#, indexed properties, and interop type embedding.
Co- and contra-variance means that many Interfaces and Delegates in the .NET Framework will have objects specified as either in or out. This provides type safety when casting read-only collections from one type to another. Developers can also decorate their own generic Interfaces and Delegates with these keywords.
Hejlsberg ended his session with a sneak peek at what their working on for C# beyond 4.0. He announced that the C# compiler is being re-written from native C++ to managed code. This will allow Microsoft to open the compiler API to developers. In a fantastic demo, he wrote a command-line application in which he entered code that was compiled and run as it was entered. This one really wowed the crowd.
Microsoft Silverlight, WPF and the Microsoft .NET Framework: Sharing Skills and Code
Ian Ellison-Taylor’s presentation focused on explaining some of the differences between writing XAML for WPF and writing it for Silverlight 2. Essentially, Silverlight provides a subset of what is available in WPF. This was necessary in order to make the framework lightweight and available cross-platform and cross-browser.
The demo consisted of creating a Twitter project in both WPF and Silverlight, and copy/pasting code from one to the other to illustrate the similarities and differences. Obviously, going from Silverlight to WPF is much easier, but there are still some incompatibilities due to the fact that Silverlight 2 was just relased and WPF has been around for a while. Some upcoming projects on CodePlex aim to minimize some of the differences.
Day 1 had it’s ups and downs, but overall it was a good start to an exciting week for Microsoft enthusiasts. Stay tuned for my wrap-up of Day 2!