In our final installment on the Volta conspiracy, we want to touch briefly on the topic of Volta as a way to write applications vs. your choice as a developer on what the appropriate client runtime is.
Secret #5: Silverlight
The final question that is frequently asked is how Volta relates to Silverlight. Is Volta meant to replace Silverlight? Are we trying to make JavaScript work for the same scenarios as Silverlight? Simply put, no. As others have observed, Volta is compatible with and is built to be complementary to Silverlight. The Microsft PressPass Q&A about Volta further explains that Volta is an MSIL to MSIL toolkit aimed at making writing distributed applications easier. Silverlight is an implementation of the .NET platform that therefore will automatically benefit from the advantages of the Volta toolkit. The technologies complement each other well, and we believe that amplifies and validates the importance of the complete .NET platform, including Silverlight.
All the benefits of the Volta toolkit, such as declarative tier-splitting and asynchronous programming or declarative import of JavaScript libraries into .NET, will apply to programs deployed to the Silverlight platform. In fact, we are in the process of replacing the browser helper objects used to facilitate debugging in this preview, which host the regular desktop CLR in IE and Firefox, and are replacing them instead with the Silverlight 2.0 runtime.
Charles on Channel 9 framed the idea quite well when he said:
"So, the most obvious case is Silverlight 2.0 as the client tier and a web server as the server tier... This is a great scenario since Volta can split IL to IL without having to resort to IL translation to, say, JavaScript (which has gotten too much attention). Further, execution contexts such as XNA, WinForms, DHTML, SVG, VML, even SQL are realistic client targets (tiers) for Volta. Then there's the notion of a local "distributed" system (think of applications running on a single client as the tiers) where Volta also makes sense as a means of easily composing the system."
Volta is about enabling developers to write a unified code base for distributed application, making decisions about both the appropriate distribution of remoting boundaries and the client runtime a function of the application's requirements, and allowing those decisions to be changed much more easily than they can be today.