Microsoft Volta – technology, IDE, tool, what is it?

written by Jason Short on Thursday, December 13 2007

I get emailed questions from users all the time.  Quite often it is a new or barely known technology and I am asked if VistaDB will work with it.  Many times I already know the answer, but occasionally I get thrown a curveball.  Silverlight was one example.  We had users emailing us arcane press releases and other snippets from blogs before the official announcement.  I didn’t even know what it did at the time.  Volta is another of those.

IDE, technology, or tool?

The first question of course is what the heck is Microsoft Volta?  It is a Microsoft Live Labs technology preview.  It is not even an official product yet.  And that technology is a toolset that modifies your application, AFTER you have compiled it.  Huh?  Yea, it was like that for me too.

Multi tier to the browser

Take your existing desktop application design, or a webpage.  It may be written in any CLR compliant language because Volta only works on the metadata through reflection (you do have to add certain attributes to your code to pull this off though).  Now imagine this desktop app works just fine in a single user / single workstation scenario and now you want it to run on a 3 tier system.  Normally you would try to reuse the objects maybe, but you are talking about a complete rewrite.  Not with Volta.

Moving the parts of your app all over the place

You assign attributes to objects like [RunAtOrigin()] to your class.  That means it should run on the same machine the app was launched, but through a Volta server.  You can also specific what objects can be run through async callbacks, and all sorts of crazy options. Microsoft defines these activities as Refactoring, Retargeting, and Remodulating.

Refactoring

Take your single tier application and converts it into a distributed or multi tier design through attributes assigned by you (it is not automated).  You still have to think through the implications of running this object across a process boundary, but you no longer have to do the serialization and the nitty-gritty of splitting the object.

Retargeting

This step sort of splits apart your existing application.  The MSIL is broken into parts to run on other virtual machines (each tier is like a VM).  This also appears to include some logic that can be rewritten from MSIL to javascript to run in the client browser.  I was unclear on how it accomplishes this though.  But the idea is sound.  Take an object that was running in process and move it to another environment.  Since you know everything about it through reflection you could recompile or replace parts with stubs or libraries for other environments.

Remodulating

Remodulation sounds like the ability to target a browser in your code (maybe you have IE and Firefox specific code in your app), and have Volta determine which features can be utilized per platform.  The stated browsers for support in this release are IE and Firefox.  I could not find any real specific examples of how you would use this though.  But you get to play with it in the Volta GUI.

Dot Net 3.5 only

I should also mention at this point that I only found ways to integrate Volta with Visual Studio 2008 (not express editions either).  This may be something that they change in the future, but it appears to be using some of the WCF libraries to do this splitting into tiers.  That would seem to imply it will always require VS 2008.

Uses in the real world?

I have to admit that I could not come up with a single use that I myself would use.  The one example they give that does make sense to me is a Google Maps type application that runs single tier with local data, and then runs from a server when the local data is not present.  Ok, I will buy that.  But HOW you do that is not evident to me. Microsoft has always tended to push 3 tier designs on programmers, and I would just tend to think your app is designed for one or the other environments.  I can’t see the real payoff here with this split after the app is built type of approach.  They must have something in mind.  But the demos on their site are little more than Hello World style demos to me. 

VistaDB uses?

I honestly can’t see any.  Maybe we would exist on a tier, and your app would query it through another.  But it would seem your dependencies and object passing would severely limit the performance.  It would seem a much better idea to design your app to run across multiple tiers in the first place to handle these cross process marshalling issues by hand.  Maybe they are trying to make these issues less apparent to programmers.  I normally find that wizards built to hide all the complexity of programming also give you little control.  When you get down to the real world issues of problems (like debugging memory leaks, etc) you need the understanding of WHY things happen.  If something post build is modifying my application I no longer have a complete understanding of how things are happening, or why.  Maybe I am just a control freak…

LINKS 

Volta Homepage     http://labs.live.com/volta

Volta Quickstart     http://labs.live.com/volta/docs/quickstart.aspx

 

Similar Posts

  1. devLINK 2007 – post show analysis
  2. SQL Server 2008 (Katmai) Information
  3. VistaDB Customer Survey Results Fall 2007

Comments are closed

Options:

Size

Colors