todomir

13
Conceptos y Técnicas MVC En ASP.Net MVC 3 y Visual Studio 2010

Upload: arturo-guzman

Post on 18-Dec-2014

322 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Todomir

Conceptos y Técnicas MVC

En ASP.Net MVC 3 y Visual Studio 2010

Page 2: Todomir

Hola “Todomir”• Multiples Todo List

• REST (Representation State Transfer) [Routes]

• Model vs. ViewModel

• Controlador Flaco y Modelo Gordo

• Progressive Enhacement

Page 3: Todomir

REST Hoy (SOP)• Representation State Transfer [Wikipedia]

• HTTP y XML o JSON

• Operaciones POST, GET, PUT y DELETE CRUD

• getUser() HTTP:get(/user/{id})

• addLocation() HTTP:post(/location)

• findUser() HTTP:get(/user/find)

• SOP sigue siendo recomendada para B2B o S2S

Page 4: Todomir

Todomir: Acciones• TodoList

o Lista get /todolisto Detalles get /todolist/{id}o Crear

• Forma get /todolist/create• Guardar post /todolist/create

o Editar• Forma get /todolist/edit/{id}• Guardar post /todolist/edit/{id}

o Borrar• Confirmacion get /todolist/delete/{id}• Borrar post /todolist/delete/{id}

Page 5: Todomir

Todomir: Acciones• TodoTask

o Lista get /todolist/{listId}/taskso Detalles get /todolist/{listId}/tasks/{id}o Crear

• Forma get /todolist/{listId}/tasks/create• Guardar post /todolist/{listId}/tasks/create

o Editar• Forma get /todolist/{listId}/tasks/edit/{id}• Guardar post /todolist/{listId}/tasks/edit/{id}

o Borrar• Confirmacion get /todolist/{listId}/tasks/delete/{id}• Borrar post /todolist/{listId}/tasks/delete/{id}

Page 6: Todomir

Model vs. ViewModel• Ruby y PHP son los objetos del negocio

• .Net (Compiled), se puede manejar igual pero…

• Model es la logica de negocios, normalmente en

otro proyecto y accessible a traves de un servicio.

• ViewModel es un caballo de carga

• ViewBag para información extra… dinámico…?

Page 7: Todomir

Controlador Flaco y Modelo Gordo

• Procesamiento de sus

propios datos.

• Entrega sus datos en

diferentes formas.

• Altamente reutilizable.

• Menor cantidad de

procesamiento de datos

posible.

• Principalmente lógica de

acuerdo a los

parámetros de la

petición.

• En general no es

reutilizable.

Page 8: Todomir

Progressive Enhacement

• Primer paso es crear una versión funcional en la

mayor cantidad de plataformas

• Segundo paso es embellecerlo, o mejorar la

usabilidad para quienes poseen una mejor

plataforma.

• Personalmente lo recomiendo en el uso de

JavaScript

• Lo opuesto es Graceful Degradation

Page 9: Todomir

Código: REST• Modificación de rutas

• Mejora de UI

• Contextualización de TodoTask.Index

• Contextualización de TodoTask.Create

• Agregar tags actuales en TodoTask.Create

Page 10: Todomir

Código: View Model• Creación de TodoTaskViewModel

• Implementación en TodoTask.Create

• Eliminación de ViewBag

Page 11: Todomir

Código: Modelo Flaco• Mover AllTags al modelo

• Creación de PopularTags

Page 12: Todomir

Código: Progressive Enhacement

• Agregando clickable tags• Borrando usando Ajax• Marcando usando Ajax

Page 13: Todomir

Minificar y Combinar• Paquete con Nuget

• http://luckyassetmanager.codeplex.com/

• http://rejuice.me/learn-more

• Código: https://github.com/arturoguzman/todomir• Presentación: http://slideshare.net/guzart/todomir