First time here?

You are looking at the most recent posts. You may also want to check out older archives. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS or email. Thank you for visiting!

If you already pay attention to the IronRuby dev group and are on the distribution list, apologies for the dupe.  I’ve just got back from a camping trip and rifling through all my emails now.  I checked in on the IronRuby group and noticed a new project emerging from someone.

It’s from Ivan Porto Carrero and he calls it IronNails.  It was previously called something else (quite frankly I liked the other name better myself) but there was already a project named after his chosen name.  So alas, IronNails it is!  Ivan describes this as:

IronNails is a framework inspired by the Rails and rucola frameworks. It offers a rails-like way of developing applications with IronRuby and Windows Presentation Foundation (WPF). This framework uses the pattern Model - ViewModel - View - Controller (M-VM-V-C). It should be able to run on both WPF and Silverlight.  The idea is that the views can be created using a design tool like Blend for example and just save that xaml as is. The designer should not need to use anything else than drag and drop to create a GUI design. The behaviors are then added to the view by using predefined behaviors in the framework or by defining your own behavior. Source: IronNails GitHub homepage

The project is really just started so don’t expect a ton of meat there just yet, but it has a great goal and I can’t wait to see it evolve.  Ivan’s using the Rails-like framework of MVC where the XAML can serve as the view for either a WPF or Silverlight application.  The idea being that someone can create a view using a rich interface design surface like Expression Blend and write the code that targets the view which can be fine tuned to either Silverlight or full WPF.

The vision is something like this:

   1: class MyController < IronNails::Controllers::Base
   3:   view_object :some_model, :refresh => :refresh_some_model, :refresh_interval => 2.minutes
   5:   view_action :some_action, :target => :my_button, :action => :some_action_implementation
   7:   def refresh_some_model
   8:     # code here
   9:   end
  11:   def some_action_implementation
  12:     # code here
  13:   end
  15: end

If you are interested in contributing or lurking, get on over to GitHub and watch the project!

This work is licensed under a Creative Commons Attribution By license.


The opinions/content expressed on this blog are provided "ASIS" with no warranties and are my own personal opinions/content (unless otherwise noted) and do not represent my employer's view in any way.