Thursday, December 06, 2007

First Volta CTP Available from Microsoft Live Labs

The first public attempt by Erik Meijer to "Democratize the Cloud" is ready as of 11:00 AM PST, December 5, 2007, for VS 2008 developers to test-drive a Community Technical Preview. You can read the details about Volta, a product of the Tesla incubator group, and download the first CTP from Microsoft Live Labs' newly minted Volta site.

There's also a Q&A session with Erik Meijer on PressPass and a Volta forum for developers. 

According to Erik's Democratizing the Cloud using Microsoft Live Labs Volta post today on the Lambda the Ultimate forum:

Volta is a collection of tools that enable programmers to develop asynchronous and distributed (including but not limited to AJAX) applications by successive refactoring of normal, sequential, programs written in standard .NET languages (this CTP requires Visual Studio 2008) and deploy the resulting applications on a wide variety of target platforms (this CTP supports Internet Explorer and FireFox). Or as I sometimes say when I am trying to sound like a marketing person "Volta stretches the .NET platform to cover the Cloud" [two-part video clip.] Volta allows programmers to concentrate on the essential complexity involved in building AJAX application and have our tools take care of the gory details and accidental complexity. ...

Volta embraces the Lean Programming principle of delaying irreversible decisions until the last possible responsible moment. In particular we want to delay decisions about distribution as long as possible. To help developers make informed decisions about the distribution a program across tiers, the Rotunda profiler from MSR is fully integrated in the Volta toolchain. By automatically injection hooks for all interesting events, Rotunda creates trace information that can be inspected using the standard Service Trace Viewer tool. [Emphasis added.]

Updated: 12/8/2007

Jeff Atwood quotes and analyzes the Poppendiecks' definition of the Last Responsible Moment in his October 17, 2006 post:

Concurrent software development means starting development when only partial requirements are known and developing in short iterations that provide the feedback that causes the system to emerge. Concurrent development makes it possible to delay commitment until the last responsible moment, that is, the moment at which failing to make a decision eliminates an important alternative. If commitments are delayed beyond the last responsible moment, then decisions are made by default, which is generally not a good approach to making decisions.

See the "Erik Meijer Compares Volta and Google Web Services for Mary Jo Foley" topic of the LINQ and Entity Framework Posts for 12/3/2007+ post for additional input from Erik.

Volta Project Description and Sample Applications

The Volta site provides a more detailed description:

The Volta technology preview is a developer toolset that enables you to build multi-tier web applications by applying familiar techniques and patterns. First, design and build your application as a .NET client application, then assign the portions of the application to run on the server and the client tiers late in the development process. The compiler creates cross-browser JavaScript for the client tier, web services for the server tier, and communication, serialization, synchronization, security, and other boilerplate code to tie the tiers together.

Developers can target either web browsers or the CLR as clients and Volta handles the complexities of tier-splitting for you.  Volta comprises tools such as end-to-end profiling to make architectural refactoring and optimization simple and quick. In effect, Volta offers a best-effort experience in multiple environments without any changes to the application.

Here's a screen capture of the Virtual Earth sample client application:

Click image above to display full-size capture. 

Clicking the C# Code tab displays the C# (not JavaScript) code running in the client to perform the actions in the left-hand bulleted list.


Following are links to previous OakLeaf posts on LINQ 2.0, Volta, Tesla, and "Democratizing the Cloud":

There's no mention of "LINQ 2.0" or even LINQ anywhere on the site. Apparently, LINQ 2.0 will go its own way independently of Volta as the next version of LINQ.

Limitations and Comments

According to the Volta Known Issues and Limitations page:

One of the benefits of Volta compiling to MSIL before the destination runtime, rather than source-to-source translation, is that developers can use multiple .NET programming languages to build Volta applications and controls, including C# and Visual Basic. However, currently you will encounter several limitations when using Visual Basic, including:

  • Late binding is not supported.
  • Services from My (such as User, Computer, etc.) are not supported.

The following are also unsupported unless explicitly specified otherwise:

  • Conversion functions. For example, the Cint conversion function works only if the underlying type supports the conversion.
  • Helpers and VB6 legacy. For example, the Beep method is unsupported.

So VB again is a second-class citizen, even in project intended to "democratize" a technology.

According to a forum message, you can't use Volta with VS 2008 Express editions because they don't allow loading the extensions that are required to run Volta.

Expect to hear more about Volta after I download the bits and give it a test drive.

Moved: 12/6/2007 from LINQ and Entity Framework Posts for 12/3/2007+

Technorati Tags: , , ,