RE: [dotnet-120] Volta

From: Mark P.
Sent on: Friday, January 18, 2008 11:04 AM

Hi,

 

Thanks for the additional info.  The Spring approach (on .NET) is limited to classes that have interfaces or virtual methods, which often isn’t such a big deal as you’d likely be using an interface anyway for most of these classes.  I did see things like [RunAtServer(Server=‘serverName’)] Hardcoding the server name is a no-no, which made me wonder what is the approach to configuration for volta services?

 

It is very interesting that tier splitting and the C#->Javascript (ala google web toolkit) are part of the same product.  It shows how the technique is very broadly applicable.  Moving one step lower, is this a particular application of Microsoft’s new compiler backend phoenix?  I’ve heard rumors of it being ‘dead’).  I’ve ran across that in the context of another approach to AOP on .NET (see http://www1.cs.columbia.edu/~eaddy/wicca/)

 

A demo would be great!

 

Cheers,

Mark

 

 

 

 

 

From: [address removed] [mailto:[address removed]] On Behalf Of Kevin Hoffman
Sent: Friday, January 18,[masked]:27 AM
To: [address removed]
Subject: RE: [dotnet-120] Volta

 

I realize that spring has been doing this for a while, but when you get down into the dirt of Volta, you'll see that it's doing more than dependency injection and code injection where it needs to be. In many cases, Volta is actually taking the IL produced by your application, stripping it apart, and actually re-compiling _new_ IL in its place. When you tier-split a simple class like this:

 

class Bob

{

   public string Name { get; set; }

   public string PooBear { get; set; }

}

 

onto a server tier, the current CTP implementation is actually re-writing this class so that it exposes the contents of this class behind a service called tiersplit.asmx. Accessing the Name property from your client code (which is done seamlessly without your code explicitly invoking a proxy) invokes a proxy... and the server side access of the Name property actually grabs a named session state variable called "Name" out of the session state. If you create a static class, then the state information being maintained on the server tier is shared among all client tier instances. Writing your single "monolith" app in an "internal service" style will often yield MyApp.Server.exe and MyApp.Client.exe.

 

In addition, a large portion of Volta involves a very interesting tier-split - you can access JavaScript from inside .NET code. In addition, your own HTML-manipulating C# code will be converted into JavaScript by the Volta recompiler ... This allows web developers to write very interactive and responsive web pages without knowing a drop of Ajax/JavaScript. While there are some consequences to this, I think it's a step in the right direction toward removing the need for web developers to know 20 different development languages and platforms just to create a single app.

 

Wow, didn't mean to get so longwinded about this. Maybe I should do a presentation/demo on this? :)

 

From: [address removed] [mailto:[address removed]] On Behalf Of Mark Pollack
Sent: Friday, January 18,[masked]:20 AM
To: [address removed]
Subject: RE: [dotnet-120] Volta

 

Hi Kevin,

 

I’m sure I’ll come off here a bit like a used car salesman, but this approach to distributed computing is what Spring has been doing for a while (at least in spirit but not the details).  A standard local object is proxied to adapt the object to partake in a particular middleware platform.  There are corresponding client side proxies as well.  Security, logging, and other behavior is then added to these proxies via AOP.  So you develop in much the same way as is suggested with Volta, everything is a local object, you take care to think about chatty interfaces, and get the whole things working.  Then you start moving the objects out of processes as needed.

 

I read your blog, and Volta is on my ‘to-do’ list, but I never found that it took an inordinate amount of time to configure these proxies to adapt local object to a distributed technology.  Using attributes instead of XML for the proxy metadata would make for more terse configuration in many cases but at the cost of ‘coupling’ your objects to these 3rd party attributes.

 

Background reading on the .NET side would be

 

http://www.springframework.net/doc-latest/reference/html/psa-intro.html

 

and an example

 

http://www.springframework.net/doc-latest/reference/html/remoting-quickstart.html

 

And there are similar ref docs on the Java side as well.

 

I’d be very interested to hear your opinion on this approach.

 

Cheers,

Mark

 

Looking forward to you CLINQ talk next week!

 

 

From: [address removed] [mailto:[address removed]] On Behalf Of Kevin Hoffman
Sent: Friday, January 18,[masked]:33 AM
To: [address removed]
Subject: RE: [dotnet-120] Volta

 

I've been writing random test apps on Volta since the CTP came out a couple weeks ago. I've also had a couple of conversations with Erik Meijer, the lead architect there. I did a few blog posts on it. Right now I'm in a holding pattern trying to find a good proof of concept app to try out the technology in a more than "hello world" fashion.

 

From: [address removed] [mailto:[address removed]] On Behalf Of Dmitriy
Sent: Thursday, January 17,[masked]:57 PM
To: [address removed]
Subject: RE: [dotnet-120] Volta

 

Does anybody have real experience with it?

 


From: [address removed] [mailto:[address removed]] On Behalf Of Scott Weinstein
Sent: Thursday, January 17,[masked]:43 PM
To: [address removed]
Subject: [dotnet-120] Volta

 

The name of the tech I could remember is Volta

Looks worth a look at least.

 

On other topics - I’m wondering what the etiquette is on post jobs to this list? Verboten; allowed, but frowned on; welcome with open arms?

--

Scott Weinstein's .Net Blogcast






 

 





--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Scott Weinstein ([address removed]) from New York .NET Meetup Group.
To learn more about Scott Weinstein, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA





--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Dmitriy ([address removed]) from New York .NET Meetup Group.
To learn more about Dmitriy, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA





--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Kevin Hoffman ([address removed]) from New York .NET Meetup Group.
To learn more about Kevin Hoffman, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA





--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Mark Pollack ([address removed]) from New York .NET Meetup Group.
To learn more about Mark Pollack, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA





--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Kevin Hoffman ([address removed]) from New York .NET Meetup Group.
To learn more about Kevin Hoffman, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy