Programación III Mag. Ing. Nancy López Programación en Capas con VB.net y PostgreSQL La programación por capas es un estilo de programación en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario. 1.- Capa de presentación: es la que ve el usuario (también se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Esta capa se comunica únicamente con la capa de negocio o lógica. También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. 2.- Capa de negocio o lógica: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos para almacenar o recuperar datos de él. También se consideran aquí los programas de aplicación. 3.- Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio o lógica. Cuando creen el proyecto de Visual Studio, en lugar de crear un proyecto como hasta ahora hemos hecho, vamos a crear una Solución de Visual Studio que nos va a permitir crear varios proyectos que se van a relacionar mediante Agregar referencia y mediante imports. Programación III Mag. Ing. Nancy López Programación en Capas con VB.net y PostgreSQL Crear una solución en blanco, en Otros tipos de proyecto. Soluciones Visual Studio. Tengan en cuenta indicar el lugar donde lo van a guardar. El nombre en este caso va a ser Sol3Capas Pongan el nombre a cada proyecto y clase al momento de crearlos. Ahora vamos a agregar un proyecto Programación III Mag. Ing. Nancy López Programación en Capas con VB.net y PostgreSQL De tipo class Library (Biblioteca de clases) llamado CapaDatos Proyecto CapaDatos Renombrar la clase que viene por defecto a Configuracion Programación III Mag. Ing. Nancy López Programación en Capas con VB.net y PostgreSQL Y completan el código que quedará de la siguiente manera: Public Class Configuracion Shared cadConexion As String = "Server=localhost;port=5432; userid=postgres;password=postgres;Database=Neptuno;" Public Shared ReadOnly Property CadenaConexion() As String Get Return cadConexion End Get End Property End Class Agregar otra clase llamada Metodos Agregan la referencia a la dll Npgsql y la importan. Programación III Mag. Ing. Nancy López Programación en Capas con VB.net y PostgreSQL Imports Npgsql Public Class Metodos Public Shared Function CrearComando() As NpgsqlCommand Programación III Mag. Ing. Nancy López Programación en Capas con VB.net y PostgreSQL Dim cadenaConexion = Configuracion.CadenaConexion Dim conexion As New NpgsqlConnection conexion.ConnectionString = cadenaConexion Dim comando As New NpgsqlCommand comando = conexion.CreateCommand() comando.CommandType = CommandType.Text Return comando End Function Public Shared Function EjecutarComandoSelect(ByVal comando As NpgsqlCommand) As DataTable Dim tabla As New DataTable() Try comando.Connection.Open() Dim adaptador As New NpgsqlDataAdapter adaptador.SelectCommand = comando adaptador.Fill(tabla) Catch ex As Exception MsgBox(ex.Message) Finally comando.Connection.Close() End Try Return tabla End Function Public Shared Function ejecutarOtrosComandos(ByVal comando As NpgsqlCommand) As Integer Try comando.Connection.Open() Dim filasAfectadas As Integer filasAfectadas = comando.ExecuteNonQuery Return filasAfectadas Catch ex As Exception Return 0 Finally comando.Connection.Close() End Try End Function End Class Agregar un proyecto Class Library llamado capaLogica. Cambiamos el nombre de la clase por defecto a AccesoLogica. Agregamos la referencia al proyecto CapaDatos. Programación III Mag. Ing. Nancy López Programación en Capas con VB.net y PostgreSQL Si no nos muestra el proyecto para agregarlo como referencias, en el menú generar generamos CapaDatos (ojo no generamos la solución, sólo el proyecto CapaDatos). Imports CapaDatos Public Class AccesoLogica End Class Agregar un proyecto Windows Forms Application llamada CapaPresentacion Hacer referencia al proyecto CapaLogica e importarla. Cambiar el nombre del form a frmClientes Imports capaLogica Public Class frmClientes End Class Programación III Mag. Ing. Nancy López Programación en Capas con VB.net y PostgreSQL Cuando terminen, el explorador de soluciones se tiene que ver así: