jueves, 27 de septiembre de 2012

Ruby on Rails



HISTORIA

Ruby on Rails fue creado por David Heinemeier Hansson a partir de una herramienta de gestión de proyectos realizado en Basecamp(Organizador y gestor de tareas).
Ruby on Rails se liberó al público en julio de 2004, teniendo su primera versión en diciembre de 2005 y su última versión en enero de 2012.


FILOSOFÍA

Los principios en los que se basa Ruby on Rails son DRY(don't repeat yourself o No te repitas) y Convención sobre configuración.
La filosofía DRY esta basada en que las definiciones solo deberían de hacerse una vez ya que Ruby on Rails trabaja con la metodología de pila completa y no hace falta establecer conexiones entre distintos componentes.
La filosofía de Convención sobre configuración esta basada en la definición de la configuración que vayamos a necesitar,por lo que la configuración que viene predefinida no será necesario editarla. Esto conlleva la ventaja de que al crear una aplicación desde cero y usando las convenciones de Rails, usaremos menos código.


RUBY

Ruby es un lenguaje de programación orientado a objetos, de licencia libre y creado por Yukihiro Matsumoto. La sintaxis de Ruby está  inspirada en Python y Perl y sus características de programación son parecidas a Smalltalk(entorno de objetos virtuales).
Ruby esta orientado a objetos, en esta ideología todos los datos son objetos, las funciones son métodos, las variables son referencias a objetos(no son objetos en si) y además soporta la herencia de datos.
Ruby fue creado para ser un lenguaje procedural(Se permiten definiciones de métodos y variables fuera de la clase) y funcional(todas las sentencias tienen valores y siempre se devuelve la última evaluación)



RUBY ON RAILS

Ruby on Rails es un entorno de desarrollo escrito en Ruby y que esta mejorado para aumentar la productividad de los programadores. Para escribir programas usa la metodología de MVC (Modelo Vista Controlador).



ARQUITECTURA

Como hemos visto antes, Ruby on Rails trabaja con la arquitectura MVC.
Esta arquitectura trata de 3 capas en las que cada una está definida para cumplir una función concreta.
Las capas son:

    • Modelo: esta capa trabaja con las bases de datos y es la que mantiene la integridad de la información.
    • Vista: será el interfaz usado para poder interactuar con el usuario y será la capa que nos muestre los datos. Esta capa no controla lo que muestra,simplemente se limita a mostrar lo que se le indique.
    • Controlador: es el encargado de manejar los eventos que ocurren entre las dos capas anteriores. Recibe instrucciones de la capa modelo y muestra información en la capa de vista.


GEMAS

Cuando hablamos de gemas en Ruby on Rails nos referimos a plugins o códigos añadidos y son los encargados de distribuir librerías, aplicaciones y nuevas herramientas.
Rails usa estas gemas para la instalación de su propio entorno de desarrollo.






SOPORTES

En este apartado hablaremos de dos tipos de soportes, servidores web y bases de datos:
  • Soporte a Servidores Web: si hablamos de desarrollo y pruebas en un servidor web utilizaremos Mongrel o WEBrick(incluido con Ruby) pero si hablamos de producción en un servidor web,tendremos una amplia variedad en la que cabe destacar a apache. Al trabajar con apache, tendremos un módulo específico que nos agiliza el trabajo (no es recomendable el uso de este módulo ya que no es seguro utilizar varias aplicaciones de Ruby on Rails sobre apache).

  • Soporte a Bases de Datos: se recomienda el uso de un sistema gestor de base de datos para el almacenamiento de los datos. El programador no entra en contacto directamente con la base de datos, es Rails quien gestiona los accesos, quien se encarga del funcionamiento en diferentes sistemas(no se garantiza la compatibilidad completa) y quien se encarga de la reutilización de bases de datos.
Entre las bases de datos que soporta destacamos MySQL, SQLite y Oracle.


ENTORNOS

Para trabajar en Ruby on Rails tendremos disponible varias alternativas:
  • Aptana: se trata de un entorno multiplataforma que nació como un plugin de Eclipse para desarrollar aplicaciones. Aptana 3 es la versión más estable.
  • Netbeans: entorno libre y gratuito que viene integrado con JRuby.Netbeans es uno de los entornos más utilizados actualmente.
  • TextMate: entorno de pago puesto que esta orientado a potenciar la producción y desarrollo de Ruby on Rails. Solo esta disponible para Mac y es el entorno más utilizado en Rails.
  • Gmate: entorno libre y gratuito. Se trata de una modificación de Gedit para lograr algo parecido a TextMate. Como se trata de un entorno gratuito y potente va aumentado sus seguidores dia tras dia.

Similitudes y diferencias entre Apache y ISS





1.-Similitudes:
-Una de las similitudes que comparten Apache e IIS, es que ambos pueden elegir mediante un filtro la información que desean mostrar.
-Otra de las similitudes que comparten Apache e IIS es el sistema de arquitectura en módulos, de esta forma pueden ejecutar distintos tipos de páginas.


2.-Diferencias:

-IIS viene incluido con Windows mientras que Apache viene incluido con linux. Apache en windows es solo utilizado para montar algunas aplicaciones.

-IIS te acepta de forma nativa ASP y Apache te acepta de forma nativa PHP.

-Para una red mixta que tiene distintas peticiones, la pareja Apache resulta la mejor opción. En un servidor con con varias tajetas de red y con altos rendimientos,IIS es la mejor opción.




3.-Cuál es más utilizado

-Actualmente hay menos de 50.000 que utilicen la nueva versión de apache. Sin embargo, más de 10 millones usan la versión 1.3.26.

-Apache es el mas utilizado debido a su bajo coste y su alto rendimiento.





Fuentes: