IronNails = Silverlight + IronRuby + Patterns| Comments
- | Posted in
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
11: def some_action_implementation
12: # code here
If you are interested in contributing or lurking, get on over to GitHub and watch the project!
Please enjoy some of these other recent posts...