Extending.NET to Multi-Tier Apps

Last month, Redmond released an early build of "Volta," a set of tools for building Web apps that run across multiple tiers. If Volta works as advertised, it will enable the army of current Microsoft developers to keep using their .NET code for a whole new class of hardware.

"The major benefit near-term is the ability to develop using proven [Microsoft] tools and libraries for Web 2.0 applications as well as leverage existing .NET code," says Dave Thomas, founder and chairman of Bedarra Research Labs Ltd., via e-mail. "Unlike Silverlight, which requires the download of CLR and has a substantial footprint, Volta only depends on a [JavaScript virtual machine]."

Thomas, whose Ottawa-based research lab evaluates next-generation computing technology, says that he's in the very early stages of looking at the tool. Volta is in roughly the same arena as Sun Microsystems Inc.'s Lively and Google Inc.'s JavaScript application tooling and apps tooling, and potentially Android VM and Mozilla JavaScript, he says.

Volta and Visual Studio
The early build of Volta is for use with Visual Studio 2008. "This is focused on the idea of building distributed multi-tier development using only existing tools and techniques and patterns from .NET," says Alex Daley, senior product manager for Microsoft Live Labs.

"People can use C #, Visual Basic [and] other .NET languages to get the best experience without having to tailor their app for a particular target," he adds. "The idea is you build an app starting with the client-side entirely there and declaratively split the tiers -- you say run this on the server, run that on the client and the compiler will take care of building the server-end code as well as handling what's on the other tiers."

The downloadable code must run with the newly shipping Visual Studio 2008 and makes use of server-side ASP.NET capabilities, but otherwise works with whatever languages, tools and infrastructure developers are already using.

The objective is to extend the reach of .NET to places where Microsoft Intermediate Language (MS IL) isn't available, Daley says.

Volta can compile developers' code to JavaScript to run in any standard browser, says Erik Meijer, architect of the Microsoft Live Labs project responsible for Volta. That means the resulting apps should run on any browser. Microsoft has already tested apps running in Firefox and expects them to run on Opera as well.

The resulting apps should also run on Apple Inc.'s Safari browser, "to the extent that Safari is standard," Daley says.

The Volta process basically mimics real-world server-device interactions and allows developers to dynamically alter how they tier the application.

"Since we control the client and server code in one base, we can do end-to-end profiling," Daley says. For example, when profiling an application, a developer can determine if it has too much latency and tweak it accordingly. Daley says developers can use the tool to change what runs on the server based on actual data to assess an optimal architecture.

"It's less costly to make such changes later in the process and when you have to use two frameworks on the client and server," he says.

A Unique Approach
"This is a different approach from what I've seen [elsewhere] because Microsoft is doing this at the byte-code level versus the source-code level," says Jeffrey Hammond, senior analyst at Forrester Research Inc.

Microsoft needs to do this "to make .NET go where Microsoft operating systems don't, specifically with JavaScript. They do, however, use .NET on the server, so in practicality this requires IIS, although I guess in theory someone might do something with the Mono Project or something else to bring other Web servers in."

Daley and Meijer stressed that Volta remains a work in progress. "It's not at all feature complete," but should give developers a glimpse into what the final functionality could provide, Daley explains.

Daley wouldn't comment on how the technology will be delivered, priced or when it would be delivered.

Some tech bloggers were enthusiastic about Volta. "You can write your application logic in any language that's supported by the .NET compiler -- most of the statically typed languages -- in Visual Studio, which compiles to MS IL," writes Venkatesh Mandalapa, a computer science graduate student at Arizona State University.

"The freaking great and interesting part is that they've written a translator that converts MS IL to JavaScript! So then JavaScript is sent to the client side and executes in the browser," Mandalapa adds.

The fact that Volta comes out of Live Labs is significant. This is an incubator organization associated with Ray Ozzie's "Software plus Services" strategy. Ozzie is Microsoft's chief software architect.

As Microsoft seeks to fend off the Software as a Service advances by Google and others, it must provide a relevant, coherent and adaptable toolset, says Paul Barter, vice president of strategy for T4G Ltd., a Toronto-based Microsoft Gold Certified Partner.

"Since the very beginning, Microsoft's key constituency has been developers," Barter says. If it can continue to win developers' hearts and minds with tools relevant to this new service-delivery option, it can prevail.

About the Author

Barbara Darrow is Industry Editor for Redmond Developer News, Redmond magazine and Redmond Channel Partner. She has covered technology and business issues for 20 years.