RE:INformacion sobre arquitectura de n capas
Arquitectura de N Capas
La arquitectura de n capas es un concepto medio complicado por lo que yo daré solamente una pequeñísima introducción.
En primer lugar la arquitectura de capas es algo referente a la arquitectura de software, pero realmente si una aplicación no tiene arquitectura de capas adecuada para el tipo de necesidad se podría decir que no cumple con la programación orientada a objetos.
¿Que es programar en una capa?
Programar en una capa es en pocas palabras no explotar todas las características de los lenguajes orientados a objetos, primero por que es un desorden total, segundo estaríamos trabajando en base a un método procedimental.
Es cuando en un botón de un formulario o una orden de consola, ejecutas todo el código todas las funciones y todo lo necesario para que funcione un programa.
Un ejemplo es que hago un proyecto por ejemplo un calculadora sencilla, y yo en el botón sumar pongo la función correspondiente a la suma y así en toda la calculadora, claro en un proyecto como este apuesto que todos lo primero que hacen es dibujar el formulario y a cada botón le ponen sus funciones, cuando uno trabaja en capas, lo primero que hace seria la clase y de ultimo después de tener todas las funciones seria de dibujar el formulario.
Un ejemplo de una arquitectura de una capa y un problema real seria:
Como programador me dejan que haga una aplicación para una empresa la cual consta de 500 maquinas a nivel departamental, y hago esta aplicación, cuando termino al mes me llaman y me dicen que hay un error cuando le llegan los datos o cualquier otro problema.
¿Que debo hacer?
Si he hecho una arquitectura de una capa, esto implica que debo hacer una actualización, y que debo pasar esa actualización maquina por maquina, en cambio si he trabajado en n capas, voy a arreglar el programa desde la capa en este caso pondríamos la capa del servidor lo cual ahorraría un trabajo enorme, además de esto revisar y controlar un problema en una aplicación de una capa seria demasiado difícil debido a que esta todo unido.
Otro problema es saber diferenciar, un problema muy frecuente que por cierto cometí en una entrada al principio, es por ejemplo una capa de servidor no puede llevar absolutamente nada de la capa de interfaz y en esto me refiero a los ‘message box’ o otras cosas por el estilo que debieran estar en la capa de usuario (interfaz).
Una arquitectura de capas bastante común y que todos la han escuchado es la de Cliente-Servidor... la verdad una buena arquitectura se basa (dependiendo de lo que necesita y complicado del proyecto) en una arquitectura de por lo menos 3 capas.
---------------
Usuario
Capa de Negocios
Bases de Datos
---------------
ya una aplicación con mas necesidades tendría que adoptar un WebService y quedaría así:
---------------
Usuario
WebService
Capa de Negocios
Bases de Datos
---------------
Y puede tener otras cuantas capas mas todo dependiendo siempre de la aplicación.
Lo ideal seria siempre trabajar con esta plantilla de la arquitectura de software así se la aplicación que fuera, lo principal que lo ultimo que tengamos que hacer en nuestro proyecto sea dibujar el formulario: lo primero son las clases, bases de datos, sus funciones etc. Lo ultimo dibujar el formulario, al principio esta técnica es muy difícil pero con el tiempo creo que se puede acostumbrar muy fácilmente.