Todomir

Post on 18-Dec-2014

322 views 0 download

description

 

Transcript of Todomir

Conceptos y Técnicas MVC

En ASP.Net MVC 3 y Visual Studio 2010

Hola “Todomir”• Multiples Todo List

• REST (Representation State Transfer) [Routes]

• Model vs. ViewModel

• Controlador Flaco y Modelo Gordo

• Progressive Enhacement

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

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}

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}

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…?

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.

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

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

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

• Implementación en TodoTask.Create

• Eliminación de ViewBag

Código: Modelo Flaco• Mover AllTags al modelo

• Creación de PopularTags

Código: Progressive Enhacement

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

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