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:
-
Capa de Cliente: conocida como capa dePresentación es la que contiene las interfaces en las que el usuariointeractua con el sistema.
- Capa de la Lógica de Negocios: el cualcontiene 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.
- 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 eimplementar
- 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
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlClient
Public Class VBNCapasAcceso
'Capa de Acceso a Datos
'Definición del String de Cadena de conexión
'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"
"user id=sa;initial catalog=Northwind;persist security info=False"
'Los Adaptadores
Private daCat As SqlDataAdapter
Private daProd As SqlDataAdapter
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)
Public Event DataSetCreado(ByVal vCreado As Boolean)
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")
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
RaiseEvent DataSetCreado(True)
'Retorna el DataSet
Return dsDatos
End Function
End Class
Dim dsDatos1 As DataSet
'Definir dos DataTables
Dim dtCat As DataTable
Dim dtProd As DataTable
'Definir dos DataTables
Dim dtCat As DataTable
Dim dtProd As DataTable
'Las Vistas
Dim dvCat As DataView
Dim dvProd As DataView
Dim dvCat As DataView
Dim dvProd As DataView
'Instanciar la clase de acceso a datos
Protected WithEvents cAcceso As VBNCapasAcceso
Protected WithEvents cAcceso As VBNCapasAcceso
'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
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 los DataTable
dtCat = dsDatos1.Tables("Categorias")
dtProd = dsDatos1.Tables("Productos")
'Origen de las Vistas
dvCat = dtCat.DefaultView
dvProd = dtProd.DefaultView
dvCat = dtCat.DefaultView
dvProd = dtProd.DefaultView
'Origen de los Grid
dgCat.DataSource = dvCat
dgCat.CaptionText = "Categorias"
dgCat.Select(0)
dgCat.DataSource = dvCat
dgCat.CaptionText = "Categorias"
dgCat.Select(0)
EstilosGrid() 'Solamente para las Categorías...por espacio y tiempo
End Sub
End Sub
No hay comentarios:
Publicar un comentario