SlideShare una empresa de Scribd logo
1 de 103
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 1
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Universidad Nacional de Ingeniería
UNI - FEC
Administradores de bases de datos y SQL SERVER.
Unidad III: Programacion por capas en Visual Basic .Net.
Programación por peldaños o capas en Tres Capas.
Creación de Capas en una solución.
Conexión con SQL Server en el uso de Capas.
Definición de los datos en cada una de las Capas.
Compilación de los datos e instrucciones en cada una de las capas.
Establecer referencias entre capas.
Procedimientos almacenados para recuperar datos en capas.
Programar y codificar cada una de las capas.
Prof. Giovanni Francisco Sáenz Araica.
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 2
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Tabla de contenidos: - Contenido
Unidad III: Programacion por capas en Visual Basic .Net. .................................................................................1
Tabla de contenidos: ...........................................................................................................................................2
Programación en Tres Capas .............................................................................................................................4
Paso1: Crear una solución en blanco. ............................................................................................................4
Paso2: creación de la Biblioteca de clases.....................................................................................................5
Crear la Capa de Entidad ................................................................................................................................6
Agregar la Capa de Datos: ..............................................................................................................................7
Agregar la Capa de Negocio: ........................................................................................................................10
Crear la Capa de Presentación para entorno de Windows: .........................................................................13
Desarrollo en las capas.....................................................................................................................................18
Programación en la capa Entidad .................................................................................................................18
Establecer conexión con la base de datos....................................................................................................19
Agregar una nueva conexión al proyecto:.....................................................................................................19
Programación de la capa de Entidad ............................................................................................................25
Eliminar archivo de clase Class1.vb..........................................................................................................25
Crear el archivo de clase CustomersEntidad.vb .......................................................................................26
Incorporación de instrucciones a la clase CustomersEntidad.vb..............................................................27
Utilizar el asistente para agregar fragmento de código en la clase ..........................................................28
Definiendo las propiedades dentro de la clase CustomersEntidad.vb......................................................31
Nota del ejemplo:........................................................................................................................................41
Programación en capa de datos....................................................................................................................46
Eliminar archivo de clase Class1.vb..........................................................................................................46
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 3
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Crear el archivo de clase CustomersDatos.vb..........................................................................................48
Agregar la referencia a la capa de datos ......................................................................................................50
Crear un procedimiento que devuelva los clientes por una ciudad ..............................................................55
Agregar una variable de tipo conexión..........................................................................................................56
Crear procedimiento almacenado .................................................................................................................64
Mejoras a realizar en la capa de datos: ........................................................................................................66
Capa de Negocios .........................................................................................................................................68
Eliminar archivo de clase Class1.vb..........................................................................................................68
Crear el archivo de clase CustomersNegocio.vb ......................................................................................69
Agregar la referencia a la capa de datos ......................................................................................................71
Observar archivo CustomersNegocios.vb en la capa de negocio: ...........................................................74
Nota ............................................................................................................................................................75
Programación en la capa de presentación....................................................................................................77
Eliminar archivo de clase Class1.vb..........................................................................................................77
Crear el formulario Clientes.vb...................................................................................................................78
Tabla de Objetos en el formulario Clientes ...................................................................................................80
Codificación del formulario Clientes ..............................................................................................................82
Agregar la referencia a la capa de Presentación..........................................................................................83
Programando la presentación de datos en el formulario Clientes................................................................86
Establecer el formulario que iniciara el proyecto: .........................................................................................87
Corrida del proyecto por capas .....................................................................................................................91
Tareas a realizar:...............................................................................................................................................93
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 4
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Programación en Tres Capas
Para poder programar en capas, se debe seguir cierta estructura, la que se muestra a
continuación, es una propuesta, sin embargo, existen otras formas de hacer que los peldaños
funcionen sin problemas. Al mostrar esta forma, y consultarla con colegas, me indican que no es la
forma tradicional en que se ha trabajado por parte de ellos, bueno, si ya han programado ustedes,
es un buen momento para analizar, y si tienes algo revolucionario y nuevo, no dudes en escribirme
y mandarme esos detalles que serán de mucho provecho, tanto para el ámbito profesional, así
como académico.
Paso1:Crearuna solución en blanco.
Crear una solución en blanco, entonces en la opción de crear nuevo proyecto, seleccione otros
tipos de proyectos, dentro de esta, buscar soluciones de Visual Studio:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 5
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Paso2: creaciónde la Biblioteca de clases.
Se debe ir al explorador de soluciones, visualizar el contenido de esta, así como, estar claro que
este ejemplo parte de que se está en un proyecto en blanco.
Entonces, ver el explorador de soluciones:
Colocarse sobre el explorador de soluciones, dar click derecho, aparecerá la opción de agregar
nuevo proyecto, entonces seleccione el nuevo proyecto, como se muestra en la siguiente figura:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 6
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Crear la Capa de Entidad
Continúe, ahora debe crear la Capa de Entidad, la cual debe ser una librería de clases, sin
embargo, observe como se presentará la ventana de nuevo proyecto:
Les aparecerá en el proyecto de tipo inteligencia de negocios, usted debe hacer los ajustes:
Cambiar a aplicación para Visual Basic, luego seleccionar que es para Windows, posteriormente
librería de clases y colocar el nombre de Capa Entidad, ahora hágalo usted:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 7
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Dentro de la ventana agregar un objeto, seleccione una librería de clases y establezca el nombre
de Capa Entidad:
Una vez realizado el paso anterior, se le presentara en pantalla la siguiente imagen:
Con esto, puede observar que se ha podido crear la capa de entidades, posteriormente en esta
práctica, usted agregara todo lo correspondiente a esta capa.
Agregar la Capa de Datos:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 8
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Los pasos se pueden repetir para agregar la capa de datos, sin embargo, se vuelve a mostrar:
Ir al menú principal y selección en archivo agregar, posteriormente elegir nuevo proyecto, ver
siguiente imagen:
Ir a la parte de archivo y buscar la opción agregar un nuevo proyecto, se mostrará lo siguiente:
Aparece nuevamente la opción de crear una nueva librería de clases (ya que esto fue lo último
que diseño), entonces proceda a crear la capa de datos, escriba su nombre y observe que sucede:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 9
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Dentro de la ventana agregar un objeto, seleccione una librería de clases y establezca el nombre
de Capa Datos:
Al completarse la operación anterior, usted observara que en las ventanas de programación se
muestran los siguientes detalles:
Lo primero es que se ubicará sobre la capa de datos, luego que, en la parte de la ventana del
explorador de soluciones, usted podrá observar las dos capas que se han incorporado como parte
de su solución llamada Tres Capas.
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 10
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Lo segundo, es que podrá ver que, en la solución, se han incorporado nuevos elementos, visibles
desde su creación, no obstante, deberán moldearse para recuperar y manejar los datos:
Agregar la Capa de Negocio:
En este momento, debe agregar la capa de negocios, para hacer posible esto, usted debe repetir
los pasos anteriores, los cuales se le detallan para que no pierda el rastro de esta práctica:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 11
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Si recuerda, click derecho sobre la solución de Tres Capas, luego buscar la opción de agregar, y
de las posibles selecciones elegir nuevo proyecto, ahora repita usted los pasos aplicándolos en el
proyecto de Tres Capas.
Nuevamente seleccione en el tipo de proyecto Visual Basic, luego elegir que este es para
Windows, en la parte derecha que es una librería de clases y por último en la parte inferior, que
este se llamará Capa Negocio, hacerlo en su proyecto ahora:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 12
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Como resultado de la operación anterior, usted podrá observar en el explorador de soluciones las
tres capas, las cuales son Datos, Entidad y Negocio:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 13
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Lo tercero, es que podrá ver que, en la solución, se han incorporado nuevos elementos, visibles
desde su creación, sin embargo, deberán moldearse para recuperar y manejar los objetos, así
como datos:
Crear la Capa de Presentación para entornode Windows:
Para fines y efectos, esta es la capa que se utilizara para presentar la información del proyecto,
así como los datos e información del mismo proyecto. En este caso, se dejará el nombre de
Presentación Windows (un detalle importante, es que este nuevo objeto, es de tipo aplicación de
Windows, observar ese pequeño y significativa referencia), los pasos a realizar son los siguientes:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 14
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
En este momento, debe agregar la capa de presentación, para hacer posible esto, usted debe
repetir los pasos anteriores, los cuales se le detallan para que no pierda el rastro de esta práctica:
Luego de realizado el paso anterior, entonces, observe que usted está haciendo el llamado a una
aplicación de Windows, el cual se incorporara como capa a la solución, ver siguiente página:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 15
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Agregando la capa de presentación de Windows de la solución de tres capas:
Al hacer lo anterior, entonces observara en pantalla lo siguiente:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 16
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Se han creado las capas, así como también se ha incorporado el lugar donde se mantendrán los
formularios y presentación de datos, mientras que en el explorador de soluciones usted podrá
visualizar lo siguiente, ver la figura a continuación:
Se observa la estructura de capas, así como estará distribuida la asignación de funciones y roles
entre las capas, lo cual sigue a continuación:
La capa de entidad y la capa de datos, hacen una sola capa, la capa de datos extraer los datos de
la base de datos directamente y esta la manipula, esta lo entrega a la capa de negocio en forma
de objetos, permite verificar, plantear las reglas de negocios para poder entregar los datos
procesados para ser entregados a la capa de presentación, mientras que la capa de presentación
puede ser de tipo Windows o Webs, para este ejemplo, se está desarrollando en la parte
Windows.
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 17
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 18
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Desarrollo en las capas
A continuación, se procede a la programación de cada una de las capas antes definidas, observe
cada uno de los pasos que se muestran a partir de este momento, así como no pierda el hilo de
cada capa.
Programación en la capa Entidad
Contiene clases que permite tener propiedades semejantes a los campos de las tablas de la base
de datos. Para esta práctica, se utilizará la base de datos NorthWind, la cual la primera misión es
enlazarse ya sea de forma conectada (con el asistente de .Net) o desconectada (utilizando código
de programación), sin embargo, desde este momento y como tarea de esta práctica, ustedes
deben trabajar en sus proyectos, los cuales se deben mostrar con detalle de esos avances en la
siguiente sesión de clases.
Recordando los pasos que se han realizado en los módulos anteriores, ir al menú de Studio .NET,
seleccionar la opción ver, y buscar el explorador de servidores, repita estos pasos usted:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 19
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Entonces, al hacer click en el icono de explorador de servidores se abrirá la ventana corresponde
a esa opción y usted podrá ver lo siguiente:
Establecer conexión con la base de datos
Quizás como en este caso, no se muestre ninguna conexión, entonces proceda a establecer la
conexión con la base de datos NorthWind (esta es la base de datos que se ha utilizado en los
cursos anteriores, sin embargo, si no tiene en SQL Server estos datos, considere la restauración y
búsqueda previa del Backup, por favor considere todos los escenarios para que no existan
problemas, mientras tanto, y suponiendo que ya tiene la base de datos, siga los pasos que se
muestran a continuación).
Agregar una nuevaconexión alproyecto:
Sobre el icono de conexión de datos, hacer click derecho y seleccionar agregar una nueva
conexión:
Se mostrará la ventana donde usted debe establecer las propiedades de conexión:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 20
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Ventana que establece la conexión con la base de datos:
Recuerde que usted tiene varias formas de asignar el nombre del servidor (en los cursos
anteriores se han mostrado más de cuatro formas), la cual una de ellas es:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 21
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Buscar la ventana de propiedades del sistema operativo, y establecer el nombre del servidor, esta
una forma de poder hacer posible este paso:
Observe, que cuando el nombre esta correcto, usted podrá ver activo el ComboBox
correspondiente a las bases de datos disponibles, en caso contrario, no es ese el nombre del
servidor, ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 22
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Al establecer el nombre del servidor, se observan cambios:
Falta definir la base de datos a la cual se conecta, en este sentido, usted deberá elegir la base de
datos northwind, ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 23
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Buscar la base de datos a la cual se conectará, no se debe de escribir, sino que usted la debe
buscar en el ComboBox, sino aparece, es probable que no sea ese el nombre de su servidor:
Después de este momento, de ser exitosa la conexión, usted podrá observar cada uno de los
datos que se han almacenado en la base de datos northwind, ver gráfico en la siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 24
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
En la ventana del explorador de servidores podrá observar que es visible las tablas, los diagramas
de la base de datos, las vistas, los procedimientos almacenados, funciones creadas por usuarios y
otros:
Seguir en la siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 25
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Programación de la capa de Entidad
Una vez establecida la conexión con la base de datos, lo que sigue es programar las capas, en
este sentido, se inicia con la capa entidad e inicia programando la clase CustomersEntidad.vb, sin
embargo, debe eliminar la clase Class1.vb y agregar esa nueva clase.
Eliminar archivo de clase Class1.vb
Ubicarse sobre la ventana del explorador de Soluciones, posteriormente elimine el archivo clase
Class1.vb:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 26
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Le debe aparecer al eliminar la clase Class1.vb esa ventana o mensaje, donde le indica que será
eliminada esa clase, solo dar aceptar:
Crear el archivo de clase CustomersEntidad.vb
Esto es simplemente, agregar una clase dentro de la capa entidad con el nombre de
CustomersEntidad.vb, ver dibujo:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 27
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Visualizar el archivo clase CustomersEntidad.vb en la ventana del explorador de soluciones:
Incorporación de instrucciones a la clase CustomersEntidad.vb
Ahora insertar fragmento de código dentro de CustomersEntidad.vb, o hacer doble click sobre el
archivo que se ha detallado en este momento:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 28
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Utilizar el asistente para agregar fragmento de código en la clase
Insertar fragmento de código, click derecho dentro del bloque de la clase CustomersEntidad:
Posteriormente, buscar la opción de códigos comunes, proceda a realizar esta acción usted
mismo:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 29
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Seguir invocando al asistente de código, recuerde click derecho y busque opción específica:
Ahora, definir una propiedad, ver los detalles, usted debe elegir propiedades:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 30
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Seleccione que usted debe definir una propiedad:
Al finalizar cada uno de los pasos anteriores, usted podrá ver que se generará el código
correspondiente a las propiedades.
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 31
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Definiendo las propiedades dentro de la clase CustomersEntidad.vb
Contiene dos partes, básicamente, la declaración de la variable entidad, en este caso se
denominara _CustomersID, sin embargo aparece otro nombre por defecto, será de tipo entero,
igualmente, el nombre de la propiedad se tiene que ajustar a CustomerID() .
Public Class CustomersEntidad
Private _CustomersID As Integer
Public Property CustomersID() As String
Get
Return _CustomersID
End Get
Set(ByVal value As String)
_CustomersID = value
End Set
End Property
End Class
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 32
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Reajustando el código, entonces ustedes tendrán en pantalla el siguiente resultado:
Ahora incorporando el siguiente campo como parte de las propiedades de la clase
CustomersEntidad.
Nuevamente repetir los pasos, recordar que contiene dos partes, la declaración de la variable
entidad, en este caso se denominará _CustomersName, será de tipo String, el nombre de la
propiedad CustomersName (), ver siguiente página.
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 33
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Repetir pasos para la incorporación de una nueva propiedad, en este momento será la del campo
CustomersName:
La segunda propiedad se llamara _CompanyName de tipo String y la propiedad CompanyName(),
para hacer posible esto, se deben repetir los pasos y hacer posteriormente los ajustes al código.
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 34
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Se repiten nuevamente los pasos, al igual que el campo anteriormente trabajado:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 35
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Nuevamente repita los mismos pasos para crear una nueva propiedad:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 36
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Se repiten nuevamente los pasos, al igual que el campo anteriormente trabajado:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 37
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Reajustando el código, entonces ustedes tendrán en pantalla el siguiente resultado:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 38
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Observe, debe reajustando el código, entonces ustedes tendrán en pantalla el siguiente resultado:
Se deben realizar los siguientes ajustes:
La segunda propiedad se debe llamar _CompanyName de tipo String y la propiedad
CompanyName(), realizar los ajustes al código.
Public Class CustomersEntidad
Private _CustomersID As Integer
Public Property CustomersID() As String
Get
Return _CustomersID
End Get
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 39
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Set(ByVal value As String)
_CustomersID = value
End Set
End Property
Private _CompanyName As String
Public Property CompanyName() As String
Get
Return _CompanyName
End Get
Set(ByVal value As String)
_CompanyName = value
End Set
End Property
End Class
Ahora incorporando todos los campos a la clase (esto es solo para el profesor, los estudiantes
deben practicarlo):
Public Class CustomersEntidad
Private _CustomersID As Integer
Public Property CustomersID() As String
Get
Return _CustomersID
End Get
Set(ByVal value As String)
_CustomersID = value
End Set
End Property
Private _CompanyName As String
Public Property CompanyName() As String
Get
Return _CompanyName
End Get
Set(ByVal value As String)
_CompanyName = value
End Set
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 40
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
End Property
Private _ContactName As String
Public Property ContactName() As String
Get
Return _ContactName
End Get
Set(ByVal value As String)
_ContactName = value
End Set
End Property
Private _Address As String
Public Property Address() As String
Get
Return _Address
End Get
Set(ByVal value As String)
_Address = value
End Set
End Property
Private _Region As String
Public Property Region() As String
Get
Return _Region
End Get
Set(ByVal value As String)
_Region = value
End Set
End Property
Private _PostalCode As String
Public Property PostalCode() As String
Get
Return _PostalCode
End Get
Set(ByVal value As String)
_PostalCode = value
End Set
End Property
Private _Country As String
Public Property Country() As String
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 41
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Get
Return _Country
End Get
Set(ByVal value As String)
_Country = value
End Set
End Property
Private _Phone As String
Public Property Phone() As String
Get
Return _Phone
End Get
Set(ByVal value As String)
_Phone = value
End Set
End Property
Private _Fax As String
Public Property Fax() As String
Get
Return _Fax
End Get
Set(ByVal value As String)
_Fax = value
End Set
End Property
End Class
Nota del ejemplo:
Gracias a la colaboración del colega J. Díaz Chow, me hace una mejor propuesta, y es cambiar a
espacios de nombres, esto es, para el manejo de datos, eso es lo que se requiere, por ende, eso
hará que sea mucho más flexible el acceso a estos, ver entonces como queda el ajuste a esta
información:
Namespace Capa_Entidad
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 42
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Public Class CustomersEntidad
Private _CustomersID As String
Public Property CustomersID() As String
Get
Return _CustomersID
End Get
Set(ByVal value As String)
_CustomersID = value
End Set
End Property
Private _CompanyName As String
Public Property CompanyName() As String
Get
Return _CompanyName
End Get
Set(ByVal value As String)
_CompanyName = value
End Set
End Property
Private _ContactName As String
Public Property ContactName() As String
Get
Return _ContactName
End Get
Set(ByVal value As String)
_ContactName = value
End Set
End Property
Private ContactTitle As String
Public Property _ContactTitle() As String
Get
Return ContactTitle
End Get
Set(ByVal value As String)
ContactTitle = value
End Set
End Property
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 43
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Private _Address As String
Public Property Address() As String
Get
Return _Address
End Get
Set(ByVal value As String)
_Address = value
End Set
End Property
Private City As String
Public Property _City() As String
Get
Return City
End Get
Set(ByVal value As String)
City = value
End Set
End Property
Private _Region As String
Public Property Region() As String
Get
Return _Region
End Get
Set(ByVal value As String)
_Region = value
End Set
End Property
Private _PostalCode As String
Public Property PostalCode() As String
Get
Return _PostalCode
End Get
Set(ByVal value As String)
_PostalCode = value
End Set
End Property
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 44
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Private _Country As String
Public Property Country() As String
Get
Return _Country
End Get
Set(ByVal value As String)
_Country = value
End Set
End Property
Private _Phone As String
Public Property Phone() As String
Get
Return _Phone
End Get
Set(ByVal value As String)
_Phone = value
End Set
End Property
Private _Fax As String
Public Property Fax() As String
Get
Return _Fax
End Get
Set(ByVal value As String)
_Fax = value
End Set
End Property
End Class
End Namespace
Observar en su código ahora, ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 45
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 46
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Programación en capa de datos
Ya se ha programado la capa de entidad, a partir de este momento se procede a la capa de datos,
no pierda los pasos, cada detalle es sumamente importante.
Eliminar archivo de clase Class1.vb
Ubicarse sobre la ventana del explorador de Soluciones, posteriormente elimine el archivo clase
Class1.vb:
Ver siguiente página:
Le debe aparecer al eliminar la clase Una vez eliminado el archivo, proceda a crear una
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 47
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Class1.vb esa ventana o mensaje, donde le
indica que será eliminada esa clase, solo dar
aceptar:
nueva clase con el nombre de CustomersDatos.vb:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 48
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Crear el archivo de clase CustomersDatos.vb
Esto es simplemente, agregar una clase dentro de la capa entidad con el nombre de
CustomersDatos.vb, ver dibujo:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 49
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Visualizar el archivo clase CustomersDatos.vb en la ventana del explorador de soluciones:
A continuación, se deben agregar las referencias de datos a la capa, ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 50
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Agregar la referencia a la capa de datos
Observar los pasos que se deben de seguir, no perder el hilo, lo primero es click derecho sobre la
capa de datos, luego buscar la opción de agregar referencias, hacer esto mismo usted en su
ventana de explorador de soluciones:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 51
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Entonces aparecerá la ventana de referencias, la cual usted debe seleccionar en la pestaña de
Proyectos su referencia, en este momento, es lo que se muestra inicialmente:
Ahora moverse a la pestaña de proyectos, ver en siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 52
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Selecciones únicamente la capa de entidad en este momento para la capa de datos:
Continuar como se indica en la siguiente página, antes presione el botón OK:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 53
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Observe como se incorporan las referencias al proyecto:
Ubicarse en la capa de datos y hacer click en el
icono para ver todos los archivos:
Buscar las referencias de la capa de datos:
Agregar las importaciones a la capa de datos, esto para que las referencias sean efectivas y
algunos espacios de nombres que son necesarios para el manejo de datos.
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 54
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Observe en la ventana de la clase CustomersDatos.vb, se ha incorporado las referencias como
importaciones, ver esto en su proyecto y solución:
Este es el código que usted observara dentro de la clase CustomersDatos, lo descrito y marcado
en amarillo expresa el código que se incorpora de forma automática:
Imports Capa_Entidad
Imports System.Data
Imports System.Data.SqlClient
Public Class CustomersDatos
End Class
Crear un procedimiento que devuelva los clientes por una ciudad, esto lo puede visualizar en la
siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 55
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Crear un procedimiento que devuelvalos clientespor una ciudad
Para hacer posible esta práctica, usted debe poder recordar los conceptos de creación de
funciones y sus respectivas definiciones, además de lista:
Ventana de la clase CustomersDatos, agregar el código que se muestra en la pantalla:
Agregar una variable de tipo conexión, esto se realizará en la siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 56
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Agregar una variable de tipo conexión
Agregar una variable de tipo conexión a la capa de datos:
Observar que usted está seleccionando a las propiedades de la capa de datos, esta lo enviara a la
opción de proyectos del menú, en la parte de propiedades del proyecto, ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 57
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Aparecerá por defecto esta ventana, sin embargo, debe irse a la opción de ajustes (settings)
posteriormente:
Al estar en esta opción de ajuste, ver esta imagen:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 58
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Agregar la variable, colocar el nombre de Cnn:
Definir que es de tipo de conexión:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 59
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
En la opción de scope o alcance debe seleccionar aplicación:
Lo siguiente es el valor, esta se conectará a la base de datos, ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 60
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Nuevamente configure la conexión como si fuese a conectarse a la base de datos nuevamente,
sin embargo, esta será la configuración de la variable:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 61
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Prácticamente es como repetir los pasos, ver que es lo mismo que se hizo antes:
Probar la conexión:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 62
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Observe el resultado de la operación, ya está preparado todo, salve o guarde:
Volver a la programación de la función:
Imports Capa_Entidad
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.SqlServer
Public Class CustomersDatos
Dim cnn As New SqlConnection(My.Settings.Cnx)
Public Function ListarClientesPorCiudad(ByVal Ciudad As String) As List(Of CustomersEntidad)
'Crear una lista de tipo Customers
Dim lista As New List(Of CustomersEntidad)
'Crear un objeto de tipo conexión
'Using cnn As SqlConnection(My.Setting.)
'Using cnn As SqlConnection(My.Settings.CnnSQL)
'Using cnn1 As New cnn
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 63
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
'End Using
'cnn()
'End Using
cnn.Open()
Dim cmd As New SqlCommand("ClientePorCiudad", cnn)
'Dim c1 As SqlConnection
' End Using
End Function
End Class
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 64
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Crear procedimiento almacenado
Se debe crear un procedimiento almacena, ver los pasos a seguir:
Detalles del procedimiento almacena, el cual ustedes lo pueden interpretar en qué consiste:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 65
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
CREATE PROCEDURE dbo.ClientePorCiudad
(
@Ciudad as NVarchar(15)
)
AS
Select CustomerID,CompanyName,ContactName,ContactTitle,Address,City,Region
From Customers
Where (city = @Ciudad)
RETURN
Una variación al caso anterior, me lo brinda el profesor José Díaz Chow también tu lo puedes
comprobar:
USE [Northwind]
GO
SET ANSI_NULLS ON
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 66
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: José Díaz Chow / Giovanni Sáenz
-- Create date: 19/03/2012
-- Description: Lista los Clientes que residen en la ciudad pasada como parámetro. --
=============================================
Ejecución del procedimiento almacenado:
---- Exec ClientePorCiudad 'London' –
Creación del procedimiento almacenado:
CREATE PROCEDURE [dbo].[ClientePorCiudad]
@Ciudad nvarchar(15)
AS
BEGIN
SET NOCOUNT ON;
SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region,
PostalCode, Country, Phone, Fax
FROM dbo.Customers
WHERE City like @Ciudad;
END
Mejoras a realizar en la capa de datos:
Algunos problemas que se presentan en esta capa, es agregar la referencia de la librería a los
objetos de tipo List, por tal motivo en este bloque usted ya los prodrá observar, al igual que antes,
ver estos detalles a continuación:
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
Public Class CustomersDatos
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 67
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Dim cnn As New SqlConnection(My.Settings.CnnSQL)
Public Function ListarClientesPorCiudad(ByVal Ciudad As String) As List(Of CustomersEntidad)
Dim lista As New List(Of CustomersEntidad)
cnn.Open()
Dim cmd As New SqlCommand("ClientePorCiudad", cnn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@Ciudad", Ciudad)
Dim dr As SqlDataReader
dr = cmd.ExecuteReader
While dr.Read
Dim regist As New CustomersEntidad
With regist
.CustomersID = IIf(dr.GetValue(0) Is DBNull.Value, "", dr.GetValue(0))
.CompanyName = IIf(dr.GetValue(1) Is DBNull.Value, Nothing, dr.GetValue(1))
.ContactName = IIf(dr.GetValue(2) Is DBNull.Value, Nothing, dr.GetValue(2))
._ContactTitle = IIf(dr.GetValue(3) Is DBNull.Value, Nothing, dr.GetValue(3))
.Address = IIf(dr.GetValue(4) Is DBNull.Value, Nothing, dr.GetValue(4))
._City = IIf(dr.GetValue(5) Is DBNull.Value, Nothing, dr.GetValue(5))
.Region = IIf(dr.GetValue(6) Is DBNull.Value, Nothing, dr.GetValue(6))
.PostalCode = IIf(dr.GetValue(7) Is DBNull.Value, Nothing, dr.GetValue(7))
.Country = IIf(dr.GetValue(8) Is DBNull.Value, Nothing, dr.GetValue(8))
.Phone = IIf(dr.GetValue(9) Is DBNull.Value, Nothing, dr.GetValue(9))
.Fax = IIf(dr.GetValue(10) Is DBNull.Value, Nothing, dr.GetValue(10))
End With
lista.Add(regist)
End While
Return lista
dr.Close()
cnn.Close()
cnn.Dispose()
End Function
End Class
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 68
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Capa de Negocios
A continuación, se procede con la programación de la capa de negocios, la cual inicia con la
eliminación de la clase Class1.vb que está en la capa Negocios, practicante usted repetirá los
pasos antes detallados, ver imágenes:
Eliminar archivo de clase Class1.vb
Ubicarse sobre la ventana del explorador de
Soluciones, posteriormente elimine el archivo
clase Class1.vb:
Debe aparecer al intentar eliminar la clase
Class1.vb esa ventana o mensaje, donde le
indica que será eliminada esa clase, solo dar
aceptar:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 69
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Crear el archivo de clase CustomersNegocio.vb
Una vez eliminado el archivo, proceda a crear una nueva clase con el nombre de
CustomersNegocio.vb:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 70
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Esto es simplemente, agregar una clase dentro de la capa entidad con el nombre de
CustomersNegocio.vb, ver dibujo:
Una vez visible el archivo CustomersNegocio.vb, podrá abrirlo, ver en su pc:
Ver siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 71
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Agregar la referencia a la capa de datos
Observar los pasos que se deben de seguir, no perder el hilo, lo primero es click derecho sobre la
capa de datos, luego buscar la opción de agregar referencias, hacer esto mismo usted en su
ventana de explorador de soluciones:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 72
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Entonces aparecerá la ventana de referencias, la cual usted debe seleccionar en la pestaña de
Proyectos su referencia, en este momento, es lo que se muestra inicialmente:
Ahora moverse a la pestaña de proyectos, ver en siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 73
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Aparecerá la ventana que se muestra en este momento, por defecto saldrá la capa de datos, ver
imagen:
No se apresure a tocar el o presionar el botón OK, observe la siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 74
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Debe seleccionar las dos capas, la de entidad y la de datos, utilizar Shift y ratón izquierdo, o
también, Ctrl y ratón izquierdo para activar las dos capas, luego presione el botón Ok:
Continuar como se indica en la siguiente página, antes presione el botón OK.
Observar archivo CustomersNegocios.vb en la capa de negocio:
Ahora visualizar el archivo CustomersNegocios.vb y observe si coincide este código con sus
instrucciones:
Imports Capa_Datos
Imports Capa_Entidad
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
Namespace Capa_Negocio
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 75
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Public Class CustomersNegocio
Dim Lista1 As List(Of CustomersEntidad)
Dim Obj1 As CustomersDatos
Public Function MostrarClientes(ByVal Ciudad As String) As List(Of CustomersEntidad)
'Dim lista As List(Of CustomersEntidad)
' Dim Lista1 As System.Collections.Generic.List(Of
Capa_Entidad.Capa_Entidad.CustomersEntidad)
'Dim Obj1 As System.Collections.Generic.List(Of Capa_Datos.CustomersDatos)
'Dim Obj As List(Of CustomersDatos)
'Hay que ajustar la referenicacrear ListarClientesPorCiudad(Ciudad)
'lista = New List(Of CustomersEntidad)
Lista1 = New List(Of CustomersEntidad)
Obj1 = New CustomersDatos
'No se logra levantar el listado de los clientes por ciudad.
Lista1 = Obj1.ListarClientesPorCiudad(Ciudad)
Return Lista1
End Function
End Class
End Namespace
En la siguiente página, se podrá observar cómo se mirará la capa de negocios del proyecto que se
está desarrollando en este momento.
Nota
Un detalle, es recomendable antecederle espacio de nombre Capa_Negocio superior a la
clase de capa de negocio, esto garantiza optimizar todas las operaciones dentro de la clase.
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 76
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Observe como se muestra el archivo de la capa de negocios en el proyecto:
Hasta este momento está configurado la capa de negocios, continuar con el desarrollo del
programa, ver siguiente página.
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 77
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Programación en la capa de presentación
Esta es la última capa que falta por programar, igual que el caso anterior, se deben hacer ajustes,
se inicia con esa parte.
Eliminar archivo de clase Class1.vb
Ubicarse sobre la ventana del explorador de Soluciones, posteriormente elimine el archivo clase
Form1.vb:
Le debe aparecer al eliminar la clase
Form1.vb esa ventana o mensaje, donde le
Una vez eliminado el archivo, proceda a crear un
nuevo formulario, seguir los pasos que se muestra:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 78
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
indica que será eliminada esa clase, solo
dar aceptar:
Crear el formulario Clientes.vb
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 79
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Esto es simplemente, agregar una clase dentro de la capa entidad con el nombre de Clientes.vb,
ver dibujo:
Visualizar el archivo clase Clientes.vb en la ventana del explorador de soluciones:
Ahora bien, debe agregar algunos objetos, los cuales son un label, un textbox, un botón y un
datagridview, los detalles son los siguientes:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 80
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Tabla de Objetos en elformulario Clientes
Tabla de Objetos:
Objeto Propiedades Valore Observaciones
Label Name LblCiudad
TextBox Name TxtCiudad Es aquí donde el
usuario establecerá el
nombre de la ciudad
Botton Name CmdMostrar Se debe activar
cuando se haga click
en él.
DataGridView Name DataGridViewClientes Se debe llenar cuando
exista coincidencia
entre los datos
escritos en el textbox y
la base de datos, junto
con el evento del
botón.
Ver siguiente página:
Usted podrá originalmente colocar los objetos de esta forma:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 81
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Se tienen que hacer los ajustes para que se observe de la siguiente forma:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 82
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Codificacióndel formulario Clientes
Ahora proceda a la codificación del formulario
Observe la clase formulario Clientes:
Ahora agregar referencias al proyecto:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 83
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Agregar la referencia a la capa de Presentación
Observar los pasos que se deben de seguir, no perder el hilo, lo primero es click derecho sobre la
capa de datos, luego buscar la opción de agregar referencias, hacer esto mismo usted en su
ventana de explorador de soluciones:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 84
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Entonces aparecerá la ventana de referencias, la cual usted debe seleccionar en la pestaña de
Proyectos su referencia, en este momento, es lo que se muestra inicialmente:
Ahora moverse a la pestaña de proyectos, ver en siguiente página:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 85
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Selecciones únicamente la capa de entidad en este momento para la capa de negocio:
Proceda a realizar las importaciones de las capas:
Imports Capa_Entidad
Imports Capa_Negocio
Public Class Clientes
End Class
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 86
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Si lo anterior presenta problemas en la codificación, entonces puede utilizar el siguiente código
alternativo, esto en las importaciones:
Imports Capa_Negocio.Capa_Negocio
'Imports Capa_Entidad
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
Programando lapresentación de datos en el formulario Clientes
Proceda a agregar el siguiente código a su formulario, lo que exactamente debe ajustar es lo que
está indicado en color amarillo:
Imports Capa_Negocio.Capa_Negocio
'Imports Capa_Entidad
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
'Namespace Capa_Presetancion_Windows
Public Class Clientes
Dim lista As New List(Of CustomersEntidad)
Dim objCliente As New CustomersNegocio
Private Sub CmdMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles CmdMostrar.Click
'Trim cadena para que el usuario no escriba espacios en blanco.
lista = Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.Trim)
Me.DataGridViewClientes.DataSource = lista
End Sub
End Class
'End Namespace
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 87
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Establecer elformulario que iniciara el proyecto:
Si está utilizando varios formularios y proyectos, recuerde establecer que formulario inicia la
corrida en este programa:
Hacer ajustes y establezca al formulario cliente como formulario de inicio:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 88
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Definir que el formulario Clientes es el que iniciara en la presentación del proyecto:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 89
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Definir que el formulario Clientes es el que arranca en la presentación del proyecto:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 90
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 91
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Corrida del proyecto por capas:
Una vez finalizado cada uno de los ajustes, solo queda la ejecución, realizar esta tarea:
Solo quedara visualizar el resultado de la ejecución:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 92
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 93
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Tareas a realizar:
Se deben realizar cada una de las siguientes actividades:
1) Efectuar cada uno de los mismos pasos antes concluidos y aplicarlos a los datos de la tabla
Clientes, órdenes y productos. Recuerde incluir un formulario principal donde se invoque al
resto de los formularios.
2) Ahora aplicar esta misma práctica y el inciso anterior a su proyecto a partir de este
momento, esa nota acumula 30% adicional a su proyecto de curso.
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 94
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Anexos
Capa de Datos Instrucciones
Imports Capa_Negocio.Capa_Negocio
'Imports Capa_Entidad
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
'Namespace Capa_Presetancion_Windows
Public Class Clientes
Dim lista As New List(Of CustomersEntidad)
Dim objCliente As New CustomersNegocio
Private Sub CmdMostrar_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
CmdMostrar.Click
'Trim cadena para que el usuario no escriba espacios
en blanco.
lista =
Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.Trim)
Me.DataGridViewClientes.DataSource = lista
End Sub
End Class
'End Namespace
Instrucciones de la capa de datos de forma general:
Imports Capa_Negocio.Capa_Negocio
'Imports Capa_Entidad
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 95
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
'Namespace Capa_Presetancion_Windows
Public Class Clientes
Dim lista As New List(Of CustomersEntidad)
Dim objCliente As New CustomersNegocio
Private Sub CmdMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles CmdMostrar.Click
'Trim cadena para que el usuario no escriba espacios en blanco.
lista = Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.Trim)
Me.DataGridViewClientes.DataSource = lista
End Sub
End Class
'End Namespace
Capa de Entidad:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 96
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Namespace Capa_Entidad
Public Class CustomersEntidad
Private _CustomersID As String
Public Property CustomersID() As String
Get
Return _CustomersID
End Get
Set(ByVal value As String)
_CustomersID = value
End Set
End Property
Private _CompanyName As String
Public Property CompanyName() As String
Get
Return _CompanyName
End Get
Set(ByVal value As String)
_CompanyName = value
End Set
End Property
Private _ContactName As String
Public Property ContactName() As String
Get
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 97
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Return _ContactName
End Get
Set(ByVal value As String)
_ContactName = value
End Set
End Property
Private ContactTitle As String
Public Property _ContactTitle() As String
Get
Return ContactTitle
End Get
Set(ByVal value As String)
ContactTitle = value
End Set
End Property
Private _Address As String
Public Property Address() As String
Get
Return _Address
End Get
Set(ByVal value As String)
_Address = value
End Set
End Property
Private City As String
Public Property _City() As String
Get
Return City
End Get
Set(ByVal value As String)
City = value
End Set
End Property
Private _Region As String
Public Property Region() As String
Get
Return _Region
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 98
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
End Get
Set(ByVal value As String)
_Region = value
End Set
End Property
Private _PostalCode As String
Public Property PostalCode() As String
Get
Return _PostalCode
End Get
Set(ByVal value As String)
_PostalCode = value
End Set
End Property
Private _Country As String
Public Property Country() As String
Get
Return _Country
End Get
Set(ByVal value As String)
_Country = value
End Set
End Property
Private _Phone As String
Public Property Phone() As String
Get
Return _Phone
End Get
Set(ByVal value As String)
_Phone = value
End Set
End Property
Private _Fax As String
Public Property Fax() As String
Get
Return _Fax
End Get
Set(ByVal value As String)
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 99
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
_Fax = value
End Set
End Property
End Class
End Namespace
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 100
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Capa de Negocios
Capa de Negocio Instrucciones
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
Namespace Capa_Negocio
Public Class CustomersNegocio
Dim Lista1 As List(Of
CustomersEntidad)
Dim Obj1 As CustomersDatos
Public Function MostrarClientes(ByVal
Ciudad As String) As List(Of CustomersEntidad)
Lista1 = New List(Of CustomersEntidad)
Obj1 = New CustomersDatos
Lista1 = Obj1.ListarClientesPorCiudad(Ciudad)
Return Lista1
End Function
End Class
End Namespace
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 101
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Instrucciones de la capa de Negocio de forma general:
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
Namespace Capa_Negocio
Public Class CustomersNegocio
Dim Lista1 As List(Of CustomersEntidad)
Dim Obj1 As CustomersDatos
Public Function MostrarClientes(ByVal Ciudad As String) As List(Of CustomersEntidad)
'Dim lista As List(Of CustomersEntidad)
' Dim Lista1 As System.Collections.Generic.List(Of
Capa_Entidad.Capa_Entidad.CustomersEntidad)
'Dim Obj1 As System.Collections.Generic.List(Of Capa_Datos.CustomersDatos)
'Dim Obj As List(Of CustomersDatos)
'Hay que ajustar la referenicacrear ListarClientesPorCiudad(Ciudad)
'lista = New List(Of CustomersEntidad)
Lista1 = New List(Of CustomersEntidad)
Obj1 = New CustomersDatos
'No se logra levantar el listado de los clientes por ciudad.
Lista1 = Obj1.ListarClientesPorCiudad(Ciudad)
Return Lista1
End Function
End Class
End Namespace
Capa de presentación
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 102
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Capa de Presentación Instrucciones
Imports Capa_Negocio.Capa_Negocio
'Imports Capa_Entidad
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
'Namespace Capa_Presetancion_Windows
Public Class Clientes
Dim lista As New List(Of CustomersEntidad)
Dim objCliente As New CustomersNegocio
Private Sub CmdMostrar_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles CmdMostrar.Click
'Trim cadena para que el usuario no escriba
espacios en blanco.
lista =
Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.T
rim)
Me.DataGridViewClientes.DataSource = lista
End Sub
End Class
'End Namespace
Instrucciones de la capa de presentación de forma general:
Curso de Administradores de bases de Datos
Unidad IX.- Programación por capas en Visual Basic .Net. 103
Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
Imports Capa_Negocio.Capa_Negocio
'Imports Capa_Entidad
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections.Generic
Imports Capa_Entidad.Capa_Entidad
'Namespace Capa_Presetancion_Windows
Public Class Clientes
Dim lista As New List(Of CustomersEntidad)
Dim objCliente As New CustomersNegocio
Private Sub CmdMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles CmdMostrar.Click
'Trim cadena para que el usuario no escriba espacios en blanco.
lista = Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.Trim)
Me.DataGridViewClientes.DataSource = lista
End Sub
End Class
'End Namespace

Más contenido relacionado

Similar a Pasado - Programación en Tres Capas - Viernes 19-V-2022.doc

Ii procesador palabras_writer
Ii procesador palabras_writerIi procesador palabras_writer
Ii procesador palabras_writerfabiolaidrogo
 
Actividad de Aprendizaje
Actividad de AprendizajeActividad de Aprendizaje
Actividad de Aprendizajedlsanchezt
 
Base de datos activa
Base de datos activaBase de datos activa
Base de datos activabarbarasadee
 
UNIDAD VIII - Informes o Reportes con Crystal Reports y VB - 21-V-2022 - ADMO...
UNIDAD VIII - Informes o Reportes con Crystal Reports y VB - 21-V-2022 - ADMO...UNIDAD VIII - Informes o Reportes con Crystal Reports y VB - 21-V-2022 - ADMO...
UNIDAD VIII - Informes o Reportes con Crystal Reports y VB - 21-V-2022 - ADMO...Nombre Apellidos
 
Propuesta de una arquitectura para reemplazar el sistema informático la empre...
Propuesta de una arquitectura para reemplazar el sistema informático la empre...Propuesta de una arquitectura para reemplazar el sistema informático la empre...
Propuesta de una arquitectura para reemplazar el sistema informático la empre...Saul Mamani
 
Corel Draw Manual
Corel Draw ManualCorel Draw Manual
Corel Draw ManualCrhis
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos JavaJosé Mendoza
 
Visual basic y java
Visual basic y javaVisual basic y java
Visual basic y javaKareliaRivas
 
Actividad de aprendizaje unidad 01
Actividad de aprendizaje   unidad 01Actividad de aprendizaje   unidad 01
Actividad de aprendizaje unidad 01Oyol4
 
Manual neolms interamericano
Manual neolms interamericanoManual neolms interamericano
Manual neolms interamericanojamer_mirez
 
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdfINSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdfAnaLpez275
 
Programacion de una tienda virtual en Grails
Programacion de una tienda virtual en GrailsProgramacion de una tienda virtual en Grails
Programacion de una tienda virtual en GrailsGabriel Bermudez
 

Similar a Pasado - Programación en Tres Capas - Viernes 19-V-2022.doc (20)

Ii procesador palabras_writer
Ii procesador palabras_writerIi procesador palabras_writer
Ii procesador palabras_writer
 
Lenguaje objective c
Lenguaje objective cLenguaje objective c
Lenguaje objective c
 
Actividad de Aprendizaje
Actividad de AprendizajeActividad de Aprendizaje
Actividad de Aprendizaje
 
Redes wan rp09004 2013
Redes wan rp09004 2013Redes wan rp09004 2013
Redes wan rp09004 2013
 
Base de datos activa
Base de datos activaBase de datos activa
Base de datos activa
 
UNIDAD VIII - Informes o Reportes con Crystal Reports y VB - 21-V-2022 - ADMO...
UNIDAD VIII - Informes o Reportes con Crystal Reports y VB - 21-V-2022 - ADMO...UNIDAD VIII - Informes o Reportes con Crystal Reports y VB - 21-V-2022 - ADMO...
UNIDAD VIII - Informes o Reportes con Crystal Reports y VB - 21-V-2022 - ADMO...
 
Propuesta de una arquitectura para reemplazar el sistema informático la empre...
Propuesta de una arquitectura para reemplazar el sistema informático la empre...Propuesta de una arquitectura para reemplazar el sistema informático la empre...
Propuesta de una arquitectura para reemplazar el sistema informático la empre...
 
Clases en VB
Clases en VBClases en VB
Clases en VB
 
APUNTES_REDES (2).docx
APUNTES_REDES (2).docxAPUNTES_REDES (2).docx
APUNTES_REDES (2).docx
 
Corel Draw Manual
Corel Draw ManualCorel Draw Manual
Corel Draw Manual
 
08196
0819608196
08196
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos Java
 
Visual basic y java
Visual basic y javaVisual basic y java
Visual basic y java
 
Actividad de aprendizaje unidad 01
Actividad de aprendizaje   unidad 01Actividad de aprendizaje   unidad 01
Actividad de aprendizaje unidad 01
 
Actividad de aprendizaje unidad 01
Actividad de aprendizaje   unidad 01Actividad de aprendizaje   unidad 01
Actividad de aprendizaje unidad 01
 
Actividad de aprendizaje - Unidad 01
Actividad de aprendizaje - Unidad 01Actividad de aprendizaje - Unidad 01
Actividad de aprendizaje - Unidad 01
 
Propuesta aula virtual
Propuesta aula virtualPropuesta aula virtual
Propuesta aula virtual
 
Manual neolms interamericano
Manual neolms interamericanoManual neolms interamericano
Manual neolms interamericano
 
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdfINSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
 
Programacion de una tienda virtual en Grails
Programacion de una tienda virtual en GrailsProgramacion de una tienda virtual en Grails
Programacion de una tienda virtual en Grails
 

Pasado - Programación en Tres Capas - Viernes 19-V-2022.doc

  • 1. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 1 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Universidad Nacional de Ingeniería UNI - FEC Administradores de bases de datos y SQL SERVER. Unidad III: Programacion por capas en Visual Basic .Net. Programación por peldaños o capas en Tres Capas. Creación de Capas en una solución. Conexión con SQL Server en el uso de Capas. Definición de los datos en cada una de las Capas. Compilación de los datos e instrucciones en cada una de las capas. Establecer referencias entre capas. Procedimientos almacenados para recuperar datos en capas. Programar y codificar cada una de las capas. Prof. Giovanni Francisco Sáenz Araica.
  • 2. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 2 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Tabla de contenidos: - Contenido Unidad III: Programacion por capas en Visual Basic .Net. .................................................................................1 Tabla de contenidos: ...........................................................................................................................................2 Programación en Tres Capas .............................................................................................................................4 Paso1: Crear una solución en blanco. ............................................................................................................4 Paso2: creación de la Biblioteca de clases.....................................................................................................5 Crear la Capa de Entidad ................................................................................................................................6 Agregar la Capa de Datos: ..............................................................................................................................7 Agregar la Capa de Negocio: ........................................................................................................................10 Crear la Capa de Presentación para entorno de Windows: .........................................................................13 Desarrollo en las capas.....................................................................................................................................18 Programación en la capa Entidad .................................................................................................................18 Establecer conexión con la base de datos....................................................................................................19 Agregar una nueva conexión al proyecto:.....................................................................................................19 Programación de la capa de Entidad ............................................................................................................25 Eliminar archivo de clase Class1.vb..........................................................................................................25 Crear el archivo de clase CustomersEntidad.vb .......................................................................................26 Incorporación de instrucciones a la clase CustomersEntidad.vb..............................................................27 Utilizar el asistente para agregar fragmento de código en la clase ..........................................................28 Definiendo las propiedades dentro de la clase CustomersEntidad.vb......................................................31 Nota del ejemplo:........................................................................................................................................41 Programación en capa de datos....................................................................................................................46 Eliminar archivo de clase Class1.vb..........................................................................................................46
  • 3. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 3 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Crear el archivo de clase CustomersDatos.vb..........................................................................................48 Agregar la referencia a la capa de datos ......................................................................................................50 Crear un procedimiento que devuelva los clientes por una ciudad ..............................................................55 Agregar una variable de tipo conexión..........................................................................................................56 Crear procedimiento almacenado .................................................................................................................64 Mejoras a realizar en la capa de datos: ........................................................................................................66 Capa de Negocios .........................................................................................................................................68 Eliminar archivo de clase Class1.vb..........................................................................................................68 Crear el archivo de clase CustomersNegocio.vb ......................................................................................69 Agregar la referencia a la capa de datos ......................................................................................................71 Observar archivo CustomersNegocios.vb en la capa de negocio: ...........................................................74 Nota ............................................................................................................................................................75 Programación en la capa de presentación....................................................................................................77 Eliminar archivo de clase Class1.vb..........................................................................................................77 Crear el formulario Clientes.vb...................................................................................................................78 Tabla de Objetos en el formulario Clientes ...................................................................................................80 Codificación del formulario Clientes ..............................................................................................................82 Agregar la referencia a la capa de Presentación..........................................................................................83 Programando la presentación de datos en el formulario Clientes................................................................86 Establecer el formulario que iniciara el proyecto: .........................................................................................87 Corrida del proyecto por capas .....................................................................................................................91 Tareas a realizar:...............................................................................................................................................93
  • 4. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 4 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Programación en Tres Capas Para poder programar en capas, se debe seguir cierta estructura, la que se muestra a continuación, es una propuesta, sin embargo, existen otras formas de hacer que los peldaños funcionen sin problemas. Al mostrar esta forma, y consultarla con colegas, me indican que no es la forma tradicional en que se ha trabajado por parte de ellos, bueno, si ya han programado ustedes, es un buen momento para analizar, y si tienes algo revolucionario y nuevo, no dudes en escribirme y mandarme esos detalles que serán de mucho provecho, tanto para el ámbito profesional, así como académico. Paso1:Crearuna solución en blanco. Crear una solución en blanco, entonces en la opción de crear nuevo proyecto, seleccione otros tipos de proyectos, dentro de esta, buscar soluciones de Visual Studio:
  • 5. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 5 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Paso2: creaciónde la Biblioteca de clases. Se debe ir al explorador de soluciones, visualizar el contenido de esta, así como, estar claro que este ejemplo parte de que se está en un proyecto en blanco. Entonces, ver el explorador de soluciones: Colocarse sobre el explorador de soluciones, dar click derecho, aparecerá la opción de agregar nuevo proyecto, entonces seleccione el nuevo proyecto, como se muestra en la siguiente figura:
  • 6. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 6 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Crear la Capa de Entidad Continúe, ahora debe crear la Capa de Entidad, la cual debe ser una librería de clases, sin embargo, observe como se presentará la ventana de nuevo proyecto: Les aparecerá en el proyecto de tipo inteligencia de negocios, usted debe hacer los ajustes: Cambiar a aplicación para Visual Basic, luego seleccionar que es para Windows, posteriormente librería de clases y colocar el nombre de Capa Entidad, ahora hágalo usted: Ver siguiente página:
  • 7. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 7 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Dentro de la ventana agregar un objeto, seleccione una librería de clases y establezca el nombre de Capa Entidad: Una vez realizado el paso anterior, se le presentara en pantalla la siguiente imagen: Con esto, puede observar que se ha podido crear la capa de entidades, posteriormente en esta práctica, usted agregara todo lo correspondiente a esta capa. Agregar la Capa de Datos:
  • 8. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 8 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Los pasos se pueden repetir para agregar la capa de datos, sin embargo, se vuelve a mostrar: Ir al menú principal y selección en archivo agregar, posteriormente elegir nuevo proyecto, ver siguiente imagen: Ir a la parte de archivo y buscar la opción agregar un nuevo proyecto, se mostrará lo siguiente: Aparece nuevamente la opción de crear una nueva librería de clases (ya que esto fue lo último que diseño), entonces proceda a crear la capa de datos, escriba su nombre y observe que sucede: Ver siguiente página:
  • 9. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 9 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Dentro de la ventana agregar un objeto, seleccione una librería de clases y establezca el nombre de Capa Datos: Al completarse la operación anterior, usted observara que en las ventanas de programación se muestran los siguientes detalles: Lo primero es que se ubicará sobre la capa de datos, luego que, en la parte de la ventana del explorador de soluciones, usted podrá observar las dos capas que se han incorporado como parte de su solución llamada Tres Capas.
  • 10. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 10 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Lo segundo, es que podrá ver que, en la solución, se han incorporado nuevos elementos, visibles desde su creación, no obstante, deberán moldearse para recuperar y manejar los datos: Agregar la Capa de Negocio: En este momento, debe agregar la capa de negocios, para hacer posible esto, usted debe repetir los pasos anteriores, los cuales se le detallan para que no pierda el rastro de esta práctica:
  • 11. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 11 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Si recuerda, click derecho sobre la solución de Tres Capas, luego buscar la opción de agregar, y de las posibles selecciones elegir nuevo proyecto, ahora repita usted los pasos aplicándolos en el proyecto de Tres Capas. Nuevamente seleccione en el tipo de proyecto Visual Basic, luego elegir que este es para Windows, en la parte derecha que es una librería de clases y por último en la parte inferior, que este se llamará Capa Negocio, hacerlo en su proyecto ahora:
  • 12. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 12 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Como resultado de la operación anterior, usted podrá observar en el explorador de soluciones las tres capas, las cuales son Datos, Entidad y Negocio: Ver siguiente página:
  • 13. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 13 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Lo tercero, es que podrá ver que, en la solución, se han incorporado nuevos elementos, visibles desde su creación, sin embargo, deberán moldearse para recuperar y manejar los objetos, así como datos: Crear la Capa de Presentación para entornode Windows: Para fines y efectos, esta es la capa que se utilizara para presentar la información del proyecto, así como los datos e información del mismo proyecto. En este caso, se dejará el nombre de Presentación Windows (un detalle importante, es que este nuevo objeto, es de tipo aplicación de Windows, observar ese pequeño y significativa referencia), los pasos a realizar son los siguientes: Ver siguiente página:
  • 14. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 14 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com En este momento, debe agregar la capa de presentación, para hacer posible esto, usted debe repetir los pasos anteriores, los cuales se le detallan para que no pierda el rastro de esta práctica: Luego de realizado el paso anterior, entonces, observe que usted está haciendo el llamado a una aplicación de Windows, el cual se incorporara como capa a la solución, ver siguiente página: Ver siguiente página:
  • 15. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 15 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Agregando la capa de presentación de Windows de la solución de tres capas: Al hacer lo anterior, entonces observara en pantalla lo siguiente:
  • 16. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 16 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Se han creado las capas, así como también se ha incorporado el lugar donde se mantendrán los formularios y presentación de datos, mientras que en el explorador de soluciones usted podrá visualizar lo siguiente, ver la figura a continuación: Se observa la estructura de capas, así como estará distribuida la asignación de funciones y roles entre las capas, lo cual sigue a continuación: La capa de entidad y la capa de datos, hacen una sola capa, la capa de datos extraer los datos de la base de datos directamente y esta la manipula, esta lo entrega a la capa de negocio en forma de objetos, permite verificar, plantear las reglas de negocios para poder entregar los datos procesados para ser entregados a la capa de presentación, mientras que la capa de presentación puede ser de tipo Windows o Webs, para este ejemplo, se está desarrollando en la parte Windows.
  • 17. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 17 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
  • 18. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 18 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Desarrollo en las capas A continuación, se procede a la programación de cada una de las capas antes definidas, observe cada uno de los pasos que se muestran a partir de este momento, así como no pierda el hilo de cada capa. Programación en la capa Entidad Contiene clases que permite tener propiedades semejantes a los campos de las tablas de la base de datos. Para esta práctica, se utilizará la base de datos NorthWind, la cual la primera misión es enlazarse ya sea de forma conectada (con el asistente de .Net) o desconectada (utilizando código de programación), sin embargo, desde este momento y como tarea de esta práctica, ustedes deben trabajar en sus proyectos, los cuales se deben mostrar con detalle de esos avances en la siguiente sesión de clases. Recordando los pasos que se han realizado en los módulos anteriores, ir al menú de Studio .NET, seleccionar la opción ver, y buscar el explorador de servidores, repita estos pasos usted:
  • 19. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 19 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Entonces, al hacer click en el icono de explorador de servidores se abrirá la ventana corresponde a esa opción y usted podrá ver lo siguiente: Establecer conexión con la base de datos Quizás como en este caso, no se muestre ninguna conexión, entonces proceda a establecer la conexión con la base de datos NorthWind (esta es la base de datos que se ha utilizado en los cursos anteriores, sin embargo, si no tiene en SQL Server estos datos, considere la restauración y búsqueda previa del Backup, por favor considere todos los escenarios para que no existan problemas, mientras tanto, y suponiendo que ya tiene la base de datos, siga los pasos que se muestran a continuación). Agregar una nuevaconexión alproyecto: Sobre el icono de conexión de datos, hacer click derecho y seleccionar agregar una nueva conexión: Se mostrará la ventana donde usted debe establecer las propiedades de conexión: Ver siguiente página:
  • 20. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 20 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Ventana que establece la conexión con la base de datos: Recuerde que usted tiene varias formas de asignar el nombre del servidor (en los cursos anteriores se han mostrado más de cuatro formas), la cual una de ellas es: Ver siguiente página:
  • 21. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 21 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Buscar la ventana de propiedades del sistema operativo, y establecer el nombre del servidor, esta una forma de poder hacer posible este paso: Observe, que cuando el nombre esta correcto, usted podrá ver activo el ComboBox correspondiente a las bases de datos disponibles, en caso contrario, no es ese el nombre del servidor, ver siguiente página:
  • 22. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 22 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Al establecer el nombre del servidor, se observan cambios: Falta definir la base de datos a la cual se conecta, en este sentido, usted deberá elegir la base de datos northwind, ver siguiente página:
  • 23. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 23 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Buscar la base de datos a la cual se conectará, no se debe de escribir, sino que usted la debe buscar en el ComboBox, sino aparece, es probable que no sea ese el nombre de su servidor: Después de este momento, de ser exitosa la conexión, usted podrá observar cada uno de los datos que se han almacenado en la base de datos northwind, ver gráfico en la siguiente página:
  • 24. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 24 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com En la ventana del explorador de servidores podrá observar que es visible las tablas, los diagramas de la base de datos, las vistas, los procedimientos almacenados, funciones creadas por usuarios y otros: Seguir en la siguiente página:
  • 25. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 25 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Programación de la capa de Entidad Una vez establecida la conexión con la base de datos, lo que sigue es programar las capas, en este sentido, se inicia con la capa entidad e inicia programando la clase CustomersEntidad.vb, sin embargo, debe eliminar la clase Class1.vb y agregar esa nueva clase. Eliminar archivo de clase Class1.vb Ubicarse sobre la ventana del explorador de Soluciones, posteriormente elimine el archivo clase Class1.vb:
  • 26. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 26 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Le debe aparecer al eliminar la clase Class1.vb esa ventana o mensaje, donde le indica que será eliminada esa clase, solo dar aceptar: Crear el archivo de clase CustomersEntidad.vb Esto es simplemente, agregar una clase dentro de la capa entidad con el nombre de CustomersEntidad.vb, ver dibujo:
  • 27. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 27 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Visualizar el archivo clase CustomersEntidad.vb en la ventana del explorador de soluciones: Incorporación de instrucciones a la clase CustomersEntidad.vb Ahora insertar fragmento de código dentro de CustomersEntidad.vb, o hacer doble click sobre el archivo que se ha detallado en este momento:
  • 28. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 28 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Utilizar el asistente para agregar fragmento de código en la clase Insertar fragmento de código, click derecho dentro del bloque de la clase CustomersEntidad: Posteriormente, buscar la opción de códigos comunes, proceda a realizar esta acción usted mismo: Ver siguiente página:
  • 29. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 29 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Seguir invocando al asistente de código, recuerde click derecho y busque opción específica: Ahora, definir una propiedad, ver los detalles, usted debe elegir propiedades:
  • 30. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 30 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Seleccione que usted debe definir una propiedad: Al finalizar cada uno de los pasos anteriores, usted podrá ver que se generará el código correspondiente a las propiedades. Ver siguiente página:
  • 31. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 31 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Definiendo las propiedades dentro de la clase CustomersEntidad.vb Contiene dos partes, básicamente, la declaración de la variable entidad, en este caso se denominara _CustomersID, sin embargo aparece otro nombre por defecto, será de tipo entero, igualmente, el nombre de la propiedad se tiene que ajustar a CustomerID() . Public Class CustomersEntidad Private _CustomersID As Integer Public Property CustomersID() As String Get Return _CustomersID End Get Set(ByVal value As String) _CustomersID = value End Set End Property End Class
  • 32. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 32 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Reajustando el código, entonces ustedes tendrán en pantalla el siguiente resultado: Ahora incorporando el siguiente campo como parte de las propiedades de la clase CustomersEntidad. Nuevamente repetir los pasos, recordar que contiene dos partes, la declaración de la variable entidad, en este caso se denominará _CustomersName, será de tipo String, el nombre de la propiedad CustomersName (), ver siguiente página.
  • 33. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 33 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Repetir pasos para la incorporación de una nueva propiedad, en este momento será la del campo CustomersName: La segunda propiedad se llamara _CompanyName de tipo String y la propiedad CompanyName(), para hacer posible esto, se deben repetir los pasos y hacer posteriormente los ajustes al código. Ver siguiente página:
  • 34. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 34 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Se repiten nuevamente los pasos, al igual que el campo anteriormente trabajado: Ver siguiente página:
  • 35. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 35 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Nuevamente repita los mismos pasos para crear una nueva propiedad: Ver siguiente página:
  • 36. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 36 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Se repiten nuevamente los pasos, al igual que el campo anteriormente trabajado: Ver siguiente página:
  • 37. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 37 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Reajustando el código, entonces ustedes tendrán en pantalla el siguiente resultado: Ver siguiente página:
  • 38. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 38 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Observe, debe reajustando el código, entonces ustedes tendrán en pantalla el siguiente resultado: Se deben realizar los siguientes ajustes: La segunda propiedad se debe llamar _CompanyName de tipo String y la propiedad CompanyName(), realizar los ajustes al código. Public Class CustomersEntidad Private _CustomersID As Integer Public Property CustomersID() As String Get Return _CustomersID End Get
  • 39. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 39 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Set(ByVal value As String) _CustomersID = value End Set End Property Private _CompanyName As String Public Property CompanyName() As String Get Return _CompanyName End Get Set(ByVal value As String) _CompanyName = value End Set End Property End Class Ahora incorporando todos los campos a la clase (esto es solo para el profesor, los estudiantes deben practicarlo): Public Class CustomersEntidad Private _CustomersID As Integer Public Property CustomersID() As String Get Return _CustomersID End Get Set(ByVal value As String) _CustomersID = value End Set End Property Private _CompanyName As String Public Property CompanyName() As String Get Return _CompanyName End Get Set(ByVal value As String) _CompanyName = value End Set
  • 40. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 40 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com End Property Private _ContactName As String Public Property ContactName() As String Get Return _ContactName End Get Set(ByVal value As String) _ContactName = value End Set End Property Private _Address As String Public Property Address() As String Get Return _Address End Get Set(ByVal value As String) _Address = value End Set End Property Private _Region As String Public Property Region() As String Get Return _Region End Get Set(ByVal value As String) _Region = value End Set End Property Private _PostalCode As String Public Property PostalCode() As String Get Return _PostalCode End Get Set(ByVal value As String) _PostalCode = value End Set End Property Private _Country As String Public Property Country() As String
  • 41. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 41 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Get Return _Country End Get Set(ByVal value As String) _Country = value End Set End Property Private _Phone As String Public Property Phone() As String Get Return _Phone End Get Set(ByVal value As String) _Phone = value End Set End Property Private _Fax As String Public Property Fax() As String Get Return _Fax End Get Set(ByVal value As String) _Fax = value End Set End Property End Class Nota del ejemplo: Gracias a la colaboración del colega J. Díaz Chow, me hace una mejor propuesta, y es cambiar a espacios de nombres, esto es, para el manejo de datos, eso es lo que se requiere, por ende, eso hará que sea mucho más flexible el acceso a estos, ver entonces como queda el ajuste a esta información: Namespace Capa_Entidad
  • 42. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 42 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Public Class CustomersEntidad Private _CustomersID As String Public Property CustomersID() As String Get Return _CustomersID End Get Set(ByVal value As String) _CustomersID = value End Set End Property Private _CompanyName As String Public Property CompanyName() As String Get Return _CompanyName End Get Set(ByVal value As String) _CompanyName = value End Set End Property Private _ContactName As String Public Property ContactName() As String Get Return _ContactName End Get Set(ByVal value As String) _ContactName = value End Set End Property Private ContactTitle As String Public Property _ContactTitle() As String Get Return ContactTitle End Get Set(ByVal value As String) ContactTitle = value End Set End Property
  • 43. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 43 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Private _Address As String Public Property Address() As String Get Return _Address End Get Set(ByVal value As String) _Address = value End Set End Property Private City As String Public Property _City() As String Get Return City End Get Set(ByVal value As String) City = value End Set End Property Private _Region As String Public Property Region() As String Get Return _Region End Get Set(ByVal value As String) _Region = value End Set End Property Private _PostalCode As String Public Property PostalCode() As String Get Return _PostalCode End Get Set(ByVal value As String) _PostalCode = value End Set End Property
  • 44. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 44 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Private _Country As String Public Property Country() As String Get Return _Country End Get Set(ByVal value As String) _Country = value End Set End Property Private _Phone As String Public Property Phone() As String Get Return _Phone End Get Set(ByVal value As String) _Phone = value End Set End Property Private _Fax As String Public Property Fax() As String Get Return _Fax End Get Set(ByVal value As String) _Fax = value End Set End Property End Class End Namespace Observar en su código ahora, ver siguiente página:
  • 45. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 45 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
  • 46. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 46 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Programación en capa de datos Ya se ha programado la capa de entidad, a partir de este momento se procede a la capa de datos, no pierda los pasos, cada detalle es sumamente importante. Eliminar archivo de clase Class1.vb Ubicarse sobre la ventana del explorador de Soluciones, posteriormente elimine el archivo clase Class1.vb: Ver siguiente página: Le debe aparecer al eliminar la clase Una vez eliminado el archivo, proceda a crear una
  • 47. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 47 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Class1.vb esa ventana o mensaje, donde le indica que será eliminada esa clase, solo dar aceptar: nueva clase con el nombre de CustomersDatos.vb:
  • 48. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 48 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Crear el archivo de clase CustomersDatos.vb Esto es simplemente, agregar una clase dentro de la capa entidad con el nombre de CustomersDatos.vb, ver dibujo: Ver siguiente página:
  • 49. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 49 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Visualizar el archivo clase CustomersDatos.vb en la ventana del explorador de soluciones: A continuación, se deben agregar las referencias de datos a la capa, ver siguiente página:
  • 50. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 50 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Agregar la referencia a la capa de datos Observar los pasos que se deben de seguir, no perder el hilo, lo primero es click derecho sobre la capa de datos, luego buscar la opción de agregar referencias, hacer esto mismo usted en su ventana de explorador de soluciones:
  • 51. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 51 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Entonces aparecerá la ventana de referencias, la cual usted debe seleccionar en la pestaña de Proyectos su referencia, en este momento, es lo que se muestra inicialmente: Ahora moverse a la pestaña de proyectos, ver en siguiente página:
  • 52. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 52 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Selecciones únicamente la capa de entidad en este momento para la capa de datos: Continuar como se indica en la siguiente página, antes presione el botón OK:
  • 53. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 53 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Observe como se incorporan las referencias al proyecto: Ubicarse en la capa de datos y hacer click en el icono para ver todos los archivos: Buscar las referencias de la capa de datos: Agregar las importaciones a la capa de datos, esto para que las referencias sean efectivas y algunos espacios de nombres que son necesarios para el manejo de datos.
  • 54. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 54 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Observe en la ventana de la clase CustomersDatos.vb, se ha incorporado las referencias como importaciones, ver esto en su proyecto y solución: Este es el código que usted observara dentro de la clase CustomersDatos, lo descrito y marcado en amarillo expresa el código que se incorpora de forma automática: Imports Capa_Entidad Imports System.Data Imports System.Data.SqlClient Public Class CustomersDatos End Class Crear un procedimiento que devuelva los clientes por una ciudad, esto lo puede visualizar en la siguiente página:
  • 55. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 55 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Crear un procedimiento que devuelvalos clientespor una ciudad Para hacer posible esta práctica, usted debe poder recordar los conceptos de creación de funciones y sus respectivas definiciones, además de lista: Ventana de la clase CustomersDatos, agregar el código que se muestra en la pantalla: Agregar una variable de tipo conexión, esto se realizará en la siguiente página:
  • 56. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 56 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Agregar una variable de tipo conexión Agregar una variable de tipo conexión a la capa de datos: Observar que usted está seleccionando a las propiedades de la capa de datos, esta lo enviara a la opción de proyectos del menú, en la parte de propiedades del proyecto, ver siguiente página:
  • 57. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 57 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Aparecerá por defecto esta ventana, sin embargo, debe irse a la opción de ajustes (settings) posteriormente: Al estar en esta opción de ajuste, ver esta imagen:
  • 58. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 58 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Agregar la variable, colocar el nombre de Cnn: Definir que es de tipo de conexión:
  • 59. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 59 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com En la opción de scope o alcance debe seleccionar aplicación: Lo siguiente es el valor, esta se conectará a la base de datos, ver siguiente página:
  • 60. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 60 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Nuevamente configure la conexión como si fuese a conectarse a la base de datos nuevamente, sin embargo, esta será la configuración de la variable:
  • 61. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 61 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Prácticamente es como repetir los pasos, ver que es lo mismo que se hizo antes: Probar la conexión:
  • 62. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 62 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Observe el resultado de la operación, ya está preparado todo, salve o guarde: Volver a la programación de la función: Imports Capa_Entidad Imports System.Data Imports System.Data.SqlClient Imports Microsoft.SqlServer Public Class CustomersDatos Dim cnn As New SqlConnection(My.Settings.Cnx) Public Function ListarClientesPorCiudad(ByVal Ciudad As String) As List(Of CustomersEntidad) 'Crear una lista de tipo Customers Dim lista As New List(Of CustomersEntidad) 'Crear un objeto de tipo conexión 'Using cnn As SqlConnection(My.Setting.) 'Using cnn As SqlConnection(My.Settings.CnnSQL) 'Using cnn1 As New cnn
  • 63. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 63 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com 'End Using 'cnn() 'End Using cnn.Open() Dim cmd As New SqlCommand("ClientePorCiudad", cnn) 'Dim c1 As SqlConnection ' End Using End Function End Class
  • 64. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 64 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Crear procedimiento almacenado Se debe crear un procedimiento almacena, ver los pasos a seguir: Detalles del procedimiento almacena, el cual ustedes lo pueden interpretar en qué consiste:
  • 65. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 65 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com CREATE PROCEDURE dbo.ClientePorCiudad ( @Ciudad as NVarchar(15) ) AS Select CustomerID,CompanyName,ContactName,ContactTitle,Address,City,Region From Customers Where (city = @Ciudad) RETURN Una variación al caso anterior, me lo brinda el profesor José Díaz Chow también tu lo puedes comprobar: USE [Northwind] GO SET ANSI_NULLS ON
  • 66. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 66 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: José Díaz Chow / Giovanni Sáenz -- Create date: 19/03/2012 -- Description: Lista los Clientes que residen en la ciudad pasada como parámetro. -- ============================================= Ejecución del procedimiento almacenado: ---- Exec ClientePorCiudad 'London' – Creación del procedimiento almacenado: CREATE PROCEDURE [dbo].[ClientePorCiudad] @Ciudad nvarchar(15) AS BEGIN SET NOCOUNT ON; SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM dbo.Customers WHERE City like @Ciudad; END Mejoras a realizar en la capa de datos: Algunos problemas que se presentan en esta capa, es agregar la referencia de la librería a los objetos de tipo List, por tal motivo en este bloque usted ya los prodrá observar, al igual que antes, ver estos detalles a continuación: Imports System.Data Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad Public Class CustomersDatos
  • 67. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 67 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Dim cnn As New SqlConnection(My.Settings.CnnSQL) Public Function ListarClientesPorCiudad(ByVal Ciudad As String) As List(Of CustomersEntidad) Dim lista As New List(Of CustomersEntidad) cnn.Open() Dim cmd As New SqlCommand("ClientePorCiudad", cnn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddWithValue("@Ciudad", Ciudad) Dim dr As SqlDataReader dr = cmd.ExecuteReader While dr.Read Dim regist As New CustomersEntidad With regist .CustomersID = IIf(dr.GetValue(0) Is DBNull.Value, "", dr.GetValue(0)) .CompanyName = IIf(dr.GetValue(1) Is DBNull.Value, Nothing, dr.GetValue(1)) .ContactName = IIf(dr.GetValue(2) Is DBNull.Value, Nothing, dr.GetValue(2)) ._ContactTitle = IIf(dr.GetValue(3) Is DBNull.Value, Nothing, dr.GetValue(3)) .Address = IIf(dr.GetValue(4) Is DBNull.Value, Nothing, dr.GetValue(4)) ._City = IIf(dr.GetValue(5) Is DBNull.Value, Nothing, dr.GetValue(5)) .Region = IIf(dr.GetValue(6) Is DBNull.Value, Nothing, dr.GetValue(6)) .PostalCode = IIf(dr.GetValue(7) Is DBNull.Value, Nothing, dr.GetValue(7)) .Country = IIf(dr.GetValue(8) Is DBNull.Value, Nothing, dr.GetValue(8)) .Phone = IIf(dr.GetValue(9) Is DBNull.Value, Nothing, dr.GetValue(9)) .Fax = IIf(dr.GetValue(10) Is DBNull.Value, Nothing, dr.GetValue(10)) End With lista.Add(regist) End While Return lista dr.Close() cnn.Close() cnn.Dispose() End Function End Class
  • 68. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 68 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Capa de Negocios A continuación, se procede con la programación de la capa de negocios, la cual inicia con la eliminación de la clase Class1.vb que está en la capa Negocios, practicante usted repetirá los pasos antes detallados, ver imágenes: Eliminar archivo de clase Class1.vb Ubicarse sobre la ventana del explorador de Soluciones, posteriormente elimine el archivo clase Class1.vb: Debe aparecer al intentar eliminar la clase Class1.vb esa ventana o mensaje, donde le indica que será eliminada esa clase, solo dar aceptar:
  • 69. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 69 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Crear el archivo de clase CustomersNegocio.vb Una vez eliminado el archivo, proceda a crear una nueva clase con el nombre de CustomersNegocio.vb:
  • 70. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 70 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Esto es simplemente, agregar una clase dentro de la capa entidad con el nombre de CustomersNegocio.vb, ver dibujo: Una vez visible el archivo CustomersNegocio.vb, podrá abrirlo, ver en su pc: Ver siguiente página:
  • 71. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 71 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Agregar la referencia a la capa de datos Observar los pasos que se deben de seguir, no perder el hilo, lo primero es click derecho sobre la capa de datos, luego buscar la opción de agregar referencias, hacer esto mismo usted en su ventana de explorador de soluciones:
  • 72. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 72 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Entonces aparecerá la ventana de referencias, la cual usted debe seleccionar en la pestaña de Proyectos su referencia, en este momento, es lo que se muestra inicialmente: Ahora moverse a la pestaña de proyectos, ver en siguiente página:
  • 73. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 73 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Aparecerá la ventana que se muestra en este momento, por defecto saldrá la capa de datos, ver imagen: No se apresure a tocar el o presionar el botón OK, observe la siguiente página:
  • 74. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 74 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Debe seleccionar las dos capas, la de entidad y la de datos, utilizar Shift y ratón izquierdo, o también, Ctrl y ratón izquierdo para activar las dos capas, luego presione el botón Ok: Continuar como se indica en la siguiente página, antes presione el botón OK. Observar archivo CustomersNegocios.vb en la capa de negocio: Ahora visualizar el archivo CustomersNegocios.vb y observe si coincide este código con sus instrucciones: Imports Capa_Datos Imports Capa_Entidad Imports System.Data Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad Namespace Capa_Negocio
  • 75. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 75 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Public Class CustomersNegocio Dim Lista1 As List(Of CustomersEntidad) Dim Obj1 As CustomersDatos Public Function MostrarClientes(ByVal Ciudad As String) As List(Of CustomersEntidad) 'Dim lista As List(Of CustomersEntidad) ' Dim Lista1 As System.Collections.Generic.List(Of Capa_Entidad.Capa_Entidad.CustomersEntidad) 'Dim Obj1 As System.Collections.Generic.List(Of Capa_Datos.CustomersDatos) 'Dim Obj As List(Of CustomersDatos) 'Hay que ajustar la referenicacrear ListarClientesPorCiudad(Ciudad) 'lista = New List(Of CustomersEntidad) Lista1 = New List(Of CustomersEntidad) Obj1 = New CustomersDatos 'No se logra levantar el listado de los clientes por ciudad. Lista1 = Obj1.ListarClientesPorCiudad(Ciudad) Return Lista1 End Function End Class End Namespace En la siguiente página, se podrá observar cómo se mirará la capa de negocios del proyecto que se está desarrollando en este momento. Nota Un detalle, es recomendable antecederle espacio de nombre Capa_Negocio superior a la clase de capa de negocio, esto garantiza optimizar todas las operaciones dentro de la clase.
  • 76. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 76 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Observe como se muestra el archivo de la capa de negocios en el proyecto: Hasta este momento está configurado la capa de negocios, continuar con el desarrollo del programa, ver siguiente página.
  • 77. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 77 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Programación en la capa de presentación Esta es la última capa que falta por programar, igual que el caso anterior, se deben hacer ajustes, se inicia con esa parte. Eliminar archivo de clase Class1.vb Ubicarse sobre la ventana del explorador de Soluciones, posteriormente elimine el archivo clase Form1.vb: Le debe aparecer al eliminar la clase Form1.vb esa ventana o mensaje, donde le Una vez eliminado el archivo, proceda a crear un nuevo formulario, seguir los pasos que se muestra:
  • 78. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 78 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com indica que será eliminada esa clase, solo dar aceptar: Crear el formulario Clientes.vb
  • 79. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 79 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Esto es simplemente, agregar una clase dentro de la capa entidad con el nombre de Clientes.vb, ver dibujo: Visualizar el archivo clase Clientes.vb en la ventana del explorador de soluciones: Ahora bien, debe agregar algunos objetos, los cuales son un label, un textbox, un botón y un datagridview, los detalles son los siguientes:
  • 80. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 80 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Tabla de Objetos en elformulario Clientes Tabla de Objetos: Objeto Propiedades Valore Observaciones Label Name LblCiudad TextBox Name TxtCiudad Es aquí donde el usuario establecerá el nombre de la ciudad Botton Name CmdMostrar Se debe activar cuando se haga click en él. DataGridView Name DataGridViewClientes Se debe llenar cuando exista coincidencia entre los datos escritos en el textbox y la base de datos, junto con el evento del botón. Ver siguiente página: Usted podrá originalmente colocar los objetos de esta forma:
  • 81. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 81 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Se tienen que hacer los ajustes para que se observe de la siguiente forma:
  • 82. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 82 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Codificacióndel formulario Clientes Ahora proceda a la codificación del formulario Observe la clase formulario Clientes: Ahora agregar referencias al proyecto:
  • 83. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 83 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Agregar la referencia a la capa de Presentación Observar los pasos que se deben de seguir, no perder el hilo, lo primero es click derecho sobre la capa de datos, luego buscar la opción de agregar referencias, hacer esto mismo usted en su ventana de explorador de soluciones:
  • 84. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 84 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Entonces aparecerá la ventana de referencias, la cual usted debe seleccionar en la pestaña de Proyectos su referencia, en este momento, es lo que se muestra inicialmente: Ahora moverse a la pestaña de proyectos, ver en siguiente página:
  • 85. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 85 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Selecciones únicamente la capa de entidad en este momento para la capa de negocio: Proceda a realizar las importaciones de las capas: Imports Capa_Entidad Imports Capa_Negocio Public Class Clientes End Class
  • 86. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 86 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Si lo anterior presenta problemas en la codificación, entonces puede utilizar el siguiente código alternativo, esto en las importaciones: Imports Capa_Negocio.Capa_Negocio 'Imports Capa_Entidad Imports System.Data Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad Programando lapresentación de datos en el formulario Clientes Proceda a agregar el siguiente código a su formulario, lo que exactamente debe ajustar es lo que está indicado en color amarillo: Imports Capa_Negocio.Capa_Negocio 'Imports Capa_Entidad Imports System.Data Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad 'Namespace Capa_Presetancion_Windows Public Class Clientes Dim lista As New List(Of CustomersEntidad) Dim objCliente As New CustomersNegocio Private Sub CmdMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdMostrar.Click 'Trim cadena para que el usuario no escriba espacios en blanco. lista = Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.Trim) Me.DataGridViewClientes.DataSource = lista End Sub End Class 'End Namespace
  • 87. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 87 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Establecer elformulario que iniciara el proyecto: Si está utilizando varios formularios y proyectos, recuerde establecer que formulario inicia la corrida en este programa: Hacer ajustes y establezca al formulario cliente como formulario de inicio:
  • 88. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 88 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Definir que el formulario Clientes es el que iniciara en la presentación del proyecto:
  • 89. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 89 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Definir que el formulario Clientes es el que arranca en la presentación del proyecto:
  • 90. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 90 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
  • 91. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 91 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Corrida del proyecto por capas: Una vez finalizado cada uno de los ajustes, solo queda la ejecución, realizar esta tarea: Solo quedara visualizar el resultado de la ejecución:
  • 92. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 92 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com
  • 93. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 93 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Tareas a realizar: Se deben realizar cada una de las siguientes actividades: 1) Efectuar cada uno de los mismos pasos antes concluidos y aplicarlos a los datos de la tabla Clientes, órdenes y productos. Recuerde incluir un formulario principal donde se invoque al resto de los formularios. 2) Ahora aplicar esta misma práctica y el inciso anterior a su proyecto a partir de este momento, esa nota acumula 30% adicional a su proyecto de curso.
  • 94. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 94 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Anexos Capa de Datos Instrucciones Imports Capa_Negocio.Capa_Negocio 'Imports Capa_Entidad Imports System.Data Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad 'Namespace Capa_Presetancion_Windows Public Class Clientes Dim lista As New List(Of CustomersEntidad) Dim objCliente As New CustomersNegocio Private Sub CmdMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdMostrar.Click 'Trim cadena para que el usuario no escriba espacios en blanco. lista = Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.Trim) Me.DataGridViewClientes.DataSource = lista End Sub End Class 'End Namespace Instrucciones de la capa de datos de forma general: Imports Capa_Negocio.Capa_Negocio 'Imports Capa_Entidad
  • 95. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 95 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Imports System.Data Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad 'Namespace Capa_Presetancion_Windows Public Class Clientes Dim lista As New List(Of CustomersEntidad) Dim objCliente As New CustomersNegocio Private Sub CmdMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdMostrar.Click 'Trim cadena para que el usuario no escriba espacios en blanco. lista = Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.Trim) Me.DataGridViewClientes.DataSource = lista End Sub End Class 'End Namespace Capa de Entidad:
  • 96. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 96 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Namespace Capa_Entidad Public Class CustomersEntidad Private _CustomersID As String Public Property CustomersID() As String Get Return _CustomersID End Get Set(ByVal value As String) _CustomersID = value End Set End Property Private _CompanyName As String Public Property CompanyName() As String Get Return _CompanyName End Get Set(ByVal value As String) _CompanyName = value End Set End Property Private _ContactName As String Public Property ContactName() As String Get
  • 97. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 97 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Return _ContactName End Get Set(ByVal value As String) _ContactName = value End Set End Property Private ContactTitle As String Public Property _ContactTitle() As String Get Return ContactTitle End Get Set(ByVal value As String) ContactTitle = value End Set End Property Private _Address As String Public Property Address() As String Get Return _Address End Get Set(ByVal value As String) _Address = value End Set End Property Private City As String Public Property _City() As String Get Return City End Get Set(ByVal value As String) City = value End Set End Property Private _Region As String Public Property Region() As String Get Return _Region
  • 98. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 98 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com End Get Set(ByVal value As String) _Region = value End Set End Property Private _PostalCode As String Public Property PostalCode() As String Get Return _PostalCode End Get Set(ByVal value As String) _PostalCode = value End Set End Property Private _Country As String Public Property Country() As String Get Return _Country End Get Set(ByVal value As String) _Country = value End Set End Property Private _Phone As String Public Property Phone() As String Get Return _Phone End Get Set(ByVal value As String) _Phone = value End Set End Property Private _Fax As String Public Property Fax() As String Get Return _Fax End Get Set(ByVal value As String)
  • 99. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 99 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com _Fax = value End Set End Property End Class End Namespace
  • 100. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 100 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Capa de Negocios Capa de Negocio Instrucciones Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad Namespace Capa_Negocio Public Class CustomersNegocio Dim Lista1 As List(Of CustomersEntidad) Dim Obj1 As CustomersDatos Public Function MostrarClientes(ByVal Ciudad As String) As List(Of CustomersEntidad) Lista1 = New List(Of CustomersEntidad) Obj1 = New CustomersDatos Lista1 = Obj1.ListarClientesPorCiudad(Ciudad) Return Lista1 End Function End Class End Namespace
  • 101. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 101 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Instrucciones de la capa de Negocio de forma general: Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad Namespace Capa_Negocio Public Class CustomersNegocio Dim Lista1 As List(Of CustomersEntidad) Dim Obj1 As CustomersDatos Public Function MostrarClientes(ByVal Ciudad As String) As List(Of CustomersEntidad) 'Dim lista As List(Of CustomersEntidad) ' Dim Lista1 As System.Collections.Generic.List(Of Capa_Entidad.Capa_Entidad.CustomersEntidad) 'Dim Obj1 As System.Collections.Generic.List(Of Capa_Datos.CustomersDatos) 'Dim Obj As List(Of CustomersDatos) 'Hay que ajustar la referenicacrear ListarClientesPorCiudad(Ciudad) 'lista = New List(Of CustomersEntidad) Lista1 = New List(Of CustomersEntidad) Obj1 = New CustomersDatos 'No se logra levantar el listado de los clientes por ciudad. Lista1 = Obj1.ListarClientesPorCiudad(Ciudad) Return Lista1 End Function End Class End Namespace Capa de presentación
  • 102. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 102 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Capa de Presentación Instrucciones Imports Capa_Negocio.Capa_Negocio 'Imports Capa_Entidad Imports System.Data Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad 'Namespace Capa_Presetancion_Windows Public Class Clientes Dim lista As New List(Of CustomersEntidad) Dim objCliente As New CustomersNegocio Private Sub CmdMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdMostrar.Click 'Trim cadena para que el usuario no escriba espacios en blanco. lista = Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.T rim) Me.DataGridViewClientes.DataSource = lista End Sub End Class 'End Namespace Instrucciones de la capa de presentación de forma general:
  • 103. Curso de Administradores de bases de Datos Unidad IX.- Programación por capas en Visual Basic .Net. 103 Giovanni.Saenz@uni.edu.ni – Giovanni.Saenz@hotmail.com –Francisco.Araica@gmail.com Imports Capa_Negocio.Capa_Negocio 'Imports Capa_Entidad Imports System.Data Imports System.Data.SqlClient Imports System.Collections.Generic Imports Capa_Entidad.Capa_Entidad 'Namespace Capa_Presetancion_Windows Public Class Clientes Dim lista As New List(Of CustomersEntidad) Dim objCliente As New CustomersNegocio Private Sub CmdMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdMostrar.Click 'Trim cadena para que el usuario no escriba espacios en blanco. lista = Me.objCliente.MostrarClientes(Me.TxtCiudad.Text.Trim) Me.DataGridViewClientes.DataSource = lista End Sub End Class 'End Namespace