59
(in)signia presenta

Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Embed Size (px)

DESCRIPTION

Una breve presentación del framework Ruby on Rails para desarrollo de aplicaciones web.

Citation preview

Page 1: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

(in)signiapresenta

Page 2: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Juan María Martinez Arce

Carlos Kozuszko

Page 3: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Descubriendo Ruby on RailsDesarrollo Agil de Aplicaciones Web

Page 4: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

> tiempo > productividad

Page 5: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

¡Tiempo!

Page 6: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

¿Desarrollo Web?

Page 7: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Aplicación Web = Aplicación accedida por Browser

Internet

Page 8: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

+ Cobertura Global

Page 9: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

+ Bajos requerimientos de Hardware

Page 10: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

+ Fácil de Usar

Page 11: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

+ Mantenimiento

Page 12: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

- Seguridad

Page 13: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Desktop vs Web

Page 14: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Mejores Prácticas

Page 15: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

DRYDon’t Repeat Yourself!

Page 16: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

MVCModel View Controller

Page 17: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Page 18: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

ORMObject Relational Mapping

Page 19: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

ORM – Active Record

Page 20: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Control de Versiones

Page 21: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Page 22: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Convention over ConfigurationConvención sobre configuración

Page 23: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Frameworks

Page 24: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Frameworks & Libraries

Page 25: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Frameworks tradicionales

• Struts - Java

• Springs - Java

• PHP + templates + ORM

• Catalyst - Perl

Page 26: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Frameworks ágiles

• Ruby on Rails – Ruby

• CakePHP – PHP

• Django – Python

Page 27: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Page 28: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Conociendo (in)signia

• 4 Desarrolladores

• 2 Diseñadores

• 7 proyectos en curso:– Portal de Noticias– Extranet de Clientes– Campus Virtual– Catálogo de Productos

Page 29: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

¿Cómo hacemos?

Page 30: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

(in)signia elige

Page 31: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

(in)signia elige

Page 32: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

(in)signia elige

Page 33: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

(in)signia elige

Page 34: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

¿Por qué Ruby on Rails?

Page 35: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

class Empresa < ActiveRecord::Base belongs_to :vendedor has_many :usuarios validates_presence_of :razon_social validates_uniqueness_of :codigoend

Page 36: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Empresa.find(:all)Empresa.find(params[:id])Empresa.find_by_codigo(params[:codigo])Empresa.find_or_create_by_codigo(params[:codigo])

Page 37: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

@empresa = Empresa.find(params[:id])@empresa.razon_social = ’(in)signia’@empresa.codigo = ’000999100’@empresa.save!

Page 38: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

class EmpresasController < ApplicationController administrate_me :search => [‘razon_social’], :accepted => [:show],

:secured => true end

Page 39: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

cap deploy

Page 40: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

¡Nos gusta mucho!

Page 41: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Puntos fuertes de Rails

Page 42: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Open Source

Page 43: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Plataformas soportadas

• Servidores y entornos de desarrollo

– Linux/Unix– Windows– Mac OS X

• Servidores Web

– Apache– Lighttpd– IIS

• Bases de datos

– MySql– SQLite– Postgres– Oracle– MS SQL Server– DB2

Page 44: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Convención sobre Configuración

Page 45: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Ventajas

• ORM• Migraciones• Mapeo de peticiones

HTTP

• Soporte para AJAX• Plugins

Page 46: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

class Empresa < ActiveRecord::Base belongs_to :vendedor, :class => “Persona” has_many :usuariosend

class Usuario < ActiveRecord::Base belongs_to :empresaend

class Persona < ActiveRecord::Base has_many :empresasend

Page 47: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

vendedores = Persona.find(:all)vendedores.each do |vendedor| vendedor.empresas.each do |empresa| empresa.activar! puts “Empresa #{empresa} activada.” endend

Page 48: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

class CreatePersonas < ActiveRecord::Migration def self.up create_table :personas do |t| t.column :nombre, :string t.column :apellido, :string t.column :domicilio, :string end end

def self.down drop_table :personas endend

Page 49: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

class CreateEmpresas < ActiveRecord::Migration def self.up create_table :empresas do |t| t.column :razon_social, :string t.column :cuit, :string t.column :vendedor_id, :integer end end

def self.down drop_table :empresas endend

Page 50: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

ActionController::Routing::Routes.draw do |map| map.connect “”, :controller => “login”, :action => “index” map.connect “:controller/:action/:id”end

http://www.demo.com -> LoginController.indexhttp://www.demo.com/empresas/show/1 -> EmpresasController.showhttp://www.demo.com/empresas/edit/1 -> EmpresasController.edithttp://www.demo.com/personas/show/5 -> PersonasController.showhttp://www.demo.com/personas/edit/5 -> PersonasController.edit

Page 51: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

class PersonasController < ApplicationController

def show @persona = Persona.find(params[:id]) end

end

Page 52: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

<html> <body> <p>Hola <%= @persona.nombre %></p> </body></html>

Page 53: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

<html> <body> <% form_for :persona, @persona do |f| %> <label> Nombre: <%= f.text_field :nombre %> </label> <% end %> </body></html>

Page 54: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

<html> <body> <p id=“hora”> Hora: <%= Time.now %></p> <%= link_to_remote “Actualizar!”, :url => {:action => “actualizar”}, :update => “hora” %> </body></html>

Page 55: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Plugins

• acts_as_authenticated• file_column• annotate_models• exception_notification• permalink_fu

• textile_editor_helper• liquid• asset_packager• acts_as_ferret

Page 56: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Menos conversación… Más acción(elvis)

Page 57: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

¿dudas, consultas, opiniones?(trataremos de responder)

Page 58: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

(in)signiahttp://www.insignia4u.com

Juan Maria Martinez [email protected]

Carlos [email protected]

Page 59: Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)

Muchas gracias!