Para ver una versión mejorada de este post ingresa a mi otro blog
Configurando la solución
- Visual Studio en Blanco llamada MyApp.
- Sobre la solución creada agregaremos tres librerías de clases llamadas así:
- MyApp.Dominio : Esta librería se encuentran las clases que define el dominio de la aplicación.
- MyApp.Infraestructura : Esta librería se crearan las clases necesarias para acceder a la DB, para ello emplearemos el patrón Repositorio y consumiremos la librería MyApp.Dominio.
- MyApp.Servicio : Esta librería se crearán las clases que serán utilizadas por el website para manipular la validación de las entradas y servirá como puente entre MyApp.Infraestructura y MyApp.WebSite.
- MyApp.WebSite: Sitio web en MVC 3 en el que se visualizará la información.
La solución creada se verá así luego de eliminar las clases por defecto generadas por el IDE
![]() |
| Estructura de la solución MyApp |
Configurando la Librería MyApp.Dominio
Agregamos las siguientes referencias al proyecto- System.ComponentModel.DataAnnotations
- EntityFramework
Ahora creamos una clases Pais.cs que contendrá dos campos con sus respetivos get y set. Sobre cada uno de estos campos se han agregado metadatos que harán que al compilador genere la correspondiente la DB con las entidades y con sus respectivos tipos de datos y longitudes. Estos metadatos también será consumidos por el website para validar la entrada de información.
![]() |
| Clase Pais con los ensamblados referenciados en MyApp.Dominio |
En este punto se hará un pequeño adelanto, se agregará la cadena de conexión en el Web.Config de MyApp.Website. la cadena de conexión sera la siguiente:
| Cadena de conexión de la aplicación con MySql |
Configurando la librería MyApp.Infraestructura
Agregamos las siguientes referencias al proyecto
- EntityFramework
- System.Data.Entity
- MyApp.Dominio (Librería que contiene la definición de la entidad País)
Luego definimos la interfaz de repositorio de País
![]() |
| Definición de la interfaz para el repositorio País |
Definimos el contexto de la aplicación y la implementación para el respositorio Pais
![]() |
| Definición de la clases SigEntidades.cs |
![]() |
| Implementación para el repositorio País |
Configurando la librería MyApp.Servicio
Agregamos las siguientes referencias al proyecto
Agregando la implementación de PaisServicio, de esta manera logramos desacoplar el acceso a datos de la aplicación. Si queren mayor detalle remitanse a http://www.asp.net/mvc/tutorials/iteration-4-make-the-application-loosely-coupled-cs .
- MyApp.Dominio (Librería que contiene la definición de la entidad País)
- MyApp.Infraestructura (Librería que contiene el repositorio Pa)
- System.Web.Mvc (Version 3.0)
Se crea la interfaz del servicio IPaisServicio.cs
![]() |
| Interfaz del servicio IPaisServicio.cs |
![]() |
| Implementación de la clase PaisServicio |
Adicionalmente se creará una interfaz IValidationDictionary.cs y su respectiva implementación ModelStateWrapper.cs. Estas dos clases permitiran realizar validaciones al modelo pero ello solo se limitara a realizar un validación considerando que es una aplicación web en MCV 3, si el escenario cambiase a una aplicación de escritorio habría que ajustar la implementación de esta validación.
![]() |
| Interfaz IValidationDictionary.cs |
![]() |
| Implementacion de la clase IValidationDictionary.cs en ModelStateWrapper.cs |
Configurando la aplicación MyApp.WebSite
Agregamos las siguientes referencias al proyecto
- MyApp.Dominio (Librería que contiene la definición de la entidad País)
- MyApp.Servicio (Librería que contienen el servicio)
Creamos el controlador PaisController, este será el encargado de interactuar entre vista y servicio el cual contiene a su vez el modelo. Dando clic derechos sobre la carpeta Controllers > Agregar > Controlador, se obtiene la siguiente ilustración.
![]() |
| Creación del controlador para País |
Ya tenemos la infraestructura, el controlador ahora falta la vista, para ello damos clic derecho sobre la vista Index, tal como aparece en la grafica para agregar la vista para Index en la que se presentará el listado de Paises.
![]() |
| Controlador Pais con su implementacion de CRUD |
![]() |
| Agregamos vista Index para el controlador de Paises |
![]() |
| Definiendo la vista Index para Paises |
Con el anterior paso se creará la vista Index dentro de la ruta /View/Pais/Index.cshtml
![]() |
| Vista generada con la plantilla List para Paises |
![]() |
| Ejecución de la vista Index para Paises |
En siguiente entradas se agregaran entidades relacionadas, búsquedas y uso de componentes como WebGrid entre otros.
Aquí les dejo el proyecto http://www.mediafire.com/?6zvej7zg6vac2uc con los CRUD totalmente implementados.















2 comentarios:
Gracias por el Post.
Solo una pregunta, cuando se empieza Configurando la solución en el paso 1 y 2, como se debe hacer. Habra forma de que detalles estos 2 pasos.
Saludos
Hola, es probable que aqui los puedas encontrar mas detallado ASP.NET MVC 3 por capas con MySQL
Publicar un comentario