IronRuby On Rails VS. Ruby On Rails (Getting Started) - ruby-on-rails

The Scenario
I am a C#/ASP.NET/MVC/Silverlight developer with a few years experience. I'm trying to kickstart my Ruby On Rails learning. I'm currently trying to get a real feel for ROR.
I Want To Know Standards
As a .Net developer, you tend to use a standard IDE (Visual Studio), a few standard databases (SQL Server, Oracle etc.), and a particular way in which to style your web 2.0 application (XHTML/CSS, Silverlight etc.)
'So what are the standard equivalents to these in RUBY ON RAILS!? (IDE, DB's, Presentation Layer Markups)'
Also
What route do I take? I've heard about IronRuby and from what i've read thats nearly complete in terms of converting it for use with Rails (IronRuby on Rails). OR Do I just go straight into using Ruby On Rails!?
What Benefits?
How will I be benefited from using IronRuby on Rails over using Ruby On Rails?
Help greatly appreciated thanks.

IDE
Most RoR developers use a simple text editor (Textmate on MacOS, Scite on Windows) - mostly because most features (Refactoring, Code Completion) of IDEs designed for languages like Java/C# can't be applied that easily on a dynmic language like Ruby. However Netbeans does well so far (on the other hand there is Aptana Studio - based on Eclipse).
Databases
Since RoR does a lot of abstraction it doesn't really matter what RDBMS you use. MySQL and Postgres might be the best choices since they are the most used ones (so you can hope for continuous support). I wouldn't start to chose based on the flamewar about performance, rather on the services/support that come with them.
Markup
The standard would be ERB (similar to ASP inline scripts) combined with (X)HTML. However there are other markups like HAML which might be enough for some projects.
Benefits
Using IronRuby you get access to the .NET framework and interop with other .NET libraries. You might also write some parts of your application in static C#. According to some benchmarks it might be "faster" than native Ruby, not a real advantage though IMHO.
At the moment I would recommend you to get started with regular RubyOnRails - you might be able to switch later on (once IronRoR is stable enough) - if you should still desire to switch.

IDEs:
On Macs the standard IDE is Textmate.
On Windows, there isn't a standard in quite the same way, but I like Netbeans.
Databases:
MySQL is probably the RDBMS most used with Rails, and hence the most supported, but I use Postgres, which is also very well supported, and have had no issues with using it.
Markup
The built in erb works perfectly well, and as it is built in I guess that makes it a standard. You can always use others if you want to.
IronRuby vs Ruby
IronRuby may be almost feature-complete, but I bet there is a good chance that some functionality will go awry, and you may have difficulty tracking down whether it is your code, or IronRuby. I'd be tempted to develop in vanilla ruby, and then port to IronRuby later, if that is an appropriate way to deploy your apps.
See also this question for information about commonly used plugins: Rails Plugins

I would strongly recommend using regular Ruby On Rails - you don't want to have to worry about whether your errors are caused by problems in your code or incompatibilities in the platform you're working with.
The rest of my advice may be hopelessly out of date- it's a couple of years since I did much with RoR, but I'm sure others will mention it if I'm entirely incorrect.
There probably are IDEs with plug-ins for Ruby now ( I'd be looking for some Eclipse plug-ins maybe ) but it's not as regimented as the Microsoft ecosystem. You're working with open-source tools which means that different developers who like different things find solutions that work for them, so there may not be a "standard" as such. I got very accustomed to using Emacs with the ruby-mode plugin which is pretty awesome but there is a learning curve. I took the Pragmatic Programmer's advice to get good at using a text editor pretty seriously on that front and I'm glad that I did.
In terms of databases you may as well use MySQL as that seems pretty standard but I believe you can find an ActiveRecord back-end for a lot of different DB solutions. If you know how to use basic SQL and you get on alright with SQL Server and Oracle you'll be able to get on fine with MySQL though, no question.
With regard to the presentation layer, that's really created through Rails views. The aim is usually to build standards-compliant html and use CSS to style it. I learned a lot from the Agile Web Development With Rails book as a guide to how the platform works as a whole. I know everyone wants to learn everything from the web for free these days, but that book fitted things together in a way I found very practical and represented excellent value for money.

If you like the Visual Studio ecosystem, check out Ruby In Steel from SapphireSteel. It's payware, although there is a free personal edition

Regarding Ruby or IronRuby - the benefit you will get from using IronRuby is only by its seamless interoperability with .Net objects.
If you're planning on using your .Net code from your RoR app, use IronRuby. Otherwise, go for Ruby.
By the way, if you're planning on using IIS, IronRuby on Rails will run more naturally on top of it as well.

Extracted from: http://blogs.msdn.com/b/ericnel/archive/2010/03/25/5-steps-to-getting-started-with-ironruby.aspx
IronRuby is a Open Source implementation of the Ruby programming language for .NET, heavily relying on Microsoft's Dynamic Language Runtime. The project's #1 goal is to be a true Ruby implementation, meaning it runs existing Ruby code. Check out this summary of using the Ruby standard library and 3rd party libraries in IronRuby. IronRuby has tight integration with .NET, so any .NET types can be used from IronRuby and the IronRuby runtime can be embedded into any .NET application.
later in this article:
Step 2 – Install an IronRuby friendly editor
You will need to Install an editor to work with IronRuby as there is no designer support for IronRuby inside Visual Studio. There are many editors to choose from but I would recommend you either went with:
SciTE (Download the MSI): This is a lightweight text editor which is simple to get up and running. SciTE understands Ruby syntax and allows you to easily run IronRuby code within the editor with a small change to the config file.
SharpDevelop 3.2 (Download the MSI): This is an open source development environment for C#, VB, Boo and now IronRuby. IronRuby support is new but it does include integrated debugging. You might also want to check out the main site for SharpDevelop.
Note: as of version 1.1.1 (released: Oct 21, 2010), Visual Studio 2010 has the first-class support for IronRuby (native, rails f/w and much more).

Related

Ruby on Rails in SpringSource tool suite?

I have been using Grails for some time now, but in school they are making us use Ruby on Rails. I have been trying to find an extension for ruby on rails for STS as there is for Grails, but I have failed. The only thing that comes close is a plugin so i can use ruby code in my Grails app using JRuby. I just want to make sure that a fully integrated extension DOESN'T exist.
If that is the case, what would be the graphical IDE way of developing in ruby on rails, the same way one would use STS for Groovy on Grails development?
(preferably free :) )
Try JetBrains RubyMine, it's an IDE for Ruby and Rails.
Aptana Studio is the best and free IDE for ruby on rails.
Old versions of Netbeans got a good support for language, but no longer updated for new releases.
I like JetBrains.
http://www.easyeclipse.org/site/home/ will allow you to build Rails framework apps. Look in the new install listing and I 'm sure you will find the url for Ruby and Rails. The type name is now under DLT Dynamic Languages Tools. RDT is a bit old and the EasyEclipse uses that.
Try yhis for radrails org.nexb.easyeclipse.radrails of course you know namespaces like this are backward. The best I could come up with for that is http://www.nexb.com/corp/. Or my STS has Juno - http://download.eclipse.org/releases/juno and look under Programming Languages DLT Ruby to get started.
Also these guys might be able to help you https://www.facebook.com/groups/10463298884/

Solution for web designer using an OSX to develop an ASP.NET MVC project?

The project is developed using ASP.NET MVC framework and heavily relies on .NET 3.5.
What would be the best solution to allow a web designer, who is using OSX, to develop the site's UI? Basically he would just need to edit the aspx, css and js files, but also run the web application locally.
I've thought of some possibilites:
Install parallels/vmware/bootcamp and set up everything as you would for windows. Bad: it would be slow, OSX user doesn't like working in windows
Set up Mono and run the webapp on that. Use whatever tool you want for editing the front end files. Bad: does mono support MVC framework, .NET 3.5 and database connections? Unfamiliar platform, so possibly a lot of work setting it up, if it even will work.
Run the site on a separate server, and edit the front end files via network drive. Bad: our development server is so slow that seeing the changes takes too long...
Do you have other ideas or comments for these options?
Thanks!
You could try using a virtual machine. VirtualBox is a free one and is quite simple to setup. The only downside is that you need your own copy of Windows...
What you really need to do is have your web designer mock up the pages in static HTML, CSS, and JavaScript first (in their environment of preference.) Once that's done, adapting the markup to the ASP.NET project should be easily doable by yourself or the designer on a Windows machine (or virtual machine, your preference).
The MVC framework is part of Mono. Ares Technica has an article about the MVC framework and running it on Mono.
While it seems that some people were able to hack the framework to work on Mono back in March and April of this year, Microsoft has since released the MVCframework as open source and it is now fully supported by Mono as of the 2.4.2 release.
Here is a link to the most recent Mono releases along with Virtual Machine images that already been pre-configured to give you the best development experience.
Good luck with your project and hope this helps some.

Has anyone been able or at least tried to port Liquid Template Language to C#?

I need to give end-users the ability to securely edit an asp.net mvc web application templates and so far Liquid Template Language seems to be perfect, but it is written in Ruby and porting it seems a too complex task for me as I don't know Ruby... anyone tried to port it to C#? It would be really useful in a lot of situations and I'm going to actively help for what is needed!
Update: I also found out a Javascript version, this should ease the porting enough.
Do you mean DotLiquid? It's a .NET 4.0 port of the Liquid template language for Ruby. The template syntax itself is the same as Liquid, but the .NET code takes advantage of .NET / C# conventions as much as possible. It's obviously open source, same as the original Liquid project.
Disclosure: I wrote DotLiquid (well, I did the C# port from Ruby, anyway). Like the original poster, I also wanted to have access to Liquid template syntax from .NET code. I'm hoping it's useful for other people. Liquid's Ruby source code is very clean, and included a full suite of unit tests, so it made porting quite straightforward. If you do find any bugs, please

ASP.NET MVC 1 and 2 on Mono 2.4 with Fluent NHibernate

I'd like to create an application using ASP.NET MVC, that should run under mono 2.4 (compiling will be done on a Windows box). Has anyone getting luck with this? Here is what I've already tried:
ASP.NET MVC on mono without any persistence model support, and using nhaml as the view engine
S#aml architecture, which is a quite good framework imho, but it depends too much on stuff, that are not working good under mono (like windsor)
The first part worked fine, I didn't encounter any major problems. But I couldn't get the second part working. It seems it's dependency on Castle.Windsor breaks the whole mono support (but there might be other parts too).
Therefore I decided to create an alternative framework, that borrows some of the ideas of s#arp-architecture, but designed to be working under mono (and if I'm able to do this I'll release it for the community of course). The controller and view part is working fine (not much magic here though, they have been always working), but I have some questions before I start job on the persistence part:
What NHibernate versions are working under mono? I've heard 1.2 is working fine. Does 2.0.1/2.1 beta work under mono?
Does Fluent.NHibernate and NHibernate.Linq work under mono? (for the latter it seems it needs some dependcies that aren't avaialable in mono)
Are there any good alternatives for persistence support to NHibernate under mono?
Alternative questions:
Are there any frameworks that have mono+persistence+asp.net mvc support already or am I the first one to think about this?
If you have already done this: what are your opinions on stability/usability?
Thanks for the answers
EDIT: Updated the framework to support ASP.NET MVC 2: http://shaml.sztupy.hu/
I am using mono 2.4 to run a asp.net mvc app + windows service.
Compatibility is very good. There are some bugs and differences than with windows but once you learn what they are it gets easier (there can be pain at the start!)
I am using NHibernate (2.1) FluentNhibernate, StructureMap, NBehave, Moq and open id lib and they all just seem to work as expected.
As for stability, since I have ironed out the major bugs in my code I haven't had any problems.
Usability, well it is a completely different platform so you need to come to it with an open mind and be prepared to leave behind the windows way.. the good news is that once you do that things get easier. Apache is a lot nicer than IIS and configuring and managing a linux box is just easier than windows.
I am pretty glad I choose mono.. sorry this is starting to sound like a PR drive - but I am just really happy with it!!
Okay. I started on a new project that incorporates the best from S#arp Architecture with stuff, that work on mono. Instead of T4Toolkit it uses a ruby script to do the generation job, just as with rails or merb.
To use install the shaml gem from github:
gem install shaml
Then create a new application:
shaml generate app AppName
And create resources:
shaml generate resource NewRes "name:string;date:DateTime"
S#aml Architecture project homepage: http://shaml.sztupy.hu/
GitHub project: http://github.com/sztupy/shaml/tree/master

What is the best Ruby on Rails environment for a Visual Studio user?

I've been a Visual Studio user since 1997, and used VB 3.0 before that. My whole professional life has been spent inside the Microsoft development environments.
Now I would like to branch out into Ruby on Rails to try something different, and it doesn't have the kind of vendor support that C# does (for very obvious reasons).
For someone coming from the world of Visual Studio, what is the best total environment (IDE, tools, gems, etc) to set up for RoR development on Windows that would make the transition easier?
If you want to stick with Visual Studio, you can always use the Ruby in Steel plugin by Sapphire Steel. The best traditional IDE for Ruby is probably NetBeans, it even has a special stripped-down Ruby Edition.
However, note that unlike less expressive languages like Java, C# or VB.NET, you can not only get by, but even be more productive with a good text editor than with a traditional static IDE. IDEs like NetBeans, Eclipse and Visual Studio are designed with static languages in mind, and trying to force Ruby into that ecosystem is just unnatural.
There is a nice article on The Best Environment for Rails on Windows by Fabio Akita that you might want to read. While I don't agree with everything he writes (mostly because I don't use Rails), it is a pretty good introduction of how you might want to setup a development environment specifically for Rails.
Try JetBrains RubyMine. When installing it, you have the option to set it up to match Visual Studio environment settings. All the short cuts are the same as Visual Studio. It even switches the copy and paste keys from command to control on a Mac. It's a bit expensive considering how many free options there are but in my eyes its worth it.
This thing is so highly customizable it's almost overwhelming.
Netbeans! Its got the most similar features. I developed for years in VS before the switch. It was the only one that I really liked and felt comfortable using.
Netbeans.org
You might find that RadRails (Aptana) is an excellent choice: (http://www.aptana.com/rails) - NOTE: Make sure you look at the Features and Comparisons tab as RadRails has many compelling features. Additionally, I have used Aptana Studio for JQuery development and it help me to be very productive.
I have tried Netbeans and it seemed very promising as well but that is mentioned many times so I thought to offer another approach I was aware of.
Hope this helps!
I use netbeans for two reasons. I like the visual studio style navigation pane and for the debugger.
Be warned though, Netbeans is pretty slow. It doesn't bother me that much because I too am slow.
I also dislike the filename tabs because you can easily be confused about what file you are working on since there is no directory information unless you mouse over the tab.
In 2018? Visual Studio Code! These things always seem to come full circle right?

Resources