Introducción a la programación Multicapas

Fecha: 29/May/2004 (28 de Mayo de 2004)
Autor: David Esteban Vergara Zapata
. jevergara@edatel.net.co

 


Resumen:
El modelo actual de desarrollo de software nos ha comprobado que el organizar los elementos de las aplicaciones en componentes independientes puede lograr una mayor efectividad a la hora de administrarlas.


Introducción
La programación en múltiples capas es la técnica más efectiva en aplicaciones empresariales, debido a la fácil administración que implica el dividir los componentes de la aplicación en capas y la rapidez que esto implica en programas orientados a Cliente-Servidor. Esta arquitectura consiste en dividir los componentes primarios de la aplicación, programarlos por separado y después unirlos en tiempo de ejecución. El modelo COM de objetos es uno de los pilares de la programación Multitier (la llamaremos así de ahora en adelante, debido a que en la mayoría de escritos figura de esta forma) y asimismo, el modelo Windows DNA el cual define también Multitier como la mejor forma de programación.


¿Qué es Programación Multitier?
Cómo lo decía en el apartado anterior, la programación multitier consiste en dividir los componentes primarios de la aplicación, programarlos por separado y luego unirlos sea en tiempo de ejecución o en el mismo código. De esto naturalmente surge una duda ¿Cuáles son los componentes primarios de la aplicación? En este momento se habla de programación de cuatro capas, aunque me referiré a la programación en tres capas o Three-Tier que es el más documentado y que en este momento permite mayor abstracción para aplicaciones empresariales. Estas tres capas las podemos denominar como: Presentación, Reglas del Negocio y Acceso a Datos. A continuación las explico cada una:

Presentación:
En esta capa se diseña todo lo que constituye la interfaz gráfica y la interacción del usuario con el software.

Reglas del Negocio:
Son todas las subrutinas creadas con el propósito de regular alguna acción del usuario. Por ejemplo, en una aplicación bancaria una regla del negocio podría ser que el cliente no debe retirar por taquilla más de U.S. $10.000 y en caso de una petición de este tipo se genere un error.

Acceso a Datos:
En esta capa programamos todo lo que tiene que ver con el acceso a la base de datos. Esta capa queda encargada de tomar la información de la base de datos dada una petición de la capa de Reglas del Negocio, que a su vez es generada por la capa de presentación.


¿Cuál es la diferencia con la programación tradicional?
Probablemente se estará preguntando, ¿Por qué esto es mejor que programar todo de una sola vez y qué diferencia hay entre una arquitectura y otra? Las gráficas nos ayudarán a visualizar mejor estas diferencias.

MODELO TRADICIONAL

Todas las capas están ubicadas en un único elemento y al actualizar un elemento se tendrán que afectar todos

MODELO THREE-TIER

En este el cambio en la capa de presentación no afectará reglas del negocio y se pueden actualizar las funciones de reglas del negocio sin tener que cambiar el acceso a datos.

 

Como podemos apreciar en las gráficas, resulta mucho más práctico programar las capas por separado, sobretodo en situaciones que tenemos un equipo de trabajo de diferentes programadores o el proyecto es para una empresa con varias sucursales con políticas independientes.

¿Cómo funciona en Visual Studio .NET?

En este entorno de programación existen muchas ayudas para aplicaciones multitier. Una de ellas es los denominados Building Blocks, dentro de los cuales existen plantillas para cada una de las capas. Pero no es necesario utilizarlos; perfectamente nosotros podemos hacer el trabajo, aquí voy a mencionar algunas recomendaciones.

Gracias a .NET podemos utilizar clases para dividir todos los componentes; simplemente se debe encapsular los elementos importantes en objetos, por ejemplo: los usuarios se pueden convertir en una clase, los depósitos pueden ser una clase, las transacciones las podemos convertir en clases y así sucesivamente.

Lo recomendable al crear la capa de acceso a los datos es crearla en un componente COM, ya que será reutilizable y podrá ser usada tanto en aplicaciones para Windows Forms como para ASP.NET. Reglas del negocio también puede ser generada como un componente, aunque no es estrictamente necesario ya que se puede crear en un assembly normal y crear la referencia a este desde la capa de presentación.

¿Cuándo es recomendable utilizar esta arquitectura?

Como todo en nuestra querida profesión, se debe analizar muy detenidamente la arquitectura a seguir, porque esta puede implicar un costo muy alto o unas posibles fallas en el programa. Lo recomendable para utilizar la arquitectura multitier es:

" Cuando el proyecto es muy grande.
" Cuando son varios los programadores y existen dificultades para coordinarlos, por ejemplo cuando el software se está desarrollando con programadores freelance que están muy lejos unos de los otros.
" Cuando el programa es para una empresa con varias sucursales y cada sucursal puede tener algunos métodos y políticas diferentes. Por ejemplo, una empresa tiene una sucursal en Los Angeles y otra en Boston; la sucursal de Los Angeles sólo permite compras a crédito por un valor de U.S$10.000 y la de Boston de U.S $12.000. Al utilizar un modelo multitier en este caso podemos cambiar el límite del crédito sin tocar la capa de presentación ni la de acceso a datos.

¿Cómo hacer mi proyecto?

Si desea realizar un proyecto en tres capas, lo que debe hacer básicamente es lo siguiente: Cree tres proyectos, dos de ellos pueden ser de componentes o de Class library, eso lo decide el programador. Una vez tenga estos tres proyectos, en uno de ellos estarán solamente los formularios que le mostraremos al usuario. En el otro proyecto tendremos funciones de verificación, por ejemplo, verificar que la cuenta exista, que tenga dinero suficiente, etcétera. En el tercero ponemos las funciones de acceso a datos: la conexión, se define si se desean objetos conectados o desconectados y se crean las funciones de asignación de registros, modificación y eliminación. Por propósitos de brevedad no mostraré un código completo, porque sería muy extenso, pero estos parámetros lo podrán guiar perfectamente en la creación de su aplicación. El código que irá en los formularios solamente será para invocar las funciones de la capa de reglas del negocio. Es decir, si creamos un botón de eliminar, el código que irá en este será solamente la función borrar que debimos haber creado en la capa de reglas del negocio. Por ejemplo:


Private Sub BtnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEliminar.Click
    Dim Eliminador As New BussinessRules.DataBaseHandler()
    Eliminador.DeleteRecord(129)
End Sub

En este ejemplo, lo que muestro es que en nuestro formulario lo único que debemos tener es el código para invocar las funciones creadas para el acceso a datos o verificaciones; no sus implementaciones ya que estas las tenemos en la capa de reglas del negocio. Les recuerdo que para incluir las funciones y objetos creados en el proyecto "Capa de reglas del negocio" debemos en el proyecto de presentación dar clic derecho en referencias, agregar referencia y dar clic en la pestaña proyectos donde debemos encontrar las dos capas creadas.

Espero esto les pueda ser útil para próximos proyectos. Esto es sólo un material de introducción y más información puede ser encontrada en MSDN.



ir al índice