2. Hola “Todomir”
• Multiples Todo List
• REST (Representation State Transfer) [Routes]
• Model vs. ViewModel
• Controlador Flaco y Modelo Gordo
• Progressive Enhacement
3. 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
4. Todomir: Acciones
• TodoList
o Lista get /todolist
o 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}
5. Todomir: Acciones
• TodoTask
o Lista get /todolist/{listId}/tasks
o 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}
6. 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…?
7. Controlador Flaco y
Modelo Gordo
• Menor cantidad de • Procesamiento de sus
procesamiento de datos propios datos.
posible.
• Entrega sus datos en
• Principalmente lógica de
diferentes formas.
acuerdo a los
parámetros de la • Altamente reutilizable.
petición.
• En general no es
reutilizable.
8. 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
9. 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
10. Código: View Model
• Creación de TodoTaskViewModel
• Implementación en TodoTask.Create
• Eliminación de ViewBag