Memoria. - UOC

2y ago
25 Views
3 Downloads
5.21 MB
73 Pages
Last View : 28d ago
Last Download : 3m ago
Upload by : Jerry Bolanos
Transcription

Memoria.Desarrollo de aplicaciones con ASP.NET MVCAutor: Pablo Domínguez CuevasConsultor: Jordi Ceballos Villach10 de enero de 2011A mis petardos, Juan y Sofía.

PFC - ASP.NET MVCPablo Domínguez Cuevas1.Descripción del proyecto. 71.1Resumen. 71.2Alcance del proyecto. . 81.3Objetivos del proyecto. . 81.4Planificación del proyecto. . 91.4.1Relación de actividades. . 91.4.2Calendario de trabajo. . 141.4.3Hitos principales. . 151.5 Resultados obtenidos. . 152.1.5Productos entregados. . 161.6Estructura del documento. 16Arquitectura del proyecto: Análisis y diseño. . 172.1 Casos de uso. . 172.1.1 Nombre: Seleccionar tipo animal. . 172.1.2 Nombre: Seleccionar estado animal. . 172.1.3 Nombre: Listado animales. . 182.1.4 Nombre: Buscar animales. . 192.1.5 Nombre: Gestionar animales. . 192.1.6 Nombre: Enviar mensaje. . 212.1.7 Nombre: Gestionar mensajes. 222.1.8 Nombre: Contestar mensaje. . 232.1.9 Nombre: Gestión reducida de animales. 242.1.10 Nombre: Gestión usuarios. . 242.1.11 Nombre: Login. . 252.1.12 Nombre: Registrarse. . 262.2 Diagrama de casos de uso: . 272.3 Diseño del interfaz de usuario. 272.3.1 Diagramas de actividad. . 282.3.1.1 Listado de animales. . 282.3.1.2 Gestión usuarios. . 292.3.1.3 Registrar. . 292.3.1.4 Gestionar mensajes. . 30Página 2 de 73

PFC - ASP.NET MVCPablo Domínguez Cuevas2.3.1.5 Gestionar animales. 302.3.1.6 Contestar mensaje. . 312.3.1.7 Enviar mensaje. . 312.4 Diseño capa presentación. . 312.4.1 Diseño externo. . 312.4.2 Pantallas del interfaz de usuario. . 322.4.2.1 Parte común a todas las pantallas. . 322.4.2.2 Listado de animales. . 322.4.2.3 Pantalla de gestión de animales. 342.4.2.4 Pantalla de edición del perfil del animal. . 352.4.2.5 Pantalla para consultar el perfil del animal. 362.4.2.6 Pantalla para enviar mensaje a otro usuario. . 372.4.2.7 Pantalla de gestión de mensajes recibidos. . 382.4.2.8 Pantalla de detalles del mensaje. 392.4.2.9 Pantalla de registro de un nuevo usuario. . 392.5 Diseño de la capa de dominio. . 412.5.1 Diagrama de componentes. . 412.5.1.1 Diagrama de componentes WebForms. 412.5.1.2 Diagrama de componentes para MVC. . 422.5.2 Modelo conceptual: diagrama de clases UML. . 432.6 Arquitectura del proyecto. . 442.6.1 Arquitectura WebForms. 452.6.2 Arquitectura MVC (Modelo2). 453.Implementación. . 463.1Desarrollar web MVC. . 463.1.1 Proyecto tibisit.Domain. . 463.1.2 Proyecto tibisit.Db. . 463.1.3 Proyecto tibisit.mvc.Web . 463.1.4Proyecto tibisit.test . 463.1.4Problemas con las clases derivadas. . 473.1.5Ninject: control de dependencias. . 473.1.6Primer controlador y vista. Numerar páginas. . 47Página 3 de 73

PFC - ASP.NET MVCPablo Domínguez Cuevas3.1.6.1 Acción List del controlador. . 473.1.6.2 PagingInfo. 483.1.6.3 HtmlHelpers: PageLinks. 483.1.6.4 Modelo. . 483.1.6.5 Código final. 483.1.6.6 Vista. . 483.1.7Página master. . 493.1.7.1 MS Expression Web 4. . 493.1.7.2 Buscar página master. . 493.1.7.3 Modificar página master. . 493.1.8Crear página de inicio. . 493.1.8.1Menú derecha. EstadoController. . 503.1.9Crear resto de controladores para visualizar animales. . 503.1.10Añadir controlador para gestión de animales. . 513.1.10.1Crear controlador. . 513.1.10.2Menú derecha. . 513.1.10.3Acción Edit y Create. 513.1.10.4AdoptarEditarListViewModel. . 513.1.10.5Vista Edit. 513.1.10.6Errores inesperados. . 513.1.10.7Validación. . 523.1.10.8Subir imágenes al servidor. . 533.1.11Mostrar imágenes de la base de datos. . 543.1.12Definir el resto de controladores de gestión. . 553.1.13Opción de ampliar la información del animal. . 553.1.13.1Acción Show. . 553.1.13.2Vista Show. . 553.1.13.3Añadir botón que llama a la acción Show. . 553.1.14Borrar animales. . 563.1.14.1Añadir botón en vista. . 563.1.14.2jQuery UI dialog. . 563.1.15Gestión de mensajes. . 57Página 4 de 73

PFC - ASP.NET MVCPablo Domínguez Cuevas3.1.15.1Posibilidad de enviar mensajes sobre un animal. . 573.1.15.2Acción EnviarMensaje. . 573.1.15.3jQuery UI dialog. . 573.1.15.4Controlador MensajeController. . 573.1.15.5Modelo MensajeListViewModel. . 583.1.15.6Vistas. . 583.1.16Autenticación. . 593.1.16.1Controladores. . 593.1.16.2Vistas. . 593.1.16.3Autorize. . 593.2 Desarrollar web mediante WebForms. . 603.2.1 Página master. . 603.2.2 Página de inicio. . 603.2.3 Página para mostrar animales. 603.2.4 Página de gestión de animales. . 613.2.4.1 Validación. . 613.2.5 Gestión de mensajes. . 613.2.6 Autenticación. . 613.2.7 Control de errores. . 614.Hosting: Problemas y soluciones. 624.1 Problemas. 624.1.1 Problemas de mapeo. . 624.1.2 Problemas con el estado de sesión. . 624.1.2.1 Guardar estado en SQL Server. . 624.1.3 Problemas con la autenticación. . 624.1.4 Error interno del servidor. . 634.1.4.1 ErrorController. . 634.2 Modificaciones para solucionar problemas. . 634.2.1Caché en disco. . 634.2.2Session State. . 644.2.3CDN. 644.2.4Watermark. . 64Página 5 de 73

PFC - ASP.NET MVCPablo Domínguez Cuevas4.2.5Enviar email con errores. . 644.2.6Dispose. . 644.3Windows Azure Platform. . 644.3.15.Principales modificaciones. . 654.3.1.1Modificaciones propias. . 654.3.1.2Guardar estado de sesión. 654.3.1.3Subir imágenes al servidor. . 654.3.1.4SQL Azure. . 65Diferencias MVC y WebForms. 655.1MVC. . 655.2 Ventajas MVC. . 665.3 Inconvenientes MVC. . 675.4 Ventajas WebForms. . 675.5 Inconvenientes WebForms. . 685.6 Principales diferencias. 685.7 Experiencia personal. . 696.Conclusiones. 707.Bibliografía. . 70Pro ASP.NET MVC 2 Framework, Second Edition [Kindle Edition] . 70Professional Application Lifecycle Management with Visual Studio 2010 [Kindle Edition]. 70Entity Framework 4.0 Recipes: A Problem-Solution Approach [Kindle Edition] . 70jQuery Cookbook [Kindle Edition] . 71Microsoft .NET: Architecting Applications for the Enterprise [Kindle Edition] . 71CODE Magazine - 2010 MarApr [Kindle Edition] . 71Programming Windows Azure [Kindle Edition] . 71Foundation Expression Blend 4 with Silverlight [Kindle Edition] . 71Página 6 de 73

PFC - ASP.NET MVCPablo Domínguez Cuevas1. Descripción del proyecto.1.1 Resumen.Este proyecto tiene como objetivo principal el aprendizaje de las tecnologías .NET deMicrosoft, y fundamentalmente el análisis del framework MVC disponible para ASP.NET, y paraello se detallarán las principales ventajas y desventajas del mismo, comparándolo conWebForms.Para el aprendizaje de estas tecnologías se ha desarrollado una web cuya funcionalidad es quelos usuarios puedan publicar referencias a animales que desean dar, para que otros puedanadoptarlos. Podríamos hablar de un portal destinado a evitar el abandono de los animales afavor de su adopción.Entre las funcionalidades principales implementadas en esta web podríamos destacar:La web desarrollada consiste en un portal donde los usuarios puedan realizar una serie deacciones, en favor de localizar un animal. Un usuario podrá, tras registrarse, dar de alta su perro o gato, para que otros puedanadoptarlo. Un usuario podrá, tras registrarse, dar de alta su perro o gato, informando que deseacruzarlo. Un usuario podrá, tras registrarse, dar de alta su perro o gato, informando que lo haperdido. Un usuario podrá, tras registrarse, dar de alta un perro o gato, informando que lo haencontrado perdido. Los usuarios anónimos podrán ver todos estos animales clasificados, de modo, quepodrá buscar contenido según la situación del animal: para adoptar, para cruzar,perdido o encontrado perdido. Los usuarios podrán enviarse mensajes entre sí, una vez registrados, habrá un buzón,donde el usuario podrá ver todos sus mensajes recibidos. El usuario no autenticado podrá ver toda la información de perros y gatos, pero nopodrá gestionar mensajes ni animales.El proyecto ha ido cumpliendo una serie de entregas, hasta terminar con esta última, cuyafecha límite es el 10 de enero de 2011.El proyecto ha sido realizado por Pablo Domínguez Cuevas y ha sido tutelado por el consultorJordi Ceballos Villach.Página 7 de 73

PFC - ASP.NET MVCPablo Domínguez CuevasUna vez finalizado el proyecto, lo pondré en producción, esperando sirva de ayuda a lacomunidad de usuarios de internet con el encomiable fin de evitar el abandono y favorecer laadopción de animales, evitando así su maltrato y muerte.1.2 Alcance del proyecto.El proyecto abarca desde el aprendizaje de las tecnologías ASP.NET de Microsoft y el patrónMVC, hasta el desarrollo de la web utilizando WebForms y la misma pero utilizando MVC, demodo que se puedan analizar las ventajas y desventajas de cada uno de ellos. En un primermomento se establecieron las principales tareas como: Buscar bibliografía para el estudio de estas tecnologías. Analizar y comprender a éstas, para poder llevar a cabo el desarrollo de la web. Analizar y diseñar la aplicación web. Desarrollar la aplicación utilizando MVC. Desarrollar la aplicación utilizando WebForms. Estudiar las diferencias entre ambos modelos. Realizar memoria y presentación del proyecto realizado.1.3 Objetivos del proyecto.El objetivo principal de este PFC es el de aplicar los conocimientos adquiridos durante elestudio de la Ingeniería Informática, llevando a cabo para ello, el desarrollo de un proyectoelegido por el estudiante. En concreto, este proyecto va dirigido a aplicarlos mediante el usode la tecnología .Net de Microsoft, y más en concreto, desarrollando una aplicación conASP.NET MVC y otra con WebForms, analizando las ventajas e inconvenientes de cada uno deellos.Para poder cumplir estos objetivos, he procurado utilizar las máximas tecnologías de Microsofty otras que me han servido de apoyo, como jQuery. Las bases para el desarrollo han sido: Como IDE, MS Visual Studio 2010 Ultimate y como sistema de gestión de base de datosMS SQL Server 2008. Una de las web utiliza el framework ASP.NET MVC 2 y la otra WebForms, siempreaplicando el nuevo framework 4. En ambos casos, para aumentar la usabilidad, heutilizado técnicas AJAX mediante jQuery UI. Para el acceso a datos he optado por el ADO.NET Entity Framework 4 junto a LINQ.Además para mantener la separación entre capas, he utilizado objetos POCO, que sonlos que se intercambian entre las distintas capas, de modo, que la capa depresentación, no tenga ninguna referencia a la de datos. Para los métodos CRUD, hePágina 8 de 73

PFC - ASP.NET MVCPablo Domínguez Cuevasusado repositorios, que son los que implementan toda la funcionalidad necesaria paraque la información de los objetos POCO se guarde en la capa de persistencia. Aun no siendo necesario para este PFC, también he aplicado técnicas TDD, es decir,realizar primero el test de prueba, y posteriormente mediante refactoringimplementar el método que permita pasar el test correctamente. Pero por motivos detiempo, no he podido desarrollarlo como hubiese querido. Respecto al punto anterior, también he usado librerías “mock”, para no accederdirectamente al repositorio de datos en los test. Como repositorio de código y para el seguimiento del proyecto he usado TFS 2010(Team Foundation Server 2010) con la plantilla MSF Agile 5.0, y Sharepoint 2010. Para el diseño de la página master me he ayudado de MS Expression Web 4. Podríahaber seguido con esta herramienta para el resto del diseño, pero actualmente, tienepoco integración con aplicaciones MVC. Como programas auxiliares para la confección de la documentación y gestión delproyecto, he usado MS Project 2010, MS Visio 2010, MS PowerPoint 2010 y MS Word2010.1.4 Planificación del proyecto.1.4.1Relación de actividades.Realizar plan de trabajoobjetivoEste documento inicial ayuda a tener una primera visión delproyecto a realizar.duración6 díasentregablesDocumento de plan de trabajo.ObservacionesEste plan de trabajo ha sido bastante exacto a pesar de que nuncahabía utilizado las tecnologías. Las principales variaciones se handebido a la publicación de la web en los distintos hosting: Winhosty Windows Azure Platform.Buscar bibliografíaobjetivoLas tecnologías a utilizar no eran todas conocidas, por lo queprimero he buscado bibliografía sobre éstas, estudiado y analizado.Página 9 de 73

PFC - ASP.NET MVCPablo Domínguez Cuevasduración6 díasentregablesObservacionesLa mayor parte del tiempo de este proyecto se ha gastado endocumentarme.Gestión del proyectoobjetivoEn general la previsión inicial se cumplió bastante bien.duración1 díaentregablesPlan de proyecto actualizadoObservacionesLa web desarrollada con WebForms la pude terminar antes detiempo, por lo que pude dedicar tiempo a las distintasadaptaciones para publicar las web en el hosting.Requerimientos H/SobjetivoEstudiar los requerimientos necesarios para llevar a cabo la web.duración1 díaentregablesDocumento de requerimientos.ObservacionesTras el análisis decidí utilizar el framework 4 para la realización delproyecto.Análisis funcionalobjetivoRealizar modelos de caso de uso, diagrama estático o modeloconceptual, definir la interfaz gráfica del usuario.duración5 díasentregablesDocumentos resultantes de estos análisis.ObservacionesRevisé los apuntes de las asignaturas que tratan estos temas.Página 10 de 73

PFC - ASP.NET MVCPablo Domínguez CuevasDiseño de la capa de presentaciónobjetivoRealizar diseño externo e interno de la aplicación.duración5 díasentregablesPantallas de la aplicación y diseño de vistas, controladores y elmodelo.ObservacionesRevisé los apuntes de las asignaturas que tratan estos temas.Diseño de la capa de dominioobjetivoDiseño de las clases del modelo conceptual.duración5 díasentregablesModelo conceptual.ObservacionesRevisé los apuntes de las asignaturas que tratan estos temas.Diseño del modelo lógico de la base de datosobjetivoRealizar el modelo E/R para almacenar los datosduración5 díasentregablesModelo lógico.ObservacionesRevisé los apuntes de las asignaturas que tratan estos temas comoBD I, BD II y SGBD.Programación de la web usando MVCobjetivoUtilizar esta arquitectura para poder analizar las ventajas ydesventajas del patrón MVC.duración25 díasentregablesCódigo fuente de la web.ObservacionesEsta primera web ha consumido más recursos que la segunda, yaPágina 11 de 73

PFC - ASP.NET MVCPablo Domínguez Cuevasque es mi primer contacto con esta tecnología.Pruebas de la web usando MVCobjetivoAsegurarse el correcto funcionamiento de la misma.duración2 díasentregablesDocumento de errores y aceptación de la aplicación.ObservacionesLa web se abrió a internet en fase beta, publicándola en unproveedor de hosting, de este modo amigos y familiares pudieroncolaborar en las pruebas de la misma.Programación de la web usando WebFormsobjetivoUtilizar esta arquitectura para poder comparar con la MVCduración12 díasentregablesCódigo fuente de la web.ObservacionesSe aprovechó gran parte del código de la web anterior, por lo queel tiempo de programación fue visiblemente más ajustado.Pruebas de la web usando WebFormsobjetivoAsegurarse el correcto funcionamiento de la misma.duración2 díasentregablesDocumento de errores y aceptación de la aplicación.ObservacionesLa web se abrió a internet en fase beta, publicándola en unproveedor de hosting, de este modo amigos y familiares pudieroncolaborar en las pruebas de la misma.Publicar ambas web en un proveedor hostingobjetivoHacer accesible la web a todos los usuarios y permitir al consultor yPágina 12 de 73

PFC - ASP.NET MVCPablo Domínguez Cuevasal jurado un fácil acceso a la misma.duración8 díasentregablesObservacionesHe tenido que realizar múltiples cambios en el proyecto para quefuncionase en el hosting de Winhost debido a la limitación dememoria del proceso que me da este proveedor.Adaptar proyecto MVC a Windows Azure PlatformobjetivoPublicar la web en un hosting sin limitaciones y escalable.duración13 díasentregablesObservacionesTras los problemas encontrados en Winhost, por limitaciones en lamemoria de proceso, decido adaptar la web MVC con unproveedor fiable y sin limitaciones, como Windows Azure Platform,ya que se paga por uso, pudiendo escalar a las necesidades delcliente.Analizar las diferencias entre ambos modelosobjetivoConocer las ventajas y desventajas de un modelo sobre el otro.duración1 díaentregablesDocumento de análisis de los modelos utilizados.ObservacionesEn este punto las tecnologías ya son conocidas.Realizar memoria del proyectoobjetivoDescribir el trabajo realizado para que pueda ser valorado por elconsultor y el tribunal.duración2 díasentregablesDocumento de memoria del proyecto.Página 13 de 73

PFC - ASP.NET MVCPablo Domínguez CuevasObservacionesPara su correcta realización estudié los materiales que se nosproporcionan en la asignatura para la elaboración de documentostécnicos.Realizar presentaciónobjetivoDescribir el trabajo realizado para que pueda ser valorado por elconsultor y el tribunal en una presentación.duración1 díaentregablesPresentación virtual del proyecto.ObservacionesOpto por utilizar Demo Builder y MS

Un usuario podrá, tras registrarse, dar de alta su perro o gato, informando que lo ha perdido. Un usuario podrá, tras registrarse, dar de alta un perro o gato, informando que lo ha encontrado perdido. Los usuarios anónimos podrán ver todos estos animales clasificados, de modo, que

Related Documents:

Documento de apoyo para el profesorado de la UOC _ 2 Actividades de aprendizaje. Documento de apoyo para el profesorado de la UOC Mayo de 2015 Esta guía ha sido elaborada por el equipo de Modelo Educativo del eLearn Center con la colaboración de la Comisión de Representantes de los Estudios en el eLC y del profesorado de la UOC eLearn Center.

El Buyer Persona Juan Pablo Sánchez uoc.edu . alumni.uoc.edu 01 ¿Qúe es el Buyer Persona? Tu cliente ideal. 00/00/00 2 . alumni.uoc.edu 3 Juan Pablo Sánchez CEO (owner) Asmalljob . · Le gusta HubSpot · Herramienta es fácil de usar · Puede aprender Inbound

Tân Ước Lược Khảo (N ew Testament Survey) của Merrill C. Tenney và Walter M. Dunnett Thánh Kinh Lược khảo1 (Halley s Bible Handbook) của Henry H. Halley, nhà in Tin . Tân Ước New Testament

Manolis Surligas (CSD, UoC) OSPF tutorial May 14, 2019 1 / 15 OSPF tutorial Computer Science Department, University of Crete Manolis Surligas surligas@csd.uoc.gr May 14, 2019. Open Shortest Path First (OSPF) OSPF is a dynamic routing protocol It is classi ed as an Interior Gateway Protocol (IGP) . (in RIP this was 15) OSPF uses IP multicast .

A razão entre o número de cache hit e o número total de buscas na cache é conhecida como hit ratio. MAC 344 - Arquitetura de Computadores Prof. Siang Wun SongHierarquia de memória e a memória cache

La odisea de la Historia en tiempos de memoria: entre los cantos de sirenas. 27 Memoria e historia funcionan en dos registros radicalmente diferentes, aun cuando es evidente que ambas tienen relaciones estrechas y que la historia se apoya, nace de la memoria. La memoria es el recuerdo de un pasado vivido o imaginado.

direccionar memoria y E/S de forma independiente, de ahí el nombre de E/S aislada. La ventaja del primer tipo es que generalmente existen muchas más instrucciones referidas a memoria que a E/S, lo cual permite una programación más eficiente. Por contra, utiliza espacio del mapa de memoria. 2.2. Técnicas de entrada/salida

anexo a memoria tÉcnica. proyecto de instalaciones elÉctricas implantaciÓn de actividad "cafeterÍa" en calle espartinas 31 nave 11 cp:45223 seseÑa (toledo). www.losmejorescursos.online anexo a memoria. proyecto de instalaciones elÉctricas 1 anexo a memoria. proyecto de instalaciones elÉctricas. fecha: 25/10/2019 documento: anexo a .