Busqueda local

Loading

lunes, 14 de noviembre de 2011

MVP en ASP.NET usando Entity Framework (3 de 3)

Puede parecer muy ingrato de parte de nuestros usuarios, pero a ellos solo les interesa que nuestra aplicación sea fácil de manejar, rápida y que no tenga errores. Todo lo que hagamos en las capas que ellos no ven, no tiene importancia, mientras no falle…
Crear una interface que sea fácil de usar y que sea intuitiva (termino de moda) resulta en muchas horas de programación, para dejarla a punto…

Introducción

En esta ocasión no voy a hacer ningún ejemplo donde les ofrezca técnicas de programación para esta capa, usando JQuery, AJAX, HTML5 o alguna otra de moda, simplemente voy a simplificar esta relación con las capas inferiores, para que su trabajo sea más fácil y puedan aprovechar esas horas sobrantes a esta capa tan demandante.
 

Tutorial

Vamos a continuar en el proyecto web que creamos en la primera parte de este ejemplo. Recuerden que nuestro objetivo desde que empezamos esta serie de ejemplos, es que nuestras WebForms no tengan en control de la aplicación, trasladar ese control hacia las capas inferiores, más estables, de forma no cohesiva.
Hasta el momento tenemos nuestra API lista en el otro proyecto y ahora debemos conectar los cables para que las cosas fluyan.
Para este patrón empezaremos por crear una interface, que debemos colocar dentro de la carpeta interfaces que se encuentra dentro de la carpeta Presentación, como se muestra a continuación:
mvpentity29
Esta interface tiene como objetivo establecer un estándar en todas las formas que creemos, de tal forma que el método Display siempre este ahí:
mvpentity30
Creen una carpeta llamada Administración y dentro agreguen un formulario llamado frmHomeEmpresas:
mvpentity31
En el fuente del diseñador agregaremos este código:
mvpentity32
En el codebehind agregaremos nuestra interface para que nuestro formulario web la deba implementar:
mvpentity33
Nuestro código necesita una clase que se encargue de la interacción con nuestra biblioteca de clases, la cual crearemos en una carpeta llamada Presentadores, dentro de Presentación:
mvpentity34
El código debe ofrecer un método Display y un constructor que reciba la interface que creamos previamente:
mvpentity37
Observen como se crea la instancia de nuestro Servicio, no es necesario crear una instancia de la clase ServiceLocator, solo se requiere tener una referencia a la biblioteca. Otro aspecto interesante a notar en este presentador, es la forma en que se formatean los datos que se enviaran a la UI.
De regreso a nuestro CodeBehind, este sería el código que debemos agregar:
mvpentity35
Observen como se envía como parámetro a nuestro constructor la misma forma que lo está creando, esto es posible por la implementación de nuestra interface. Presten atención a la forma en que se controla la presentación en el Load. Y por último la implementación del método Display de la interface y la propiedad MensajeError. El método display recibe una lista de empresas, que el presentador le envía, nuevamente esto es posible porque en el constructor se envió el formulario, y el método Display es parte de esta.
Ahora ejecútenlo y podrán ver las empresas que hayan agregado a su tabla de la base de datos.
mvpentity36

Comentario Final

Los patrones pueden ser un poco irracionales al principio, sobre todo si estamos implementando algo que nos cambia el paradigma; sin embargo una vez que logramos entender lo que se persigue, se convierte en un proceso repetitivo, el cual nos garantiza que si seguimos por ese medio, no será necesario reinventar nuestro código cada vez.
Y recuerden: El poder del código solo es completo, si tenemos el conocimiento de cómo usarlo.

















No hay comentarios:

Publicar un comentario