.NET Out of the Box
With Silverlight 2, the focus moves to optimizing development of RIA-based business apps.
When Microsoft launched the final version of Silverlight 2 last month, it marked a crucial step in the maturation of the .NET-inspired rich Internet application (RIA) platform.
More than a runtime for streaming rich media over the wire, Silverlight 2 incorporates a robust subset of .NET Framework. That has significant implications for .NET shops looking to extend the reach of their code-making efforts.
Microsoft's goal with Silverlight is twofold. The first goal is enabling media, particularly video and audio, and the second goal is enabling RIAs -- both consumer and business applications. "We're optimizing around those two tracks," says Brad Becker, Microsoft's director of rich client platforms.
It's the second track that's capturing the attention of .NET dev managers. Microsoft Development Division Corporate VP Scott Guthrie asserts that Silverlight 2 development is tightly integrated with the existing .NET stack, allowing coders to leverage existing skills and tooling for Silverlight-based app development.
During a press briefing to announce the launch of Silverlight 2 last month, Guthrie noted that existing tooling would be updated for the final Silverlight 2 release. Visual Studio 2008, the Expression Blend 2 design tool and the freely available Visual Web Developer Express IDE for Silverlight development are gaining Silverlight 2 -- specific patches as part of the update. Guthrie laid out a compelling argument for .NET dev shops considering Silverlight-based RIA development.
One noteworthy aspect of Silverlight 2 is its ability to deliver .NET-based application logic beyond the traditional circle of .NET-enabled clients. It's a characteristic of Silverlight that .NET developers are excited about, says Andrew Brust, chief of new technology for consultancy twentysix New York.
"I'm starting to hear more and more -- within the developer community -- people speak to the ability of running on Mac as anything from a 'nice to have' to a real requirement," Brust says. "For these developers, the only other way to meet this requirement is to write a true browser application, likely using AJAX -- either [with Microsoft] ASP.NET AJAX or another toolkit."
Currently Microsoft provides Silverlight runtimes for specific browsers running on Windows XP-, Windows Vista- and Mac OS X-based PCs. Supported browsers include Internet Explorer and Firefox on Windows clients, and Firefox and Apple Safari on Macs. The company has also announced runtime development for two mobile platforms: Windows Mobile and Symbian OS-based devices from cell-phone maker Nokia Corp. Guthrie says private testing with additional partners is underway.
"Compared to RIA technologies like Adobe AIR and Silverlight, [AJAX] still provides a rather primitive environment in which to program applications and still forces the tricky stuff to run on the server," Brust says. "While technologies like AJAX mitigate the inferiority, and sometimes do so really well, working in an awkward, repurposed environment like HTML really bums corporate developers out and is just a lousy place for LOB [line-of-business] apps to live."
The cross-platform reach of .NET and Silverlight development does not natively extend to Linux clients, which Microsoft says are too limited a niche to warrant dedicated development. Microsoft has outsourced that effort, offering technical support to the open source Mono and Moonlight projects headed by Miguel de Icaza and sponsored by SuSE Linux vendor Novell.
Mono is an open source implementation of .NET Framework that allows developers to deliver .NET-compatible apps to Linux, BSD and Solaris-based systems. The current iteration of Mono-version 2.0, released last month -- provides equivalence with .NET Framework 3.5 minus the three foundational components of Windows Presentation Foundation (WPF), Windows Communication Foundation and Windows Workflow Foundation. The Moonlight project provides a Silverlight 1-compatible runtime that enables playback of content on Linux and other non-supported systems. There is no stated time frame for Silverlight 2 support for Moonlight.
John Papa, a senior consultant with ASPSOFT Inc. in Windermere, Fla., and author of the upcoming book "Data Services with Silverlight" (O'Reilly Publishing, 2008), has been "pleasantly surprised" with the cross-platform capability of the Silverlight platform. But he's wary of the Linux support promised by the Moonlight project.
"Honestly, I don't know how many of the companies I work with really have Linux end users," he says. "If I have a Linux user base, I'd be much more hesitant to look at Silverlight."
Moonlight currently only supports Silverlight 1 content, but .NET developers can extend their apps to Linux, BSD and Solaris clients by coding for the Mono 2.0 framework. The Mono project includes the MonoDevelop IDE, which lets developers create .NET- and Mono-compliant applications on Linux. MonoDevelop 2.0 is expected to ship early next year.
De Icaza says many existing .NET apps can be readily ported to Mono: "Sometimes the refactoring is easy. Sometimes you do have to put more work into that."
Winning Hearts and Minds
Even as Microsoft streamlines its .NET dev tools portfolio, the company is working to woo open source programmers. At the Silverlight 2 press conference, Director of the Developer Platform Group at Microsoft Brian Goldfarb announced that Redmond is funding French tools firm Soyatec to integrate advanced Silverlight 2 tooling in the open source Eclipse IDE. Goldfarb expects a final version of the tooling to ship in the second half of 2009.
"This support will start out with a Windows focus, but over time, based on the excitement of the community, we hope to extend that to Mac platforms and Linux platforms," Goldfarb says. "We're giving the Java community -- people who want to use Java Web services, or anyone who thinks of Eclipse as their primary development tool -- a way to very easily build Silverlight applications inside the tools they're already familiar with."
Adobe Ships Flash Player 10
Just one day after the official drop of Silverlight 2, Adobe Systems Inc. announced the release of Adobe Flash Player 10 for Windows, Mac OS X and Linux.
The latest version of Flash gains support for new expressive features and improved visual performance to enable more compelling and cinematic presentation. Flash 10 also lets developers and designers create their own filters and effects with Adobe Pixel Bender, and offers enhanced text handling. Like Microsoft, Adobe touts collaboration and design and developer workflow enhancements with the Adobe Creative Suite 4 tool.
"This has been a huge theme for us and is in the next generation of releases," says Dave Gruber, group product marketing manager for Adobe's platform division. "Of course, Adobe knows designers better than anyone in the world and truly understands how to get designs through the workflow from design to development."
Flash Player 10 is available for immediate download at Adobe's Web site.
In addition, Microsoft released its Silverlight XAML vocabulary language under the Open Specification Promise (OSP) program. Similar to Microsoft's release of the WPF XAML vocabulary last year, the move makes it possible for developers to reference the documentation in order to build more robust tooling and components.
Microsoft didn't stop at the Eclipse integration project and OSP release of the Silverlight XAML vocabulary in its efforts to woo potential developers. Goldfarb also announced the release of the Silverlight Control Pack, an open source project hosted on CodePlex that provides Silverlight controls under the Open Source Initiative-recognized Microsoft Public License.
"It will be a rapid iteration, publicly available set of controls, like docpanel, viewbox, accordion, treeview," says Goldfarb. "Over 11 [controls] today, growing rapidly to 50 or more over the coming months and years. Anyone can then take that software, look at the source code, use that source code for their own education, and it's a great learning opportunity for best practices and decision making that Microsoft has made for these high-quality controls. You can derive from them. You can commercialize them."
The effort to draw developers to Silverlight 2 started years ago with the initial CTP of Silverlight 1 in 2006, and culminated recently with the ambitious NBC Olympics Web site. That effort, while garnering high-profile attention to the new framework, also muddied the waters by forcing multiple iterations of Silverlight 2. The Olympics site was built using beta versions of the Silverlight 2 toolset and runtime.
"We actually don't plan on doing big betas, go-live [licenses], that kind of messy stuff," Microsoft's Becker says. "We wanted to deliver a lot of stuff in Silverlight 2. As you can see, having .NET Framework in there cross-platform was a huge thing. But the Olympics needed to go when the Olympics needed to go."
While Microsoft touts the NBC Olympics site as a success, Gartner Inc. VP David Mitchell-Smith says the company still has work to do. "The challenge for Microsoft is, because of the initial positioning of Silverlight as mostly video, there are still people who think of it that way only," Smith says.
ASPSOFT's Papa agrees. "In terms of Silverlight, a lot of people don't get what it is right now," he says.
Microsoft has delivered great technology for business developers, singling out ADO.NET data services and its support for RESTful end points, Papa continues. But he urges Microsoft to produce guidance for business developers in the form of best practices, design patterns and white papers.
Microsoft's Becker says Silverlight is poised to become a powerful, cross-platform delivery vehicle for .NET-based app logic: "That's it. That's the vision exactly."
Michael Desmond is an editor and writer for 1105 Media's Enterprise Computing Group.