Presentación de Trabajo Final 1
Contenido Integrantes Nombre del Proyecto y Descripción Arquitectura de la Solución Problemas y Principales Decisiones de Diseño Demostración de la Aplicación Experiencia y Aprendizaje 2
¿Qué es Educat? Aplicación web para el apoyo educacional Plataforma comunicación alumnos-docentes Principio KISS Keep It Short and Simple Keep It Simple, Stupid 3
¿A quiénes está dirigido Educat? Idea original: Preuniversitario social Pero también … Colegios Universidades CFT etc 4
Objetivos generales Simpleza Utilidad Accesibilidad Gratuidad 5
Objetivos específicos Gestión de usuarios y roles Administración de cursos Avisos o noticias Plataforma de materiales Seguimiento de notas Seguimiento de asistencias 6
Integrantes IntegranteRole Ignacio AstudilloNoticias, vistas Thomas BornMaterial, Evaluaciones Pamela CalvoVistas, Asistencias Samuel GleisnerUsuarios, Roles Juan Pablo VigneauxCursos, Permisos 7
Arquitectura : Modelo de datos 8 Usuarios Varios conjuntos de clases En síntesis …. Cursos Manejo de roles
Arquitectura 9
Arquitectura: Manejo de Roles 10
Arquitectura: Manejo de Roles 11 DescripciónPermiso Attribute
Arquitectura: Manejo de Roles 12
13
PROBLEMAS ENFRENTADOS Aquellas piedras en el camino … 14
Problema 1 Desconocimiento del framework ASP.NET MVC 15
Desconocimiento del Framework ASP.NET MVC 2 != ASP.NET 2.0 Hay que pensar en MVC – No usar code-behind – Evitar usar controles del “toolbox” “Mañas” del framework – Reflection => Cuidar estándares Solución: Leer HARTO y conversar – También ayudaron NerdDinner y MusicStore 16
Problema 5 Manejo de roles 17
Problema: Manejo de roles En la implementación de la parte de roles tuvimos varios problemas. Mapeo de enumeración a int. Eficiencia. 18
Problema 3 Problema: Mostrar “selectivamente” partes de una vista 19
Problema: Mostrar “selectivamente” partes de una vista Una vista tiene elementos de visualización y elementos de creación, edición y eliminación. – No todos los usuarios tienen acceso a todas ellas. ¿Cómo ocultar una parte de la vista para “gente no deseada”? 20
Problema: Mostrar “selectivamente” partes de una vista Solución: Control de permisos mediante “bools”. Se decide “qué se muestra y qué se oculta” según el usuario activo. 21
Problema 4 “Eliminación progresiva” 22
Problema: “Eliminación progresiva” Varias entidades contienen a otras entidades… – Evaluaciones tienen Notas… – Directorios tienen Directorios y Archivos… ¿Cómo eliminar rápidamente a una entidad y sus dependientes? Solución: Eliminación en cascada 23
Problema 5 “Intercambio de datos con la vista” 24
Problema: Intercambio de datos con la vista Se requiere comunicación entre controlador y vista, pero no sólo de un tipo, sino muchas entidades. – Curso, Usuario, Noticia, … ¿Cómo se puede enviar toda la información necesaria de manera sencilla, ordenada y encapsulada? 25
Problema: Intercambio de datos con la vista Solución: Uso de patrón ViewModel. Un ViewModel por cada instancia que necesitamos encapsular. 26
Pero no todo son problemas … DEMO 27
Experiencia y Aprendizaje (3 elementos) Manejo del tiempo grupalmente a través de planilla SCRUM. Tendemos a subestimar los tiempos de implementación de cada funcionalidad. Aprendimos a utilizar el framework ASP.NET MVC 2. No dejar las cosas para última hora, pues se presta para errores. 28
Evaluación (A llenar por el Profesor) Notas por Entrega # 1 # 2 # 3 Nota Propuesta por el Ayudante Nota en la Presentación Nota de Proyecto 29 La nota no es el promedio matemático de todas las entregas, tiene una componente de criterio del profesor y del alumno.