Shiju Varghese's Blog Headline

Shiju Varghese's Blog

Thursday, December 6, 2007

Microsoft Volta - A Revolutionary development model for the next decade

Microsoft has released Community Technology Preview (CTP) version of its latest technology Volta. Volta is a developer toolset that allows developers to write Web applications and Mobile applications using existing .Net tools and languages such as C# and Volta makes easier for anyone to build applications that can be deployed on the Internet or in the cloud. You can download the Volta CTP from In order to use the Volta toolkit, you need to .Net 3.5 and Visual Studio 2008. Volta supports applications that run on the Microsoft CLR, a JavaScript-enabled browser, or a combination of the two.

The idea behind the Volta toolset by Erik Meijer, a SQL Server architect currently he is working as a principal architect of Volta. Microsoft Live Labs home the Volta toolkit and using Volta for developing applications for the Windows Live platform. At OOPSLA (Object-Oriented Programming, Languages, Systems and Applications) 2007, Erik Meijer had a demonstration about Volta. Erik Meijer said "We pick the .NET Common Language Runtime (CLR) as our universal computation model. We prefer, of course, to use the already available CLR implementation on each respective tier: SQLCLR on the data-tier; regular CLR on the middle-tier; and Silverlight for Web-clients, or the regular CLR for desktop clients. When no CLR is on hand, we use the materials already available in the room. On the data-tier we compile MSIL to SQL. This is the approach currently taken by LINQ-to-SQL and LINQ-to-Entities. On the client-tier we compile MSIL to JavaScript or Flash. This is the approach taken by Volta. The upshot is that we uniformly provide (the illusion of) the .NET platform on each tier, in effect stretching it to cover the Cloud. Application programmers only need to care that they can run MSIL everywhere, not about how this is technically accomplished under the hood.” Alex Daley (Group Product Manager of Microsoft Live Labs) said “We are not against JavaScript. We are in favor of MSIL. For us, JavaScript is just an assembly language. You can use Visual Basic or C# or whatever and all will compile to MSIL.”

Just like Visual Basic made client-based application development available to a wider tier of developers by removing much of the complexities, Volta is a toolkit of language extensions, APIs, and tools that do the same for web programming. As a result, ordinary programmers can concentrate on the essential aspects of building distributed and mobile applications such as partitioning and owing code and data across tiers, deployment, security, etc. without getting bogged down in low level details. "If you look at when VB came on the market, it was really, really hard to do Windows programming. You had to be a C++ programmer, and then VB came around and then suddenly people could write Windows programs. Now it's the era of the Web, but in some senses we're back in the early days of Windows programming." Meijer said.

Volta enables architecture refactoring and you don’t need to write Silverlight or WPF applications. You can create a single-tier client application for a common model instead of a particular programming model and can be end up with MSIL. Later you can refactor the applications into multiple tiers and can generate a JavaScript or Silverlight client from the MSIL. Volta generates MSIL if runtime detects CLR on the end users machine. Otherwise it will generate cross browser JavaScript. If your client has Sliverlight, it will generate a Silverlight client application. If your client running with a non-Silverlight browser, then the Volta engine will generate JavaScript that manipulates DHTML. In essence Volta is a recompiler. Volta works on MSIL rather than on a textual source language. Volta rewrites MSIL into any number of target languages, including, today JavaScript and MSIL itself.

I am so excited with the new Volta toolkit and will add new blog entries later with lot of details.

No comments: