The keynote address was given by Microsoft's Bob Muglia, senior vice president of Microsoft's Server and Tools Business. The keynote began with a short seven minute skit themed after Back To The Future. In it, a 'Doc' (played by Christopher Lloyd, no less) took Bob Muglia with him to the recent past (in a time-travelling DeLorean) to show some of Microsoft's most notable failures ("I have to take you back in time to shy you why they're so tired of 'Microsoft's visions'!"). Afterwards, they went forwards to the near future (2015) where the Doc showed a future controlled by Microsoft technologies, a future where Microsoft Bob and Clippit were the rulers of all they surveyed ("You look like you want to scream. Would you like me to help you?"). After a little more time-travelling where all was set right again (and where "Biff" was reduced to a Starbucks runner), the actual ("corrected") keynote began.
The theme of the keynote is that Microsoft is giving you the technologies that the customers want to work with. Customers wanted increased Linux support, and they got it; during the keynote, they announced a Xandros interoperability plan, as well as showed a Linux box and various versions of Windows (server and client) running simultaneously on the same hardware. Customers wanted open standards, and a number of them were mentioned. (To quote Bob Muglia, "Standards are key. We work with standards bodies across the industry. [When] we build new technology, we work with open standards.") A number of new technologies for IT professionals were shown off (which elicited more than a few 'wows'), and a few technologies that will be mentioned later were touched on.
Unlike what you might expect, the spotlight was shared -- not only among speakers, but with the technology. Orcas was shown off ("Now, this is Visual Studio 2008 beta one, and there is a small bug, believe it or not..."), many demos of Silverlight were shown off, and a new model-based centralized Windows Server 2008 control panel for distributed hardware setups were shown off (something which, frankly, went over my head, as I'm still struggling with ad-hoc connections -- but got a lot of surprised applause from the IT section of the audience, so I assume that they highly approved).
After the 90 minutes of speeches, demos, and videos (and a few more antics from Christopher Lloyd), we were released onto the Orlando Convention Center. We only had five days, and we were all desperate to learn, and enjoy all the refreshments on Microsoft's dime.
.NET has been one of Microsoft's greatest hits in the past few years, and its success was leveraged during the show. If you've never heard of it, the .NET (pronounced 'dot net') framework is Microsoft's common library for building programs. Something of a shared library on steroids, the .NET framework makes it easier and quicker to program applications by providing common functions in an easily referenced way, and its Common Langauge Runtime lets you use any of Microsoft's supported languages or even port your own to it (there's even Smalltalk for .NET). .NET programs run by default on everything from XP and later, and it can be installed on many earlier versions of Windows. Much of the developer-focused course of the show was based around .NET 3.0 (recently released) and the version of Visual Studio built to best utilize it (Orcas), and the uses of the various subsets of the full .NET framework.
The single most interesting addition to the .NET framework was Windows Presentation Foundation, or WPF. WPF is an XML-based vector graphics approach to user interfaces (also known as XAML -- Extensible Application Markup Language). As described in one session, the goals of WPF are to be "small in size, easy to read, and easy to write," saving the developer time and headaches. Speaking as a developer, it succeeds in this respect; a look at WPF XAML code show that writing XAML code more closely resembles coding a webpage than the days of Windows Forms. I could hand-code a XAML interface; a Windows Forms interface all but requires a GUI.
A secondary addition was the Windows Communication Foundation, or WCF. WCF is a common XML-based method for transmitting messages over various mediums, including peer-to-peer networking (which elicited a few surprised remarks from the audience). Although interesting, it's unrelated to what I am working on now, so I only went to one (very basic) seminar on it. Two other features new to 3.0 were mentioned -- Windows Workflow, and Windows Cardspace -- but neither made a big impression on developers.
One of the key points they tried to make about .NET was its usefulness across platforms; a .NET developer should have a reduced time of introduction into non-desktop platforms. One subset of the .NET framework is .NET Mobile, which is included with Windows Mobile 6. (One estimate quoted in the conference was that one billion mobile devices were running Windows Mobile 6 -- rather a success.) Although upwardsly compatible with the full desktop .NET platform (which makes debugging much easier, since Mobile code can be run on a normal Windows box), the .NET Mobile platform takes into account the difficulties of developing for platforms that may use very different processor architectures.
XNA ("XNA's Not an Acronym"), Microsoft's indie video game programming initiative, is also based around a subset of .NET, and it also made a showing at TechEd 2007 this year. With the exception of the XNA-specific extensions (for things like game controls), it looks just like a standard .NET application. This subset uses controls that are common to both PCs and the XBox 360, and it is being used to develop games -- the first if which is about to go commercial. There were a few difficulties for XBox 360 development mentioned in the seminar -- mostly in trying to strike the right balance between ease of development and collaboration, ease of taking finished XNA games to market, and preventing abuse -- but every indication is that the difficulties of XNA development are going to down further.
And then, of course, if we're going to discuss cross-platform .NET development, we can't forget Silverlight.