el patrón mvc

Post on 17-Dec-2014

1.698 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

¿Qué mejor forma que comenzar el fin de semana que introduciéndote en el mundo de MVC? De mano de uno de nuestros coordinadores, MSP de Miscrosof, ofrecemos un taller en el que se introduce al mundo de los patrones, que permiten organizar mejor tú código, separar la lógica y mejorar el rendimiento.Para ello, se hablará de uno de los más concocidos: MVC. Se verán ejemplos en dos lenguajes de programación completamente diferentes:ASP.netRuby on Rails

TRANSCRIPT

Agenda

- Qué es MVC (orientado a web)- Ruby on Rails• Introducción a Ruby• Scaffolding con Rails • Rails avanzado

- ASP.net MVC3• Un vistazo rápido a Razor• Introducción al manejo de vistas• Scaffolding con MVC3• ASP.net avanzado

¿Vale, pero qué vamos a hacer?

• Crear un sistema de gestión de eventos

Evento:• Título• Fecha• Descripción• Capacidad• Asistentes (Personas)

Persona:• Nombre• E-mail

1. Introducción

¿Qué es MVC?

• ¿Qué es MVC?

• Según Wikipedia: patrón de arquitectura de software

que separa los datos de una aplicación, la interfaz de

usuario, y la lógica de control en tres componentes

distintos: Modelo-Vista-Controlador

• Para todo tipo de sistemas…

• … y de tecnologías (Java, Ruby, Python, Perl, Flex,

SmallTalk, .Net…)

MModelo

• Representación de los datos del dominio• Lógica de negocio• Mecanismos de persistencia

VVista

• Interfaz de usuario• Elementos de interacción

CControlador

• Intermediario entre Modelo y Vista• Mapea acciones de usuario acciones del Modelo• Selecciona las vistas y les suministra información

Definiendo los roles

Ok

CControlador

MModelo

VVista

CrearEvento(evt)

Crear evento (datos) evt= new Evento()// cargar propiedades

ListarEventos()

Ejecutar vista(«Eventos», Evento[])

Evento[]

HTML

Ejemplo de uso

2. Ruby on Rails

Os presento a RubyEncantado!

• Interpretado

irb(main):001:0> puts «Hola Mundo»Hola Mundo=> nil

irb(main):001:0> a = 16=> 16irb(main):001:0> puts a16=> nil

• Orientado a Objetos

class anfitriondef initialize(nombre = "Mundo")

@nombre = nombreenddef decir_hola

puts "Hola #{@nombre}"end

end

• Dinámico

Una clase con detalles

class anfitriondef initialize(nombres = "Mundo")

@nombres = nombresenddef decir_hola

if @nombres.nil?puts "..."

elsif @nombres.respond_to?("each")@nombres.each do |nombre|

puts "Hola #{nombre}"else

puts "Hola #{@nombres}"end

endend

Cómo crear una web en 4 pasos

1.Inicializar el sitio2.Definir el modelo y generar las

vistas y el controlador3.Generar la base de datos4.Play!

Hemos creado una web en 4 pasos

1.rails new demo2.rails generate scaffold

- evento titulo:string fecha:date descripcion:text capacidad:integer

- persona evento_id:int nombre:string email:string

3.rake db:migrate4.rails server

Vamos a agregar más cosas

1. Relaciones• Relacionar evento con asistentes

2. Validación• Capacidad de las aulas• Presencia del nombre, del e-mail y que no

haya mails repetidos por evento

Resumen

1.Ruby mola!2.Hemos definido un sitio básico de

manera sencilla usando scaffolding3.Hemos agregado relaciones y

validación

3. ASP.net MVC3

• Open Source• Sobre ASP.net• Backend: Visual Basic o C#• Frontend: Razor

Acerca de ASP.net MVC

¿Razor?

Motor de visualización poco intrusivo<ul> @for (var i = 0; i < 5; i++) { <li>@i</li> }</ul>

@{ var name = “Gilberto Salazar”; <div> Nombre: @name </div>}

<html>    <head>      <title>Simple Layout</title>    </head>    <body>         @RenderBody() </body></html>

@{ Layout = "/Shared/_Layout.cshtml";}

<p> Aquí ponemos el contenido</p>

Ejemplo básico

• Controlador• Definir datos

• Vista• Consumir datos

Sitio web sencillo usando scaffolding*

1.Inicializar el sitio2.Definir el modelo y las relaciones3.Generar las vistas y el controlador4.Generar la base de datos5.Play!

Vamos a agregar más cosas (II)

1. Relaciones• Relacionar evento con asistentes• Mostrar los asistentes de un evento

2. Validación• Validar la presencia del nombre y del e-mail

3. Helpers• Formato a las direcciones de e-mail• Facebook• Twitter

Resumen

• Creado dos modelos• Agregado relaciones• Agregado validación• Enlazado vistas• Agregada interacción a nuestra web mediante

helpers

Recursos

• Ruby-lang.org• Rubyonrails.org• Railsforzombies.org• Live.visitmix.com• Asp.net/mvc

• @rlbisbe• Robertoluis.wordpress.com

• ¿Preguntas?

GRACIAS A TODOS!

(que es viernes, y estar aquí tiene mérito!)

top related