Colaboraciones en el Guille

Aplicaciones en N-Capas en Visual Basic .Net

Maestro - Detalle 

Fecha: 12/Oct/2005 (11 de Octubre de 2005)
Autor: Ing. Fernando Luque Sánchez - DCE 4 Estrellas
[email protected]

Un poco de teoría

Sres. Desarrolladores, en esta ocasión comparto con ustedes un ejemplo de como desarrollar una aplicación usando Visual Basic .Net en N-Capas.

Modelos de Acceso a datos

Los modelos de acceso a datos han  evolucionado junto a los modelos de equipos, desde los modelos centralizados hasta los modelos distribuidos. La cantidad de usuarios de los sistemas antes no tenia en número que tiene ahora cambiando desde aplicaciones de un usuario o aplicaciones simples (en un equipo unicamente) hasta aplicaciones en Internet, el último modelo es el modelo de Servicios Web XML (XML Web Services).

Definición de Capa

En el modelo de acceso a datos, una capa es un nivel lógico en el cual residen componentes o aplicaciones lógicas. Las capas pueden residir en uno a mas equipos o servidores, el número de capas hace referencia al número de niveles y no al número de equipos en los cuales los servicios son divididos. Las capas que generalmente se incluyen en aplicaciones son:

  1. Capa de Cliente: conocida como capa de Presentación es la que contiene las interfaces en las que el usuario interactua con el sistema.
  2. Capa de la Lógica de Negocios: el cual contiene la lógica que interactua con el origen de datos. Esta capa intermedia contiene la parte de la aplicación que interactua con los datos, por ejemplo: la creación de una cadena de conexión al origen de datos.
  3. Capa de acceso a Datos: la cual se relaciona directamente con el origen de datos

Beneficios del trabajo con Capas

 

El ejemplo

El formulario tiene el siguiente aspecto:

Aplicación en N Capas..un ejemplo

A continuación sigue código en Visual Basic (o C# o C++.NET):

La Biblioteca de clases del Acceso a Datos: VBNCapasAccesoDatos

'Ing. Fernando Luque Sánchez
'Net Desarrollo SAC
'Asesoramiento y Desarrollo

Imports System.Data
Imports System.Data.SqlClient  

Public Class VBNCapasAcceso
    'Capa de Acceso a Datos
    'Definición del String de Cadena de conexión

    Protected Const sCN As String = _
        "user id=sa;initial catalog=Northwind;persist security info=False"

    'Los Adaptadores
    Private daCat As SqlDataAdapter
    Private daProd As SqlDataAdapter

    'Declarar eventos que proveen información a la Capa de Presentación
    Public Event DataSetCreado(ByVal vCreado As Boolean)

     'Creamos una función para retornar el DataSet
    Public Function CrearDataSet() As DataSet
        Dim dsDatos As DataSet
        Dim cn As New SqlConnection(sCN)
        'Las instancias de los Adaptadores
        daCat = New SqlDataAdapter("Select CategoryId, CategoryName, Description from Categories", cn)
        daProd = New SqlDataAdapter("Select * from Products", cn)

        dsDatos = New DataSet
        daCat.Fill(dsDatos, "Categorias")
        daProd.Fill(dsDatos, "Productos")

        'Indica que el evento de creación del DataSet fue exitoso
        RaiseEvent DataSetCreado(True)
        'Retorna el DataSet
        Return dsDatos
    End Function
End Class

En la zona de declaraciones del formulario

    Dim dsDatos1 As DataSet
    'Definir dos DataTables
    Dim dtCat As DataTable
    Dim dtProd As DataTable

    'Las Vistas
    Dim dvCat As DataView
    Dim dvProd As DataView

    'Instanciar la clase de acceso a datos
    Protected WithEvents cAcceso As VBNCapasAcceso

Al cargar el Windows Form

    'PROCEDIMIENTO AL CARGAR EL FORMULARIO
    Private Sub Cargar(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load
        'Instanciar la clase
        cAcceso = New VBNCapasAcceso

        'Obtener el DataSet de la Clase VBNCapasAcceso
        dsDatos1 = cAcceso.CrearDataSet
        'Origen de los DataTable
        dtCat = dsDatos1.Tables("Categorias")
        dtProd = dsDatos1.Tables("Productos")

        'Origen de las Vistas
        dvCat = dtCat.DefaultView
        dvProd = dtProd.DefaultView

        'Origen de los Grid
        dgCat.DataSource = dvCat
        dgCat.CaptionText = "Categorias"
        dgCat.Select(0)

        'Llenar el Grid de Productos 
        LlenarGridProductos()

        EstilosGrid()   'Solamente para las Categorías...por espacio y tiempo
    End Sub

 

El código completo se encuentra en el archivo adjunto. Bájalo y no te olvides de votar, tus puntos me alientan a seguir compartiendo.

Suerte a todos y a seguir desarrollando.

Ing. Fernando Luque Sánchez
DCE 4 Estrellas


Espacios de nombres usados en el código de este artículo:

System.Data
System.DataSQLClient


Fichero con el código de ejemplo: FernandoLuque_NCapas.zip - (12) KB


ir al índice principal del Guille