Free Newsletters

   All InfoWorld Newsletters
Strategic Developer | Martin Heller » Volta: How it Works

December 06, 2007 | Comments: (0)

Volta: How it Works

Volta I downloaded the Microsoft Volta preview bits yesterday after writing up my initial take on the announcement, only to discover that my Visual Studio 2008 Beta 2 Virtual PC had expired, meaning that I couldn't actually try Volta out myself.

Meanwhile, I looked into how Volta works. As documented here, Volta basically works as a recompiler for .NET 3.5 applications. As a developer, you build the whole application as though it will run entirely on the client, and then you mark parts of it to belong to the server tier. Compile it. Volta then looks at the generated MSIL in your assemblies, and rewrites it "into any number of target languages, including, today JavaScript and MSIL itself."

According to Microsoft, the three techniques used are "refactoring, retargeting, and remodulating. Refactoring converts single-tier code into distributed, concurrent code as directed by user-supplied annotations. Retargeting converts MSIL code into code for other virtual machines. Remodulating tailors a single piece of code for multiple browsers."

The fact that Volta can retarget .NET applications for JavaScript means that you can write plain old .NET code to generate Ajax applications, much in the same way as GWT lets you write plain old Java code to generate Ajax applications. That opens up a number of interesting scenarios.

It also opens up a number of interesting questions. How well will all of this work? Will it make developers' lives easier, or add yet another layer of junk between us and our goals, and introduce hard-to-debug, hard-to-profile black boxes into our applications? Will it turn out to be the powerful, liberating tool that Microsoft's write-up suggests, or will it turn out to primarily be a way to lock developers into writing for the .NET Framework?

What do you think? Have you been able to try Volta yourself?

Posted by Martin Heller on December 6, 2007 11:48 AM


RATE THIS ARTICLE:





 

  •  
  • COMMENTS




> "Will it make developers' lives easier, or add yet another layer of junk between us and our goals, and introduce hard-to-debug, hard-to-profile black boxes into our applications?"

I'm leaning towards "layer of junk". The decision about where to cleave the client and server is one that can make all the difference in web app design. It seems like this is trying to fuzz that important boundary.

Plus, Javascript/HTML/CSS is very functional at this point; even the weaknesses of the trailing player (Microsoft) can be largely overcome. By trying to turn it into "assembly language" with Volta as the HLL, you're making it a nightmare to debug. Especially on IE, which has so few developer tools.

Posted by: Dave at December 6, 2007 12:38 PM

Technology White Papers

 

InfoWorld Technology Marketplace

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
» BUY A LINK NOW

Sponsored Technology Links