Microsoft is previewing a new experimental developer toolset that will help developers distribute application code between the client and server in Web and Rich Internet Applications without manual coding between the distributed client-server tiers. Called “Volta,” Microsoft’s Live Labs team plans to work with customers to develop the technology and process.
“By releasing Volta as an experimental toolset, we hope to validate the overall goal and approach, as well as collect feedback that will be helpful in driving further development,” noted Erik Meijer, Microsoft’s principal architect for Volta.
Client First, Split Later
“Unlike other approaches, Volta starts with a client-side perspective,” Meijer explained. “That is, once developers are satisfied with an application’s functionality and fully understand the internal object interactions, they ‘decorate’ the code with declarative attributes, or annotations, to indicate the parts of the application that should run on other tiers.”
The idea is that Volta shields the complexities of tier-splitting for the developer. Plus, by letting a developer move portions of application workloads to and from clients and servers, the developer could theoretically optimize performance of applications much faster than by reworking applications by hand. To do it, a programmer inserts explicit declarations into the source code, Microsoft said, stating the tiers on which certain classes and methods should run. Volta then automatically inserts low-level communication and serialization code and moves the annotated code to the appropriate tiers.
Volta works by rewriting MSIL (Microsoft Intermediate Language), the intermediate language to which all .NET programs are compiled, so it works with all .NET programming languages and libraries, Microsoft said. Developers will need Visual Studio 2008 and the .NET Framework 3.5 for writing and building Volta applications, and the resulting applications will run virtually anywhere — a Volta client-side application can run in most standards-compliant browsers, Microsoft said — but it can also be targeted to take advantage of MSIL runtimes like the .NET CLR (Common Language Runtime).
For most application development work today, “You have to decide where you’re going to run your stuff before you write it,” Jason Brooks, a software engineer for Blackfin, told TechNewsWorld. “In the case that you really don’t know, there are some design patterns that would let you run code on both. The main one you would use is Model View Presenter,” he explained. “[But] it’s a lot of overhead — if you can avoid it, you’d want to.”
It seems as if most application development efforts today err toward up-front decision making.
“These days, most developers have a pretty good general feeling for where their code is going to run, but it is important to have the flexibility — especially for applications that are going to scale or change dynamically over time,” David A. Kelly, president Upside Research, told TechNewsWorld.
The Road Ahead
“It’s important to realize that Volta is still experimental, so that it won’t have all the refinements and speed that professional developers will need,” Kelly said. “It looks like an interesting experiment, best suited for strong Microsoft-centric shops pushing the envelope — I wouldn’t expect organizations to put it into production anytime soon.”
Microsoft says it currently doesn’t have a plan to fit Volta into a larger product roadmap. “Instead, we want feedback from our partners and customers to influence other Live Labs technologies and concepts,” Meijer explained.
“I would expect components of the Volta technology to end up in future Microsoft products,” Kelly said. “I think it’s a good step for Microsoft, but it’s also unlikely to have much real direct impact in the market.”