|
So I was catching up on my RSS subscriptions when I noticed that I got a new notification about a Channel 9 video. Here's a link to the channel 9 video I'm referring to in case you haven't seen it yet. From what I can tell, Volta is the offshoot of a project originally started called Tesla. Tesla and Volta were both scientists that were extremely influential in the research of electricity.
Anywho. What the heck is Volta? I can't really tell, since there doesn't seem to be a downloadable CTP of it anywhere, and there's no home page for it like there is for other projects like Silverlight and Astoria, etc. This video and some sparse commentary by Mary J Foley are about the only information I have on it.
From what I can gather, it basically works like this: You create your application starting off as if you're building a single-tier client application. Instead of programming to the WPF model or to the Silverlight model, you program to this other common model, using your favorite .NET language (which is C# for me, obviously). Then, what you end up with is a single compiled binary Assembly. It's not an executable file, it's nothing more than a bunch of MSIL and embedded resources. Now is where the good stuff happens. If you decide to deploy this binary file on a server, using some special Volta Mojo that resides on the server, it can take the MSIL that you generated and essentially generate JavaScript from that MSIL. If the end user hits your page with a Silverlight-capable browser, the generated code will result in a Silverlight application. If the end user hits your page with a downlevel (non-Silverlight) browser, then the server application might generate JavaScript that manipulates DHTML and does some very AJAXy type stuff.
What worries me is that this looks like yet another attempt at the oft-failed paradigm of "write once deploy anywhere". The thing that I think looks promising about this is that the deployment pattern appears to be explicit. In other words, through attributes stuck on your code, you can choose whether a particular class is going to be running on the server or the client, etc. Again, this is all speculation considering I don't have access to any of the information on the project.
So, if you're reading this and you're on the Volta project - I wouldn't mind at all if you sent me some bits to play with :) The concept of being able to write an application that simply does what it is supposed to do that can then be easily refactored from standalone client to smart client to server-side Silverlight app, etc is extremely appealing - and also very frightening. On the one hand developers might be able to become far more productive by developing for this single model and then letting the Volta "engine" (for lack of a better term) deal with the underlying deployment semantics. The flipside of that, of course, is that this could be yet another lowest-common-denominator model. If the overall experience of my application is going to be reduced in exchange for the flexibility that Volta provides, then I might not use Volta at all. The bottom line is I want the best experience for my users and if Volta hinders that by allowing me to write "tier agnostic" code, then I'm probably going to shelve the idea of writing such code.
Only time will tell if this concept can become something viable. By time, of course, I mean time spent writing code with it :)
Microsoft did OK besting Java with dotNet. But they dropped the ball by
not promoting its cross-platform capabilities earlier (they are MS, after
all). I think they could get this to work, if they truly want it to. They
have to be willing to accept that there might be browsers other than IE out
there.
Well, if the browser detection inside the Volta engine detects Firefox or
Safari or IE with the Silverlight plug-in, then it doesn't have to worry
because Silverlight is already handling a lot of the cross-platform
cross-browser capabilities.
Why does nobody ever discuss search engine optimization?
Have search engines suddenly developed the ability to index everything, or
are they no longer relevant?
This seems to me to be a facility that is great for older browser support,
but even better for serving up content to spider bots.
Erik.. I'd love to, please send me your contact information.