[Ironruby-core] Asp.Net MVC with IronRuby - How does it work?

Curt Hagenlocher curth at microsoft.com
Sat Jun 21 09:40:11 EDT 2008


None of the DLR-specific stuff is inside the same assembly as the MVC framework. It's all in a separate library.  ASP.NET MVC is extremely flexible, so it's possible to extend it in this way without modifying the core sources.

This particular version of the sample is extremely Ruby-specific.  There are at least two reasons why it was written this way:
1) the DLR doesn't yet expose a "create instance" operation through its public API, so there's no language-independent mechanism for creating an instance object given a class object
2) IronRuby needs some work on how it exposes language features to the DLR

I don't know how much that will change for CTP 4, or if we'll have Python support by then.  There seems to be considerably more interest in the community for running Ruby in IIS than for running Python, so we're targeting our resources accordingly.

-----Original Message-----
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Ben Hall
Sent: Saturday, June 21, 2008 5:34 AM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] Asp.Net MVC with IronRuby - How does it work?

Thanks for your reply.  Does the additional code for te DLR interfaces
live inside the MVC framework?

RouteTable.Routes.LoadFromRuby();  <--- This creates a runtime +
engine and executes the code (routes.rb) and adds it back to the C#
collection.  I understand how this works.

Looking a bit more at the sample, RubyControllerFactory is part of the
MVC framework. This will also creates a runtime\engine for the
language and be able to pass execution to HomeController.rb similar to
how RubyRouteLoader.cs works.

Does this mean there will be a PythonControllerFactory?  Why isn't
there just a DLRControllerFactory as the actual hosting interface is
the same?

Once CTP 4 is out, I will be able to find out for myself, but if you
could say if I was on the right line that would be good :)

Thanks

Ben

On Fri, Jun 20, 2008 at 1:23 AM, Curt Hagenlocher <curth at microsoft.com> wrote:
> Yes, there's additional C# code involved which uses the DLR hosting interfaces.
>
> For the sample that was shown at TechEd, code in Global.asax.cs executed "routes.rb".  This set up handlers to point to Ruby-based controllers.  A C# RubyController class served both to delegate the request to the Ruby-based controller and to serve as a base class for it.  A set of classes fronted by "RubyViewEngine" were used to read an .rhtml file and execute it through IronRuby.
>
> All of this except the code in Global.asax.cs was abstracted out into a separate library.  The only other app-specific code written in C# for the demo was the database access code.  (And this was not because we couldn't create models in Ruby.)
>
> Naturally, the sample that's made available with CTP 4 may look totally different :).
>
>
> -----Original Message-----
> From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Ben Hall
> Sent: Thursday, June 19, 2008 4:57 PM
> To: ironruby-core at rubyforge.org
> Subject: [Ironruby-core] Asp.Net MVC with IronRuby - How does it work?
>
> Hi team,
>
> I'm just trying to put together some cool samples for a DLR user group
> session i'm doing next week.  Sadly, I can't do MVC + IronRuby because
> Preview 4 isn't out, however I was wondering if you could provide some
> technical insight into how MVC knows about IronRuby?
>
> Does the framework host the DLR in order to make this happen? Or is it
> interacting in some other way?
>
> Also, if anyone knows any cool demos around IronRuby (apart from
> silverlight integration and the actual language) please let me know :)
>
> Thanks
>
> Ben
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
_______________________________________________
Ironruby-core mailing list
Ironruby-core at rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core



More information about the Ironruby-core mailing list