Вы находитесь на странице: 1из 8

INTRODUCCIÓN A ASP.

NET

Módulo II
Módulo 2 – Creación y configuración de modelos
Una actividad fundamental en el proceso de diseño de MVC es diseñar un modelo. Cada
clase modelo representa un tipo de objeto que su aplicación administra. No puede
planificar controladores y vistas hasta que comprenda la estructura y el diseño del
modelo.

2.1 ¿Qué es un Modelo?


La mayoría de las aplicaciones web necesitan interactuar con varios tipos de datos u
objetos. Una aplicación de comercio electrónico, por ejemplo, ayuda a administrar
productos, carritos de compras, clientes y pedidos. Una aplicación de red social puede
ayudar a administrar usuarios, actualizaciones de estado, comentarios, fotos y videos.
Un blog se utiliza para administrar entradas de blog, comentarios, categorías y
etiquetas. Cuando escribe una aplicación web MVC, crea un modelo MVC para modelar
los datos de su aplicación web. Dentro de este modelo, crea una clase de modelo para
cada tipo de objeto. La clase modelo describe las propiedades de cada tipo de objeto y
puede incluir lógica de negocios que coincida con los procesos de negocios. Por lo tanto,
el modelo es un bloque de construcción fundamental en una aplicación MVC y un buen
lugar para comenzar cuando escribe código. Los modelos interactúan con el almacén de
información que subyace en su sitio, que generalmente es una base de datos. Por lo
tanto, debe comprender las técnicas y tecnologías de acceso a los datos para escribir
modelos. En este módulo, verá cómo crear el código para modelos y acceder a los datos
utilizando Entity Framework y LINQ.

Un modelo MVC es una colección de clases de .NET Framework. Cuando crea una clase
modelo, define las propiedades y los métodos que se adaptan al tipo de objeto que
describe la clase modelo. Puede describir estas propiedades en el código para que MVC
pueda determinar cómo representarlas en una página web y cómo validar la entrada del
usuario. Debe saber cómo crear y describir modelos, y cómo modificar la manera en que
MVC crea las instancias de clase de modelo cuando ejecuta su aplicación web.
2.2 Planeando Modelos
Los casos de uso, los escenarios de uso o las historias de usuario que recopiló durante la
fase de análisis del proyecto deberían permitirle determinar las clases modelo que
necesita crear. Cada clase de modelo tiene un rango de propiedades. Por ejemplo,
considere el siguiente ejemplo de caso de uso.

1. El usuario hace clic en el enlace “Agregar foto” en el menú principal del sitio.
2. Si el usuario es anónimo, se muestra la página de inicio de sesión y el usuario
proporciona las credenciales.
3. Si las credenciales son correctas, se muestra la vista “CreatePhoto”.
4. El usuario escribe un título.
5. El usuario especifica el archivo de la foto para subir.
6. El usuario escribe opcionalmente una descripción para la foto.
7. El usuario hace clic en el botón Cargar.
8. La aplicación web almacena la nueva foto y muestra la galería de fotos al usuario.
Este ejemplo incluye los siguientes objetos, cada uno de los cuales requiere una clase
modelo:

Usuario. La clase de modelo de usuario debe incluir propiedades para almacenar


credenciales, como el nombre de usuario y

la contraseña.

Foto. La clase de modelo de foto debe incluir las propiedades Título y Descripción.

Otros casos de uso le ayudan de manera similar a agregar nuevas clases de modelo o
nuevas propiedades a las clases de modelo de usuario y foto.

Puede usar diagramas de modelo de dominio y diagramas de modelo de datos lógicos


(LDM) para analizar la información que administra su sitio web y sugerir un modelo de
datos físicos o un diseño de base de datos. Puede volver a estos diagramas para planear
clases modelo. Cada objeto en su modelo de dominio o diagrama LDM debe
implementarse como una clase de modelo MVC. El diagrama del modelo de dominio
incluye no solo los nombres de esas clases, sino también el diagrama LDM, si ha creado
una, con nombres de propiedades y tipos de datos.

Entity Framework es un Object Relational Mapping (ORM) para aplicaciones basadas


en .NET Framework. Un framework ORM vincula las tablas de la base de datos y las
vistas a las clases con las que un desarrollador puede programar, creando instancias o
métodos de llamada. Entity Framework ha sido parte de ADO.NET desde .NET
Framework 3.5.

Cuando utiliza Entity Framework en su aplicación web MVC, vincula tablas y vistas
con las clases modelo que ha planeado. No es necesario que escriba código SQL para
consultar o actualizar las tablas de la base de datos porque Entity Framework lo hace
por usted. Entity Framework está bien integrado con el lenguaje Language Integrated
Query (LINQ).

2.3 Planeando Controladores


En una aplicación web ASP.NET MVC, generalmente hay un controlador para cada
clase de modelo. Convencionalmente, si la clase de modelo se llama "Photo", el
controlador se llama "PhotoController". Si sigue esta convención en su diseño, puede
usar el comportamiento de enrutamiento predeterminado de MVC para seleccionar el
controlador correcto para una solicitud.

Sin embargo, para cada controlador puede haber muchas acciones: cada acción se
implementa como un método en el controlador y generalmente devuelve una vista. A
menudo se requieren acciones separadas para los verbos de solicitud GET y POST
HTTP. Al igual que en el diseño de un modelo, puede identificar las acciones para
escribir en cada controlador al examinar los casos de uso que recopiló durante el
análisis. Por ejemplo, considere el siguiente caso de uso:

1. El usuario hace clic en el enlace Agregar foto en el menú principal del sitio.
2. Si el usuario es anónimo, se muestra la página de inicio de sesión y el usuario
proporciona las credenciales.
3. Si las credenciales son correctas, se muestra la vista CreatePhoto.
4. El usuario escribe un título.
5. El usuario especifica el archivo de la foto para subir.
6. El usuario escribe opcionalmente una descripción para la foto.
7. El usuario hace clic en el botón Cargar.
8. La aplicación web almacena la nueva foto y muestra la galería de fotos al usuario.
Ya ha identificado las clases de modelos de fotos y usuarios en este caso de uso. Al
adherirse a la convención de MVC, debe crear un PhotoController y un UserController.
El caso de uso muestra que se necesitan las siguientes acciones para cada controlador.

Controlador Acción Descripción


La acción AddPhoto para solicitudes GET crea una
nueva instancia de la clase de modelo de foto, establece
Photo AddPhoto (GET)
valores predeterminados como la fecha de creación y la
pasa a la vista correcta.
La acción AddPhoto para solicitudes POST llama a los
métodos de clase de modelo de foto para guardar los
AddPhoto (POST)
valores de la foto en la base de datos y redirige el
navegador a la acción DisplayGallery.

La acción DisplayGallery para solicitudes GET muestra


DisplayGallery (GET)
todas las fotos almacenadas en la base de datos.

La acción de inicio de sesión para las solicitudes GET


User Logon (GET) muestra una vista en la que un usuario anónimo puede
ingresar las credenciales.
La acción de inicio de sesión para las solicitudes POST
verifica las credenciales del usuario en la base de datos
Logon (POST) de miembros. Si las credenciales son correctas, la acción
de inicio de sesión autentica y redirige al usuario a la
página solicitada originalmente.
2.4 Personalizar Controladores
Un controlador es una clase de .NET Framework que se hereda de la clase base
“System.Web.Mvc.Controller”. Los controladores responden a las solicitudes de los
usuarios. Dentro de una clase de controlador, crea acciones para responder a las
solicitudes de los usuarios. Las acciones son métodos dentro de un controlador que
devuelven un objeto ActionResult. El objeto ActionResult es a menudo una vista que
muestra una respuesta a la solicitud del usuario; Sin embargo, también puede dar otros
tipos de resultados. Para procesar las solicitudes entrantes de los usuarios, administrar
las entradas e interacciones de los usuarios e implementar la lógica de aplicación
relevante, debe saber cómo crear controladores y acciones. También debe saber cómo
crear parámetros en bloques de código de acción y pasar objetos a acciones.

2.4.1 Usando parámetros


Cuando los usuarios solicitan páginas web, a menudo especifican información distinta
del nombre de la página web en sí. Por ejemplo, cuando solicitan una página de detalles
del producto, pueden especificar el nombre o el número de catálogo del producto para
mostrar. Dicha información adicional se conoce como parámetros. Debe comprender
cómo determinar en el código qué parámetros envió el usuario en su solicitud.

Las clases ControllerActionInvoker y DefaultModelBinder obtienen parámetros de una


solicitud del usuario y los pasan a métodos de acción. DefaultModelBinder puede ubicar
los parámetros en una forma publicada, los valores de enrutamiento, la cadena de
consulta o en los archivos publicados. Si el archivador de modelo encuentra un
parámetro en el método de acción que coincide con el nombre y el tipo de parámetro de
la solicitud, se llama al método de acción y se pasa el parámetro desde la solicitud. Esta
disposición le permite obtener y utilizar parámetros en sus acciones. Por ejemplo, si un
usuario solicita la URL http://www.adventure-
works.com/photo/getphotobytitle/?title=myfirstphoto, puede obtener fácilmente valores
de título en su método de acción.

2.4.2 Pasando información a las vistas


Puede pasar un objeto modelo, como una Photo, del método de acción a la vista
utilizando el método auxiliar View(). Este es un método utilizado con frecuencia para
pasar información de una acción del controlador a una vista. Esto se debe a que este
método se adhiere estrechamente al patrón Modelo-Vista-Controlador, en el que cada
vista representa las propiedades encontradas en la clase del modelo, que la vista recibe
del controlador. Debe utilizar este enfoque siempre que sea posible.

Sin embargo, en algunos casos, es posible que desee aumentar la información en la clase
modelo con algunos valores adicionales. Por ejemplo, es posible que desee enviar un
título, que debe insertarse en el encabezado de la página, a la vista. Además, algunas
vistas no utilizan clases modelo. La página de inicio de un sitio web, por ejemplo, a
menudo no tiene una clase de modelo específica. Para ayudar en estas situaciones, puede
utilizar otros dos métodos para proporcionar datos adicionales: ViewBag y ViewData.

2.5 Personalizar Vistas


Las vistas son uno de los tres componentes principales del modelo de programación
MVC. Puede construir la interfaz de usuario para su aplicación web escribiendo vistas.
Una vista es una mezcla de código HTML y código que se ejecuta en el servidor web.
Debe saber cómo escribir el código HTML y el código encontrados en una vista y usar
las diversas clases auxiliares integradas en MVC. También debe saber cómo escribir
vistas parciales, que representan secciones de HTML que se pueden reutilizar en
muchos lugares de su aplicación web. El conocimiento de la creación de vistas le ayudará
a desarrollar páginas web que presenten contenido dinámico.

Cuando un usuario realiza una solicitud a una aplicación web MVC, un controlador
responde. A menudo, la acción del controlador crea una instancia de un objeto modelo,
por ejemplo, un Producto. El controlador puede obtener el Producto consultando la base
de datos, creando un nuevo Producto o realizando algún otro paso. Para mostrar el
Producto, el controlador crea una vista y le pasa el Producto. La vista crea una página
web insertando propiedades del Producto y, a veces, de otras fuentes, en el marcado
HTML. MVC envía la página web completa al navegador. Para crear vistas, debe
comprender cómo MVC interpreta el código que coloca en las vistas y cómo se crea una
página HTML completa. De forma predeterminada, el motor de vista de Razor realiza
esta interpretación, pero también puede usar otros motores de vista. Si se toma el
tiempo para comprender Razor, encontrará que es un excelente y versátil motor de
visualización que le otorga un gran grado de control sobre el HTML renderizado. Otros
motores de visualización tienen sintaxis muy diferentes, que puede preferir si ha
trabajado con versiones anteriores de ASP.NET u otras tecnologías web del lado del
servidor, como Ruby on Rails.

Вам также может понравиться