You are on page 1of 4

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

fls2307@hotmail.com

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

 Escalabilidad en las aplicaciones


 Distribución mas efectiva
 Cambios en la aplicaciones mas sencillos de manejar e implementar
 Separación de funciones
 Permite aplicaciones en diferentes sistemas operativos
 Clientes menos pesados (thin Client)

El ejemplo

El formulario tiene el siguiente aspecto:

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

You might also like