Today, I woke up to an interesting headline: Microsoft’s Volta project has been released through Microsoft Live Labs. I am not exactly sure of the details of how Volta works but early impressions are that it is fundamentally Microsoft’s response to GWT (Google Web Toolkit); never mind the fact that Microsoft seems to be doing quite a bit of this responding business. So briefly, with Volta you design your applications as you would any desktop application (single tier) and when your code & design wizardry is done you then invoke Volta to turn your application into a web application which is usually multi-tier with each tier running on a different machine or at the very least a different process.
Microsoft’s .NET framework is increasing showing up just about everywhere though it is still fundamentally attached to the Windows OS. There is SQLCLR which is embedded into Microsoft SQL Server (from version SQL Server 2005 going forward). On the middle tier (application layer) there is the normal CLR and Silverlight covers the presentation layer. Recent extensions to the .NET programming languages in form of LINQ for C# 3.0 and VB.NET 9.0 introduced a standardized query syntax to enable uniform expression of queries across disparate data sources. Through the use of annotations, LINQ – SQL and LINQ – Entities enables CLR supported rewrite of code from the LINQ compliant programming languages to the appropriate data model in each context.
How it is
Volta works on Microsoft Intermediate Language (MSIL) code and as such it assumes ubiquity of the .NET framework, at least during the development stage; MSIL is the same stuff that .NET compliant programming languages compile to. As you may be aware, Microsoft’s CLR includes a wealth of meta data that can be used for various purposes by tools that understand the meta data. So Volta makes use of the meta data that is compiled into the MSIL code to make a multi-tier application out of a single tier application. Volta leverages the rich meta data to achieve refactoring, retargetting and remodulating.
The Volta rewriter automatically creates and deploys the marshalling and security code necessary to execute the code on multiple tiers. The following diagram illustrates evolution of a Volta application from single-tier architecture to a distributed, multi-tiered architecture.
Volta achieves its objectives through automation and this also presents a huge opportunity to dynamically target the code that Volta produces to the appropriate platform and runtime hence optimizing it as much as possible. This enables Volta to target platforms but also increases the number of possible tiers that an application can be split into.
From the Volta site once again:
Volta hides as many browser-specific differences as possible, but still allows developers to leverage the unique capabilities of particular browsers. Instead of targeting solely the intersection of browser capabilities, Volta targets the entire union, but makes the intersection browser-agnostic. This is browser remodulating. From the developer’s point of view Volta attenuates browser differences. But what about testing and debugging? Volta and the Visual-Studio integration supports debugging and testing of applications with full transparency. Visual Studio’s Solution Platform dropdown lets us choose the specific browser we want for a testing/debugging session. This allows us to see how each browser renders the HTML.
- Democratizing the Cloud by Erik Meijer (MSR)