1

Capa Negocio
Usando clases en VB
Jesús Alejandro Flores Hernández
2

Introducción

Esta presentación muestra un ejemplo de codificación de la capa de negocio en Visual
Basic, conectando con procedimientos almacenados en MySql.
Objetivo. Programar la capa de negocio para la aplicación ProvPar

Materias: Programación avanzada, Bases de datos
Requerimientos
1. Tener la base de datos provPar en MySql (ver
http://es.slideshare.net/ltidesdaci/procedimientosalmacenados)
2. Tener definidos los SP para insertar y consultar a porvPar (ver
http://es.slideshare.net/ltidesdaci/capadatosconprocedimientosalmacenados)
3. Tener instalado el Sharp Develop (ver http://www.icsharpcode.net/opensource/sd/)
4. Tener instalado el controlador de MySql para NET (ver
http://es.slideshare.net/ltidesdaci/instalardrivernetparamysql)
3

Pasos para programar la capa de negocio

Los pasos para programar nuestra capa de negocio son:
Paso 1 Tener una narrativa que describa el problema
Paso 2 Diseñar las clases del sistema a partir de la narrativa
Paso 3 Tener programada la capa de datos del sistema (en este caso con
procedimientos almacenados en MySql)
Paso 4 Codificar la Capa de negocio.
4

Paso 1 Crear una aplicación para VB
en Sharp Develop
Suponga que se tiene una descripción de un problema ( aquí un extracto):
La empresa PROVPAR.S.A. Dedicada a la venta de refacciones desea llevar el
control de su información para los proveedores, partes, pedidos y notas de
venta, para esto la empresa cuenta con una agenda de proveedores en donde
guarda el rfc, nombre, teléfono, dirección, e-mail y calificación del
proveedor, donde calificación es un número del 1 al 10 con el que nuestra
empresa califica el servicio prestado por el proveedor, si una empresa tiene un
servicio excelente tendrá una calificación de 10 y si es pésimo será de 0. La
empresa también cuenta con una lista de partes donde almacena una
clave, nombre, existencia, stock mínimo, stock máximo, peso, cc y cv, donde stock
mínimo es la cantidad mínima de este artículo que la empresa requiere en
existencia es decir su existencia en almacén no debe bajar de esta
cantidad, stock máximo es la cantidad máxima de artículos o partes que puede
almacenar la empresa en su almacén, peso es el peso de la parte en kg y será un
número entero, ...
5

Paso 2 A partir de ahí se diseñaron las clases en UML
6

Métodos
Siguiendo el ejemplo se asocia la funcionalidad (métodos) a las clases, aquí
se muestran algunos que usaremos en este material:
Métodos clsAlmacen
 insertaParte(p as clsParte)
Métodos clsListaPedidos
 traePedidos
7

Paso 3 En la capa de datos se tiene
En MySql se tienen los procedimientos almacenados:
 spAltaParte
 spPedidos
8

En la capa de datos se tiene el spPedidos

spPedidos con el parámetro de
entrada opción y devuelve la lista
de pedidos según la opción
1 Todos
2 Todos con nombre de proveedor y
descripción de parte, etcétera
9

Y además tiene el spAltaParte

El spAltaparte tiene 7 parámetros los
primeros 6 (que se muestran aquí)
corresponden a los valores de los
campos a insertar y el séptimo es
una parámetro de salida (llamado
miSalida) donde se almacenará un
letrero que indica si se realizó
correctamente la inserción.
10

Resumen paso 1,2 y 3
Por lo tanto se tiene una narrativa, un diseño de clases y una capa de datos
con procedimientos almacenados en MySql llamados:
 spAltaParte
 spPedidos
A continuación la capa de negocio.
11

Paso 4 Capa de negocio
En esta capa se programa las reglas pertinentes a la aplicación particular, en nuestro caso a
esta capa corresponde ejecutar las solicitudes de acceso a la información de la base de
datos, solicitada por la capa de presentación (formularios). Para este ejemplo la capa de
reglas del negocio corresponde a las clases en UML:
AgendaProveedores
Almacen
ListaPedidos
ListaNotaVenta
Pedido
Proveedor
Parte

NotaVenta
12

Clase clsParte
13

Clase clsAlmacen
14

Clase clsListaPedidos
15

Y para conexión a la BD

Se tiene la clase clsDBMySql con
los atributos que se muestran aquí
y los métodos que se muestran en
las siguiente diapositiva.
16

Métodos de la clase clsDBMySql
17

Explicación

La clase clsBdMySql sirve para realizar la conexión a la base de datos, tiene los atributos:
 Dim cadCon as String="server=localhost;user id=root; password=; database=provpar;
pooling=false"


Dim conn As MySqlConnection



Dim da As MySqlDataAdapter



Dim comando As MySqlCommand = nothing



Dim miError As String=""



Dim ps as Object
18

Explicación clase clsBdMySql - atributos

La clase clsBdMySql sirve para realizar la conexión a la base de datos, tiene los atributos:
 Dim cadCon as String="server=localhost;user id=root; password=; database=provpar;
pooling=false"
 Dim conn As MySqlConnection
 Dim comando As MySqlCommand = nothing
cadCon contiene la cadena de conexión para conectarse a un servidor local de MySql a la
base de datos provpar.
Conn en el objeto conexión que realizará el enlace a partir de la cadena de conexión.
Comando en el objeto que permitirá ejecutar los procedimientos almacenados.
19

Explicación clase clsBdMySql - métodos

La clase clsBdMySql tiene el método:
Public Sub defineSP(miSp As String )
conn = New MySqlConnection(cadCon)
comando = New MySqlCommand(miSP, conn)
comando.CommandType = CommandType.StoredProcedure
End sub
Esté método crea una conexión utilizando la cadena definida en cadCon, crea un nuevo comando
con la conexión creada y el nombre del procedimiento almacenado que le enviaron en el
parámetro miSP, indica que lo que ejecutará es un procedimiento almacenado y listo, aun no lo
ejecuta nada solo define el comando.
Explicación clase clsBdMySql - métodos

20

La clase clsBdMySql tiene el método:
Public Function agregaParametro_IN(miParametro as String, miTipo as MySql.Data.MySqlClient.MySqlDbType, miValor as
String) As Boolean
If isnothing(Me.comando ) Then
return false
End If
'si ya esta definido el comando
Dim p As New MySqlParameter("?" & miParametro, miTipo) 'MySql.Data.MySqlClient.MySqlDbType.VarChar)
p.Value = miValor
p.Direction = ParameterDirection.Input
comando.Parameters.Add(p)
return true

End Function

Esté método permite agregar al procedimiento almacenado un parámetro de entrada (Input), un
parámetro de entrada sirve para enviarle datos al SP. El SP debe estar previamente definido en el
objeto comando, el nombre del parámetro se envía en el parámetro miParametro, su tipo en miTipo y
su contenido en miValor. A partir de estos datos agrega este parámetro al SP.
Explicación clase clsBdMySql - métodos

21

La clase clsBdMySql tiene el método:
Public Function agregaParametro_OUT(miParametro as String ) As Boolean

If isnothing(Me.comando ) Then
return false
End If
'si ya esta definido el comando

ps = New MySqlParameter("?" & miParametro, MySql.Data.MySqlClient.MySqlDbType.VarChar)
ps.Value = ""
ps.Direction = ParameterDirection.InputOutput
comando.Parameters.Add(ps)
return true
End Function

Esté método permite agregar un parámetro de salida al SP que servirá para recibir una repuesta de
como se ejecute el procedimiento almacenado.
Explicación clase clsBdMySql - métodos

22

„Finalmente la clase clsBdMySql tiene el método:
Public Function ejecutaSP( ) As String

If isnothing(Me.comando ) Then
return "No se ha definido el SP"
End If
'conectar a mysql

conn.Open()
comando.ExecuteNonQuery
conn.Close()
Return ps.Value
End Function

Esté método permite ejecutar el SP previamente definido y devolver el valor de su parámetro de salida.
23

Explicación capa de negocio
A continuación la explicación del código de la capa de negocio
Clase clsAlmacen – método insertaParte

24

„Y el método de la clase clsAlmacen:
Public Function insertaParte (miP as clsParte ) As String

Dim respuesta As String=""
Dim objdb As New clsDBMySql

1

objdb.defineSP("spAltaParte")

2

objdb.agregaParametro_IN("miID",MySql.Data.MySqlClient.MySqlDbType.VarChar,mip.id)
objdb.agregaParametro_IN("miDescripcion",MySql.Data.MySqlClient.MySqlDbType.VarChar,mip.descripcion)
objdb.agregaParametro_IN("miPeso",MySql.Data.MySqlClient.MySqlDbType.Int32,mip.peso)

3

objdb.agregaParametro_IN("miColor",MySql.Data.MySqlClient.MySqlDbType.VarChar,mip.color)
objdb.agregaParametro_IN("miCU",MySql.Data.MySqlClient.MySqlDbType.Double ,mip.CU)
objdb.agregaParametro_IN("miExistencia",MySql.Data.MySqlClient.MySqlDbType.Int32 ,mip.existencia)
objdb.agregaParametro_OUT("miSalida")
respuesta= objdb.ejecutaSP()
return respuesta
End Function

4

Crea un objeto de la clase clsDBMySql (1) define el
procedimiento almacenado “spAltaParte” (2), le agrega
los parámetros que contienen los datos a insertar y un
parámetro de salida (3) y ejecuta el procedimiento alta
parte (4), finalmente devuelve la respuesta que dio el SP.
Clase clsListaPedidos– método traePedidos

25

„El método de la clase clsListaPedidos:
Public Function traePedidos As Data.DataTable
Dim t As New Data.DataTable
Dim objdb As New clsDBMySql
Dim sql As String="call spPedidos(1)"
t=objdb.traeTabla(sql)
return t
End Function
Ejecuta el procedimiento almacenado “spPedidos”
este llamado es mas fácil por que el procedimiento
almacenado no tiene parámetros que dependan de
los valores del usuario, solo el parámetro (1) que
indica el tipo de consulta que se desea (ver la
definición del SP).
26

Capa de presentación
Finalmente estamos listos para; desde la capa de presentación llamar a la
capa de negocio para que se realicen las operaciones de acceso a la base
de datos.
27

Capa de presentación – insertar parte

Para dar de alta podemos tener un
formulario con sus campos de texto y su
botón agregar.
28

Código del evento clic del botón

El evento clic del botón agregar sería:
Sub BtnAltaClick(sender As Object, e As EventArgs)
Dim miParte As New clsParte
'recuperar los datos desde los controles de interfaz
miParte.id=Me.txtID.Text
1
miParte.descripcion=Me.txtDescripcion.Text
miParte.color=Me.txtColor.Text
miParte.CU=iif(isnumeric(me.txtCU.Text),me.txtCU.Text ,0)
miParte.Peso=iif(isnumeric(Me.txtPeso.Text),Me.txtPeso.Text ,0)
miParte.Existencia=iif(isnumeric(me.txtExistencia.Text),me.txtExistencia.Text ,0)
'
Dim miAlmacen As New clsAlmacen
2
'insertar el dato en el almacen
Dim s As String= miAlmacen.insertaParte(miParte) 3
El evento clic del botón tendría el código:
Me.lblLetrero.Text=s
me.limpiaTexto()
obtiene los datos de los controles y los
End Sub
almacena en un objeto del tipo clsParte

(1), Crea un objeto del tipo clsAlmacen (2),
ejecuta el método insertaParte del objeto
de la clase clsAlmacen (3).
29

Capa de presentación – consulta datos
Suponga que para mostrar los datos de todos los pedidos tiene un formulario
con un control del tipo DataGridView llamado dgvDatos, el código del evento
Load del formulario podría quedar así:

Sub frmMostrarPartesLoad(sender As Object, e As EventArgs)
Dim a As New clsListapedidos
Me.dgvDatos.DataSource = a.traePedidos()
End Sub
30

Resumen
La capa de interfaz solo contiene los controles y el código que tienen que ver con
la presentación de los datos como colores formatos etcétera, esta capa de
presentación o interfaz toma los datos de los controles introducidos por el usuario
los almacena en algún objeto y solicita a la capa de negocio introducirlos como
en la diapositiva 24. La capa de negocio a su vez recibe los datos y solicita la
inserción a la capa de datos por medio de la ejecución de procedimientos
almacenados. De forma similar cuando se requieren consultas como en la
dispositiva 29, la capa de interfaz solicita los datos a la capa de negocio y esta a
su vez a la capa de datos.
Trabajar de esta manera ahorra mucho tiempo en el mantenimiento, por ejemplo
se puede modificar toda la interfaz sin tocar las otras capas. O se pueden
modificar los métodos de la capa de negocio solo teniendo el cuidado de
respetar los nombres y parámetros de los métodos. Se pueden optimizar los
procedimientos almacenados sin tocar nada de la codificación de la aplicación.
31

Fin
http://www.elguille.info/colabora/2007/gatonegro_parametros_MySQL.htm
http://dev.mysql.com/doc/refman/5.0/es/stored-procedure-syntax.html
http://dev.mysql.com/doc/refman/5.0/es/stored-procedures.html
http://es.slideshare.net/ltidesdaci/procedimientosalmacenados

http://fcocastan.wordpress.com/2010/12/29/procedimiento-almacenado-yestructuras-de-control-en-mysql-while-if-then-else-switch/
http://es.slideshare.net/ltidesdaci/instalaciondmysqlwamp-y-heidisql

Capa negocio con clases en VB

  • 1.
    1 Capa Negocio Usando clasesen VB Jesús Alejandro Flores Hernández
  • 2.
    2 Introducción Esta presentación muestraun ejemplo de codificación de la capa de negocio en Visual Basic, conectando con procedimientos almacenados en MySql. Objetivo. Programar la capa de negocio para la aplicación ProvPar Materias: Programación avanzada, Bases de datos Requerimientos 1. Tener la base de datos provPar en MySql (ver http://es.slideshare.net/ltidesdaci/procedimientosalmacenados) 2. Tener definidos los SP para insertar y consultar a porvPar (ver http://es.slideshare.net/ltidesdaci/capadatosconprocedimientosalmacenados) 3. Tener instalado el Sharp Develop (ver http://www.icsharpcode.net/opensource/sd/) 4. Tener instalado el controlador de MySql para NET (ver http://es.slideshare.net/ltidesdaci/instalardrivernetparamysql)
  • 3.
    3 Pasos para programarla capa de negocio Los pasos para programar nuestra capa de negocio son: Paso 1 Tener una narrativa que describa el problema Paso 2 Diseñar las clases del sistema a partir de la narrativa Paso 3 Tener programada la capa de datos del sistema (en este caso con procedimientos almacenados en MySql) Paso 4 Codificar la Capa de negocio.
  • 4.
    4 Paso 1 Crearuna aplicación para VB en Sharp Develop Suponga que se tiene una descripción de un problema ( aquí un extracto): La empresa PROVPAR.S.A. Dedicada a la venta de refacciones desea llevar el control de su información para los proveedores, partes, pedidos y notas de venta, para esto la empresa cuenta con una agenda de proveedores en donde guarda el rfc, nombre, teléfono, dirección, e-mail y calificación del proveedor, donde calificación es un número del 1 al 10 con el que nuestra empresa califica el servicio prestado por el proveedor, si una empresa tiene un servicio excelente tendrá una calificación de 10 y si es pésimo será de 0. La empresa también cuenta con una lista de partes donde almacena una clave, nombre, existencia, stock mínimo, stock máximo, peso, cc y cv, donde stock mínimo es la cantidad mínima de este artículo que la empresa requiere en existencia es decir su existencia en almacén no debe bajar de esta cantidad, stock máximo es la cantidad máxima de artículos o partes que puede almacenar la empresa en su almacén, peso es el peso de la parte en kg y será un número entero, ...
  • 5.
    5 Paso 2 Apartir de ahí se diseñaron las clases en UML
  • 6.
    6 Métodos Siguiendo el ejemplose asocia la funcionalidad (métodos) a las clases, aquí se muestran algunos que usaremos en este material: Métodos clsAlmacen  insertaParte(p as clsParte) Métodos clsListaPedidos  traePedidos
  • 7.
    7 Paso 3 Enla capa de datos se tiene En MySql se tienen los procedimientos almacenados:  spAltaParte  spPedidos
  • 8.
    8 En la capade datos se tiene el spPedidos spPedidos con el parámetro de entrada opción y devuelve la lista de pedidos según la opción 1 Todos 2 Todos con nombre de proveedor y descripción de parte, etcétera
  • 9.
    9 Y además tieneel spAltaParte El spAltaparte tiene 7 parámetros los primeros 6 (que se muestran aquí) corresponden a los valores de los campos a insertar y el séptimo es una parámetro de salida (llamado miSalida) donde se almacenará un letrero que indica si se realizó correctamente la inserción.
  • 10.
    10 Resumen paso 1,2y 3 Por lo tanto se tiene una narrativa, un diseño de clases y una capa de datos con procedimientos almacenados en MySql llamados:  spAltaParte  spPedidos A continuación la capa de negocio.
  • 11.
    11 Paso 4 Capade negocio En esta capa se programa las reglas pertinentes a la aplicación particular, en nuestro caso a esta capa corresponde ejecutar las solicitudes de acceso a la información de la base de datos, solicitada por la capa de presentación (formularios). Para este ejemplo la capa de reglas del negocio corresponde a las clases en UML: AgendaProveedores Almacen ListaPedidos ListaNotaVenta Pedido Proveedor Parte NotaVenta
  • 12.
  • 13.
  • 14.
  • 15.
    15 Y para conexióna la BD Se tiene la clase clsDBMySql con los atributos que se muestran aquí y los métodos que se muestran en las siguiente diapositiva.
  • 16.
    16 Métodos de laclase clsDBMySql
  • 17.
    17 Explicación La clase clsBdMySqlsirve para realizar la conexión a la base de datos, tiene los atributos:  Dim cadCon as String="server=localhost;user id=root; password=; database=provpar; pooling=false"  Dim conn As MySqlConnection  Dim da As MySqlDataAdapter  Dim comando As MySqlCommand = nothing  Dim miError As String=""  Dim ps as Object
  • 18.
    18 Explicación clase clsBdMySql- atributos La clase clsBdMySql sirve para realizar la conexión a la base de datos, tiene los atributos:  Dim cadCon as String="server=localhost;user id=root; password=; database=provpar; pooling=false"  Dim conn As MySqlConnection  Dim comando As MySqlCommand = nothing cadCon contiene la cadena de conexión para conectarse a un servidor local de MySql a la base de datos provpar. Conn en el objeto conexión que realizará el enlace a partir de la cadena de conexión. Comando en el objeto que permitirá ejecutar los procedimientos almacenados.
  • 19.
    19 Explicación clase clsBdMySql- métodos La clase clsBdMySql tiene el método: Public Sub defineSP(miSp As String ) conn = New MySqlConnection(cadCon) comando = New MySqlCommand(miSP, conn) comando.CommandType = CommandType.StoredProcedure End sub Esté método crea una conexión utilizando la cadena definida en cadCon, crea un nuevo comando con la conexión creada y el nombre del procedimiento almacenado que le enviaron en el parámetro miSP, indica que lo que ejecutará es un procedimiento almacenado y listo, aun no lo ejecuta nada solo define el comando.
  • 20.
    Explicación clase clsBdMySql- métodos 20 La clase clsBdMySql tiene el método: Public Function agregaParametro_IN(miParametro as String, miTipo as MySql.Data.MySqlClient.MySqlDbType, miValor as String) As Boolean If isnothing(Me.comando ) Then return false End If 'si ya esta definido el comando Dim p As New MySqlParameter("?" & miParametro, miTipo) 'MySql.Data.MySqlClient.MySqlDbType.VarChar) p.Value = miValor p.Direction = ParameterDirection.Input comando.Parameters.Add(p) return true End Function Esté método permite agregar al procedimiento almacenado un parámetro de entrada (Input), un parámetro de entrada sirve para enviarle datos al SP. El SP debe estar previamente definido en el objeto comando, el nombre del parámetro se envía en el parámetro miParametro, su tipo en miTipo y su contenido en miValor. A partir de estos datos agrega este parámetro al SP.
  • 21.
    Explicación clase clsBdMySql- métodos 21 La clase clsBdMySql tiene el método: Public Function agregaParametro_OUT(miParametro as String ) As Boolean If isnothing(Me.comando ) Then return false End If 'si ya esta definido el comando ps = New MySqlParameter("?" & miParametro, MySql.Data.MySqlClient.MySqlDbType.VarChar) ps.Value = "" ps.Direction = ParameterDirection.InputOutput comando.Parameters.Add(ps) return true End Function Esté método permite agregar un parámetro de salida al SP que servirá para recibir una repuesta de como se ejecute el procedimiento almacenado.
  • 22.
    Explicación clase clsBdMySql- métodos 22 „Finalmente la clase clsBdMySql tiene el método: Public Function ejecutaSP( ) As String If isnothing(Me.comando ) Then return "No se ha definido el SP" End If 'conectar a mysql conn.Open() comando.ExecuteNonQuery conn.Close() Return ps.Value End Function Esté método permite ejecutar el SP previamente definido y devolver el valor de su parámetro de salida.
  • 23.
    23 Explicación capa denegocio A continuación la explicación del código de la capa de negocio
  • 24.
    Clase clsAlmacen –método insertaParte 24 „Y el método de la clase clsAlmacen: Public Function insertaParte (miP as clsParte ) As String Dim respuesta As String="" Dim objdb As New clsDBMySql 1 objdb.defineSP("spAltaParte") 2 objdb.agregaParametro_IN("miID",MySql.Data.MySqlClient.MySqlDbType.VarChar,mip.id) objdb.agregaParametro_IN("miDescripcion",MySql.Data.MySqlClient.MySqlDbType.VarChar,mip.descripcion) objdb.agregaParametro_IN("miPeso",MySql.Data.MySqlClient.MySqlDbType.Int32,mip.peso) 3 objdb.agregaParametro_IN("miColor",MySql.Data.MySqlClient.MySqlDbType.VarChar,mip.color) objdb.agregaParametro_IN("miCU",MySql.Data.MySqlClient.MySqlDbType.Double ,mip.CU) objdb.agregaParametro_IN("miExistencia",MySql.Data.MySqlClient.MySqlDbType.Int32 ,mip.existencia) objdb.agregaParametro_OUT("miSalida") respuesta= objdb.ejecutaSP() return respuesta End Function 4 Crea un objeto de la clase clsDBMySql (1) define el procedimiento almacenado “spAltaParte” (2), le agrega los parámetros que contienen los datos a insertar y un parámetro de salida (3) y ejecuta el procedimiento alta parte (4), finalmente devuelve la respuesta que dio el SP.
  • 25.
    Clase clsListaPedidos– métodotraePedidos 25 „El método de la clase clsListaPedidos: Public Function traePedidos As Data.DataTable Dim t As New Data.DataTable Dim objdb As New clsDBMySql Dim sql As String="call spPedidos(1)" t=objdb.traeTabla(sql) return t End Function Ejecuta el procedimiento almacenado “spPedidos” este llamado es mas fácil por que el procedimiento almacenado no tiene parámetros que dependan de los valores del usuario, solo el parámetro (1) que indica el tipo de consulta que se desea (ver la definición del SP).
  • 26.
    26 Capa de presentación Finalmenteestamos listos para; desde la capa de presentación llamar a la capa de negocio para que se realicen las operaciones de acceso a la base de datos.
  • 27.
    27 Capa de presentación– insertar parte Para dar de alta podemos tener un formulario con sus campos de texto y su botón agregar.
  • 28.
    28 Código del eventoclic del botón El evento clic del botón agregar sería: Sub BtnAltaClick(sender As Object, e As EventArgs) Dim miParte As New clsParte 'recuperar los datos desde los controles de interfaz miParte.id=Me.txtID.Text 1 miParte.descripcion=Me.txtDescripcion.Text miParte.color=Me.txtColor.Text miParte.CU=iif(isnumeric(me.txtCU.Text),me.txtCU.Text ,0) miParte.Peso=iif(isnumeric(Me.txtPeso.Text),Me.txtPeso.Text ,0) miParte.Existencia=iif(isnumeric(me.txtExistencia.Text),me.txtExistencia.Text ,0) ' Dim miAlmacen As New clsAlmacen 2 'insertar el dato en el almacen Dim s As String= miAlmacen.insertaParte(miParte) 3 El evento clic del botón tendría el código: Me.lblLetrero.Text=s me.limpiaTexto() obtiene los datos de los controles y los End Sub almacena en un objeto del tipo clsParte (1), Crea un objeto del tipo clsAlmacen (2), ejecuta el método insertaParte del objeto de la clase clsAlmacen (3).
  • 29.
    29 Capa de presentación– consulta datos Suponga que para mostrar los datos de todos los pedidos tiene un formulario con un control del tipo DataGridView llamado dgvDatos, el código del evento Load del formulario podría quedar así: Sub frmMostrarPartesLoad(sender As Object, e As EventArgs) Dim a As New clsListapedidos Me.dgvDatos.DataSource = a.traePedidos() End Sub
  • 30.
    30 Resumen La capa deinterfaz solo contiene los controles y el código que tienen que ver con la presentación de los datos como colores formatos etcétera, esta capa de presentación o interfaz toma los datos de los controles introducidos por el usuario los almacena en algún objeto y solicita a la capa de negocio introducirlos como en la diapositiva 24. La capa de negocio a su vez recibe los datos y solicita la inserción a la capa de datos por medio de la ejecución de procedimientos almacenados. De forma similar cuando se requieren consultas como en la dispositiva 29, la capa de interfaz solicita los datos a la capa de negocio y esta a su vez a la capa de datos. Trabajar de esta manera ahorra mucho tiempo en el mantenimiento, por ejemplo se puede modificar toda la interfaz sin tocar las otras capas. O se pueden modificar los métodos de la capa de negocio solo teniendo el cuidado de respetar los nombres y parámetros de los métodos. Se pueden optimizar los procedimientos almacenados sin tocar nada de la codificación de la aplicación.
  • 31.