Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP MVC vs Ruby on Rails

Which are the similar features and differences between ASP MVC and RubyonRails?

like image 660
Christopher Quesada Avatar asked Jan 22 '23 21:01

Christopher Quesada


1 Answers

They are similar not only in that they follow the MVC pattern but also in how they do it. There are many points very similar, but there are a lot of differences too.

From a purely subjective way I can say that Ruby on Rails is much more mature and there are lot's of things to easy the task of building a web site. I moved from ASP.NET MVC to Ruby on Rails and this is the list of advantages I've seen (some of them really subjective):

  • Due to running on Linux servers:

    • Servers are cheaper.
    • Configuration is re-usable, we can re-build a server in 30 minutes. Puppet.
  • There are more than 10000 libraries, called gems, all installable and updatable in the same simple way. http://rubygems.org/

  • Several re-usable authentication systems, including the one I've wrote; ubiquitous_user + rails_openid.

  • Migrations. This is very important!

  • Unit testing of models with a real live database. It works beautiful.

  • Functional testing of controllers with very powerful assertion systems.

  • Platform independence. You use Windows, I use Mac.

  • ActiveRecord (better than EF or any other ORM out there I've seen). Degrades gracefully allowing you to add more pieces of SQL until you write all in SQL. You'll love it.

  • Command line tools are easier to install and maintain updated (think ssh, sftp/scp to copy and synchronize files, lame, sox, etc).

  • Passing data from the controllers to the views is not a pain in the ass because Ruby is dynamic and C#/ASP.NET MVC isn't.

  • Nice libraries for geolocation.

  • Nice integration with Sphinx.

  • Community #ruby and #rubyonrails in FreeNode (bigger than ##csharp y ##asp.net).

  • Concatenate all stylesheets and javascripts in two files.

  • Timestamp all files, by default.

  • Environments: different settings for development, testing and production (no more web.config madness). More environment possible.

  • Deployment with capistriano. Deploy with one command, everything; very repeatable and can be rolled back easily; takes care of database migrations; can deal with deploying to various servers or set of servers at once (if you have more than one front-end or you have production and staging respectively).

  • MySQL natively. Has clustering capabilities which might come handy (I already used them, to have read-only mirrors)

  • Routing is more powerful, RESTful built in, trivial to use. Namespaces, sub-resources and many other features.

  • No need to compile, very nice when deploying to the server.

  • Various implementations: JRuby in Java, it might be faster, work on Java servers like tomcat. Rubinious, Ruby with JIT compiler.

  • Heroku: an app server, like google apps, but for Ruby on Rails. Might be a good resource or not. They escale quite well.

  • Very nice tools to analyze source code and find potential problems. A small example: http://getcaliper.com/caliper/project?repo=git://github.com/pupeno/ubiquitous_user.git

  • TDD is not only possible, it's easy. Mix of dynamic language with amazing testing framework.

  • Much better linking methods

  • Very nice form generator: formtastic. Can generate a form in one line.

  • Scaffolding.

  • Admin tools.

  • A sane translation system, gettext.

like image 102
pupeno Avatar answered Feb 01 '23 01:02

pupeno