Last updated July 23, 2009 21:29, by arungupta
Ruby-on-Rails Framework Evaluation
- MVC separation - Rails is an MVC framework with a very clear separation between Model, View and Controller.
- DRY and CoC principles - The two basic principles of Rails are DRY and CoC and highly encouraged for Rails apps.
- Ajax - Rails comes bundled with Prototype library that provide commonly needed Ajax functionality. There are even Prototype Helpers that allow to embed Ajax functionality using Ruby syntax.
- ORM - Rails comes pre-bundled with ActiveRecord. Rails 3 will provide pluggable ORM where DataMapper and other ORMs can be easily used.
- CRUD generation - Can be easily generated using "scaffold" with sensible defaults which can be easily customized.
- Table creation - db:migrate create the database, tables and even load the data from Ruby files.
- Loading data in the table - db:fixtures:load and db:migrate can load the data in database from Ruby or YAML files.
- Customizing queries - SQL queries (fairly complex) can be easily customized using Ruby like syntax. Raw SQL queries may be used as well.
- Customization
- CSS & JavaScript - Well-defined placeholder and means of inclusion for CSS & JavaScript.
- Form Validation & Default Error Handling - specifying/generating error messages easily - ideally one step
- Templates - Define a view/layout.standard.html.erb and include in ApplicationController as "layout 'standard'" and then it gets applied to all the controllers/views. ERb is the default templating language, not sure pluggable templates ?
- 3rd party libraries - Integration with 3rd-party JavaScript libraries, YUI in this case
- Plugins - Adding functionality using components/widgets/gadgets/gems/plugins
- Date picker - No built-in functionality, "calendardateselect" gem provides the functionality in a single line.
- Pagination - No built-in functionality, "will_paginate" plugin provides the functionality using a line each in Controller and View.
- Plugins - Adding functionality using components/widgets/gadgets/gems/plugins
- IDEs - NetBeans provide rich editing, running and debugging support for Rails apps using MRI/JRuby and WEBrick/GlassFish.
- Browser compatibility (Firefox, Safari, IE) - Are there any inconsistencies for the generated apps in 3 browsers ?
- Production deployment - How easily can a deployable artifact be generated ? How many other supporting artifacts need to be provided ?
- Any outstanding feature ? - Gems and Plugins extend the core Rails functionality in a very seamless manner.
- Any pain point ? Most of the documentation is out-of-date so need to dig in the code to understand the exact functionality.





