Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DE TAMAZUNCHALE
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
PROGRAMACIÓN WEB II
ACTIVIDAD: RESUMEN U2
“Patrón de diseño MVC para Programación
Web”
ALUMNA:
MARIA MACARIA BAUTISTA LUCIO
DOCENTE:
ING. JOSÉ GERMAN HERNANDEZ RAMIREZ
8° SEMESTRE M2
TAMAZUNCHALE S.L.P A 16 de marzo del 2020
INDICE
...........................................................................................................................................................1
2.1 Conceptos y ventajas de los patrones de diseño........................................................................3
2.2 Modelo-Vista-Controlador (MVC)...............................................................................................5
2.2.1 Propósito y componentes (modelo, vista, controlador)..........................................................6
2.2.2 Características e implementación............................................................................................8
2.2.3 Ventajas del patrón de diseño MVC en aplicaciones web.......................................................9
2.3 Diseño de la arquitectura del proyecto MVC..............................................................................9
2.4 Plan de construcción del proyecto con base en MVC...............................................................11
.........................................................................................................................................................15
Referencias Bibliográficas...............................................................................................................18
2.1 Conceptos y ventajas de los patrones de diseño.
1. Nuestra aplicación debe seguir el patrón MVC, por lo tanto se espera que
contenga Controladores, Modelos y Vistas, mismos que podemos ver en los
cuadros verdes.
2. ASP.NET nos ofrece todo el entramado para que nuestra aplicación funcione en la
plataforma, he resaltado 3 partes en color azul oscuro: Ruteo, Mapeo y View
Engine.
3. Siguiendo los consejos que les he estado publicando en los artículos anteriores,
he recurrido a bibliotecas públicas instaladas desde NuGet, para reforzar la
seguridad de mi aplicación; estos los pueden componentes intervienen en el
mecanismo de Ruteo, validando los permisos del perfil al cual pertenece el
usuario que realiza la solicitud.
4. Así mismos, una vez que se ha verificado el acceso, se aplican reglas de
validación de datos para asegurarnos que la información que ha llegado cumple
con nuestras reglas y de esta manera prevenir que algún usuario malicioso nos
envié datos no válidos.
5. Una vez que estos datos han sido validados el flujo de la aplicación lo toma el
controller, en este momento la lógica del Controlador determina si se debe
continuar o si deberá ser re direccionado, ya sea por un error o por condiciones
especiales. El Controller deriva de una clase base que contiene código
reutilizable.
6. Si el Controlador determina que el flujo debe seguir, los datos pasaran a un
servicio para que se haga cargo de la acción CRUD correspondiente; hasta este
momento los datos se encuentran en un ViewModel.
7. El servicio recibe el VM los procesa según la lógica de negocio, lo convierte a una
entidad que el repositorio pueda usar y se lo envía para tomar las acciones
pertinentes. El servicio implementa una interface predefinida, que me asegura que
todos los servicios mantengan la misma estructura así como un mínimo de
métodos requeridos para responder las acciones del CRUD.
8. El repositorio por su parte es una clase Genérica que es capaz de adaptarse
mecanismo de persistencia que se haya configurado, pudiendo ser MySQL, SQL,
etc. Esta clase contiene los métodos básicos del CRUD; si se requiere algún
método especial, es posible extenderla para añadir estos métodos personalizados.
9. Si se trata de una consulta el repositorio responderá con una entidad o una
colección de estos; el servicio recibe estas entidades, las convierte en VM y las
devuelve al controlador. El controlador envía estos datos al ViewEngine
encapsulados en el VM para que sean convertidos en una respuesta usando la
vista correspondiente.
10. La vista convertida en HTML, CSS, JavaScript, etc. es enviada de regreso
al usuario que ha realizado la solicitud.
Gestión de libros
Ahora sería el momento de crear el controlador con todos los métodos generales
para poder dar de alta, editar o borrar libros de la biblioteca.
Aunque se puede hacer a mano como lo hemos hecho hasta ahora, ASP.NET
MVC incluye muchos asistentes para facilitar tareas rutinarias.
Como nosotros queremos hacer uso del modelo Biblioteca que hemos definido
anteriormente, antes de cualquier método del controllador debemos crear un
objeto del tipo de esa clase.
En muchas ocasiones no os
aparecerán los modelos en el mismo momento que se crean, deberemos pulsar
F6 para que se compile el proyecto y todos los modelos sean visibles desde el
resto de elementos del proyecto.
@model IEnumerable<CSI_Biblioteca.Models.Libro>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
Isbn
</th>
<th>
El resultado es
El resto de métodos se
implementan de una forma similar.
cambios que hagamos alta o baja no se refejarán (en cada llamada se redeclara el
objeto). Añadomos static para que los datos se mantengan entre llamadas.
static Biblioteca miBiblioteca = new Biblioteca();
En caso de que sea todo correcto le redirigimos al listado de libros (donde ya ser
verá el nuevo) y en caso de que falle volvemos a mostrar la vista de creación que
hemos definido anteriormente.
Rellenamos el formulario
Pulsamos Create y vemos en el listado el nuevo libro.
Referencias Bibliográficas
[Mensaje de blog]http://msaspnetmvc.blogspot.com/2015/03/la-arquitectura-de-
mis-proyectos-mvc.html