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:
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í:
Creen una carpeta llamada Administración y dentro agreguen un formulario llamado frmHomeEmpresas:
En el fuente del diseñador agregaremos este código:
En el codebehind agregaremos nuestra interface para que nuestro formulario web la deba implementar:
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:
El código debe ofrecer un método Display y un constructor que reciba la interface que creamos previamente:
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:
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.
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