The buzz surrounding Silverlight, unveiled at MIX07, has dissipated a bit -- but that is mostly the result of the business of buzz, as both Microsoft and the .NET developer community have been busy putting Silverlight to use. (Tim Sneath's From A to Z...50 Silverlight Applications offers extensive evidence to that end.)
The media capabilities of Silverlight get a lot of attention; after all, HD video and high-quality audio make for a pretty sweet conference demo.
At Tech Ed 2007, Scott Guthrie, general manager of the .NET Developer Platform, offered developers a nice synopsis of what Silverlight is, what it can do and, most importantly, how developers they work with it.
First, he identified the two ways of programming Silverlight.
The second way to program Silverlight is with the .NET Framework, as Silverlight 1.1 includes the full .NET programming model, a subset of .NET class libraries and the same CLR (Common Language Runtime) engine as .NET on the desktop. The aim here is to bring together the seamless nature of Web applications and the state model, productivity and performance of client apps, with rich media thrown into the mix as well, Guthrie said.
"You can now use .NET on the Web server, you can use it on the desktop client and you can run it cross-browser inside Silverlight," he continued. "You can learn a single, consistent .NET API, and, once you know that, you can target any of those three types of experiences."
Guthrie then offered six additional reasons Microsoft opted, with Silverlight, to bring .NET into the browser.
More on Silverlight Reference: Silverlight Learning Guide
Checklist: What developers need to know about Silverlight
Podcast: What is Silverlight?
- A richer UI framework. Remember, Silverlight got its start as Windows Presentation Foundation Everywhere; essentially, it is a subset of WPF. As time marches on, Microsoft will be adding to Silverlight some high-level controls -- data binding, templating, styling and so on.
- The HTML DOM (Document Object Model) API. This, Guthrie said, gives developers the ability to go into am HTML page and use Visual Basic or C# to program the HTML DOM.
- A flexible networking stack. Through this, developers can use the XML HTTP request, REST or more traditional Web services (using ASMX or WCF) to define the client-server relationship in a Silverlight application, Guthrie said.
- Flexible data support. Silverlight 1.1 supports LINQ (Language Integrated Query) libraries. This gives developers the power to query any IEnumerable data type and manage it on the client, he noted.
Finally, Guthrie let the audience peek into Visual Studio 2008, and the XAML (Extensible Application Markup Language) files that define Silverlight controls, to demonstrate how to write Using statements to import namespaces, access the aforementioned class libraries, and take advantage of IntelliSense.
These XAML files can be passed back and forth between Visual Studio and the Microsoft Expression suite of design products. Guthrie's demo featured a brief foray in Web application design, followed by a return to the more familiar Visual Studio 2008. There the XAML file displayed the color gradient, timeline stamps and other design changes he had made in Expression Blend.
"The ability to have design tools and development tools work on the same project at the same time really lends itself to the collaborative Experience," Guthrie said.
VS 2008 itself reflects Silverlight's cross-browser and -platform capabilities. During a debugging demo that involved an onstage Mac, Guthrie noted, to applause, "You're getting IntelliSense against a live object running in Safari on the Mac remotely within Visual Studio."
As for the future, Guthrie said Silverlight 1.0, now in beta. should be ready for general release later this year; such a timetable has yet to be determined for Silverlight 1.1, now in alpha.
Additional functionality Microsoft is working on for those subsequent releases, he added, is a WYSIWYG designer within Visual Studio Orcas for XAML files as well as support for the Microsoft Expression tools within Team Foundation Server projects.