Yossi Dahan [BizTalk]


Thursday, December 06, 2007

So is this how web development's going to look like?

Yesterday Microsoft Labs announced the experimental toolset codenamed "Volta".

Using the name of another pioneer inventor (Alessandro Volta), What is Microsoft trying to hint?

Well - Volta is described as "an experimental developer toolset that allows developers to build standards-conformant, multi-tier web applications using established .NET languages, libraries and development tools"

From the little I've seen, it brings web development even closer to any "classic" .net development, bringing even greater separation between code and presentation on code side, while at the sime time allows an even smoother user experience, and - from a developer's perspective - it allows writing code first, and deciding whether it should be executed at the client or on the server later.

The idea is that you write you code, with everything running on the client (which makes it easier to debug), and - as you get closer to the release - you move some attributes around and code will be refactored to be split to execution between the client side and server side.

Naturally this means that Volta kindly takes care of all the communication and security code between the tiers, which removes the need for the developer to deal with all that "plumbing"; they even throw in some instrumentation code that lets you view the trace of the execution between the client and the server using the WCF Service Trace Viewer Tool.

So - in a somewhat simplified statment - Volta is about refactoring your code to split it between tiers, and is then about hosting the server code.

Hosting, I believe, is done a this point in a "Volta Server" executable; I'd expect this to evolve significantly as Volta matures into much more robust hosting options, and as MS already done a lot in this area quite recently it's not difficult to see where this is going.

The refactoring is done on the MSIL code generated during the build of your project, and not on the actual code, which is a nice approach (and means you can definitely use any .net language (as they should all end up with the same MSIL, right?! :-) )

The goal of Volta, and the reason most of this is happening "behind the scenes" is to reduce even further the amount of things we have to deal with when building multi-tier web application. is this going to work?

Like most develpoers, I guess I'm a little bit of a control freak when it comes to my code, I don't even like code generators and wizards, so the thought of something taking my code and fiddle with it - split it, add a bit of this and a bit of that, and generate client side javascript to describe my classes is a bit scary; but then again - isn't that just a normal phase one has to go through in the face of innovation?, well - I guess it depends on how good the innovation is :-) I'll have to wait and see how this evolves.

There's no doubt in my mind that the code generation bit, and probably the client side more than the server side, is the achilles heel here, and with Volta only being out a few hours, people already started complaining that the libraries are too big, they are to slow etc.

What's important to remember, when looking at all of this, is that this is still very much experimental - as far as I know (but I don't know much :-) )there isn't a product roadmap yet that has Volta as a clear part of it.

Think of this preview as a way to get involved early with stuff MS are playing with, and if you do - write about it, get as much feedback as you can out there, it will only help MS get the feeling of what's working and what's not working, to make sure that when it does find it's way into a product of some sort it will deliver.

So - tt is not surprising that, even by Microsoft's own admission, Volta is not yet optimised; the javascript generated is not the most efficient or most elegant that can be created, and probably the same can be said on the server side code and the communication layer (but I haven't looked, so I can't possibly comment).

This will definitely improve as MS keeps working on this, and as feedback is provided by us.

Go and play!



Post a Comment

<< Home