Pre-Requisitos MVC

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 19

Pre-Requisitos

Necesarios para
Microsoft ASP.NET
MVC
Arquitectura MVC

 Modelos: Representa los datos, operaciones y reglas


necesarias para la construcción del negocio en una
aplicación
 Vistas: Describen como se representan los objetos del
modelo visible para le usuario como interfaz, pero sin
lógica
 Controladores: Encargados de manejar las peticiones,
desarrollar operaciones sobre el modelo dominante y
selecciona la vista para mostrar al usuario
Tecnologías No MVC

 Pequeñas Aplicaciones UI
 Llamada el Anti-Modelo
 Se encapsula Acceso a Datos, Validación y
Operaciones y Reglas dentro de la misma Interfaz de
Usuario
 Cortar y Pegar es la Técnica más utilizada
 Para Gran Tamaño resultan aplicaciones inmanejables
 Útil para Aplicaciones Pequeñas de Poco Tiempo de
Desarrollo
Separación del Modelo de Dominio

 Representado a Través de Modelo Orientado a Objetos


y Estructuras Relacionales
 Beneficios de Separar el Modelo Dominante
 Crear un Lugar Natural donde colocar reglas y
operaciones del Dominio
 Definir un punto de intercambio de datos sin duplicar en
diferentes partes de la aplicación
 Diseñar una estructura de datos basándose en el
conocimientos de expertos en el modelo
 En .NET el Modelo se crea en ensamblados (DLL)
Independientes. Referencias las Librerías en las UI
Arquitectura Modelo - Vista

 Separación entre el Modelo de Dominio y la UI

 Componentes con Repetición de código y asociados a


el sistema de base de datos
 Difícil generar pruebas unitarias y compartir código
para otro tipo de GUI o Base de Datos
Arquitectura de Tres Niveles (Three-Tier)

 Separa el código de persistencia del modelo generando


una capa de Acceso a Datos (DAL:Data Access Layer)

 Perfecta para desarrollo con Windows Forms y


ASP.NET Web Forms
 Las Validaciones y Código de datos se realizan
directamente en el UI y no se tiene control total de
pruebas y definiciones
Arquitectura MVC para la Web

 Las Peticiones son enrutadas a una clase controladora que


procesa entradas del usuario y trabaja con el modelo para
manejar la petición

 El Modelo encapsula objetos y reglas de negocio, el


controlador se encarga de otros procesos
 Las Vistas se encargan de mostrar el UI al usuario al recibir
información del controlador, quien prepara la información a
ser desplegada en la vista (Presentación del Modelo en
MVC)
Implementación de ASP.NET MVC

 Las Clases controladoras heredan de la clase


System.Web.Mvc.Controller
 Cada Método publico del controlador es llamado un método
de acción (Action Method) , asociado automáticamente a
una URL del Sitio
 Las Vistas son Paginas Plantillas ASPX sin manejo de
ViewState/PostBack y codeBehind. Manejan código C# para
el manejo de la información del ViewData suministrada por
el controlador
 Los Modelos son implementados a través de librerías de
clases con C# o el leguaje de tu conveniencia
Modelo del Dominio

 Encapsula Objetos, Reglas y procesos del diseño del


software
 Cada elemento incluyendo controladores y vistas están
diseñados para soportar e interactuar con el modelo
 ASP.NET MVC provee infraestructura y convenciones para
conectar los componentes del proceso
 Enlazado del Modelo: Poblar objetos del modelo a partir de
una petición (HTML Form Post)
 Metadatos del Modelo: Descripción e información adicional a
las propiedades
 Validaciones: Definir reglas de negocio en la metadata
Términos DDD

 Componentes DDD: Domain –Driven Design


 Dominio (Domain)
 Modelo (Model)
 Ubiquitous Language (Idioma en Todas Partes)
 Contexto (Context)
Agregados y Simplificación

 Un conjunto de entidades del dominio que tienen


relación la llamamos un Agregado
 Todo Agregado Tiene una entidad raíz llamada raiz
 El Agregado se toma como una unidad lógica de
procesos en el mundo real
 Brindan superestructuras en un modelo complejo
 Permiten manejar temas de integridad entre los datos
Modelo de Subastas con Agregados
Modelo Subastas en C#

public class Miembros {


public string NombreLogin{get;set;} // Clave Primaria
public int PuntosReputacion{get;set;}
}

public class Articulo{


public int IdArticulo{get;private set;} // Clave Primaria
public string Titulo {get;set;}
public string Descripcion {get;set;}
public DateTime FechaFinalSubasta {get;set;}
public Ilist<Oferta> Ofertas{get;set;}
}

Public class Oferta{


public Miembros Miembro{get;set;}
public DateTime FechaIngreso{get;set;}
public decimal ValorOferta{get;set;}
}
Repositorios para el Modelo

 Implementar Repositorios de Datos para almacenar la


información
 Bases de Datos Relacionales
 Archivos de Datos
 Archivos XML
 Generar Repositorios Propios o Manejar Herramientas
de .NET
 LINQ to SQL
 Entity FrameWork
Repositorios en C#

public class MiembrosRepositorio {


public void AddMiembro(Miembros miem){ . . .}
public Member MiembroPorNombre(string login){ . . .}
public void SalvarCambios(){ . . .}
}

public class ArticuloRepositorio{


public void AddArticulo(Articulo itm){ . . . }
public Articulo ArticuloPorId(int itmId) { . . . }
public Ilist<Articulo> ListaArticulos
(int tamPagina,int noPagina){ . . . }
public void SalvarCambios(){ . . .}
}
LINQ to SQL

 Herramienta de Mapeo Objeto Relacional (ORM)


 Solo para conexión con Base de Datos MS SQL Server
 Maneja un Conexto de datos (DataContext) encargado
de realizar las operaciones con la base de datos
 Definir el Uso de Linq to SQL
 Tomando una Base de Datos Existente
 Tomando un conjunto de Clases Existente
•Más Trabajo, pero más control del modelo
LINQ to SQL: Atributos de Datos

 Atributos para Decorar las Clases vs Tablas en la BD


 Table: Nombre de la Tabla [Tabla(name=“tabla”)]
 Column: Definir una Columna (Nombre de la Propiedad)
•IsPrimaryKey=true
•IsDbGenerated=true
•AutoSync=AutoSync.OnInsert
 Association:Asociación con Otra Tabla
•OtherKey=“nombreclave”
•ThisKey=“nombreClave”
•Storage=“nombrevariable”
LINQ to SQL: Clase Decorada con Atributos

 Clase Miembros con Atributos de LINQ


 IdMiembro es Campo de llave Primaria y Autogenerado
 Este Campo se Sincroniza en el momento de hacer una
inserción
using System.Data.Linq.Mapping;
Using System.Data.Linq

[Table(name=“Miembros”)]
public class Miembros {
[Column(IsPrimaryKey=true,IsDbGenerated=true,
AutoSync=AutoSync.OnInsert)]
internal int IdMiembro { get;set;}
[Column] public string NombreLogin { get; set; }
[Column] public int PuntosReputacion { get; set;}
}
LINQ to SQL: Creación de la Base de Datos

 A Partir de un Contexto enlazado a una Base de Datos


 Obtenemos las definiciones de las tablas con GetTable
 Creamos la base de datos con CreateDataBase
// Contextos y Creción
DataContext dc = new DataContext(cadenaConexión);
dc.GetTable<Miembros>();
dc.GetTable<Articulos>();
dc.GetTable<Ofertas>();
dc.CreateDatabase();

También podría gustarte