Tutorial Programacion en capas con VB.net y Enterprise Library (Parte 2)
En la parte 1 terminamos de definir las clases de la capa Data. Para ir a la parte 1 da click aqui
Capa Negocios
1. Crear una clase llamada "Vendedor.vb", todas las clases contenidas en esta capa pueden contener la lógica del negocio como cálculos, validaciones, etc de echo debería ser así pero, muchos programadores no siguen los patrones de diseño y colocan la lógica en la capa de Interfaz de usuario.
Para efectos del ejercicio en nuestra clase Vendedor.vb solo haremos la llamada a los métodos que queramos de nuestra capa de datos:
Imports Entidades
Imports Data
Public Class Vendedor
Dim vd As New VendedorData
Public Function ConsultarVendedores() As List(Of VendedorInfo)
Return vd.ConsultarVendedores()
End Function
Public Function ConsultarVendedor(IdVendedor) As VendedorInfo
Return vd.ConsultarVendedor(IdVendedor)
End Function
Public Sub GrabarVendedor(EsNuevo As Boolean, Vendedor As VendedorInfo)
'Se puede poner validaciones como que el nombre no esté vacio o la edad etc.
vd.GrabarVendedor(EsNuevo, Vendedor)
End Sub
Public Sub EliminaVendedor(IdVendedor As Integer)
vd.EliminaVendedor(IdVendedor)
End Sub
End Class
Para el método de grabar se puede incluir validaciones como que haya ingresado nombre, que la edad sea mayor de 18 años, etc, según el caso.
Completar las demás clases de manera similar Ruta.vb, Cliente.vb, TpoVisita.vb, Visita.vb. Recordar que al final del tutorial está el link de descarga de la fuente.
Capa de Interfaz de usuario
1. Diseñamos la siguiente interfaz que contiene:
- 1 SpliContainer
- 4 Buttons
- 2 Labels
- 2 TextBox
- 1 DataGridView
2. El codigo siguiente le da funcionamiento basico a la forma:
Imports Entidades
Imports Negocios
Public Class frmVendedor
Dim ev As New VendedorInfo
Dim nv As New Vendedor
Dim EsNuevo As Boolean
Private Sub btnNuevo_Click(sender As System.Object, e As System.EventArgs) Handles btnNuevo.Click
EsNuevo = True
End Sub
Private Sub frmVendedor_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
RefrescaGrid()
End Sub
Private Sub RefrescaGrid()
dgvVendedores.DataSource = nv.ConsultarVendedores()
End Sub
Private Sub btnConsultar_Click(sender As System.Object, e As System.EventArgs) Handles btnConsultar.Click
ev = nv.ConsultarVendedor(Convert.ToInt32(Me.txtIdVendedor.Text))
SetVendedor()
EsNuevo = False
End Sub
Private Sub BtnGrabar_Click(sender As System.Object, e As System.EventArgs) Handles BtnGrabar.Click
GetVendedor()
nv.GrabarVendedor(EsNuevo, ev)
RefrescaGrid()
End Sub
Private Sub btnEliminar_Click(sender As System.Object, e As System.EventArgs) Handles btnEliminar.Click
nv.EliminaVendedor(txtIdVendedor.Text)
RefrescaGrid()
End Sub
Private Sub GetVendedor()
ev.IdVendedor = txtIdVendedor.Text
ev.Nombres = txtNombres.Text
End Sub
Private Sub SetVendedor()
txtIdVendedor.Text = ev.IdVendedor
txtNombres.Text = ev.Nombres
End Sub
End Class
3. Ejecutar la aplicación
Si no puedes ejecutar la aplicación por un error relacionado con sql.Oracle, se soluciona cambiando el framework de destino de la capa Winform que por defecto está en ".Net framwork 4.0 client profile" a ".Net framwork 4.0". Luego puedes volver a dejar como estaba, es un bug que aún no se soluciona. quizas en las Enterprise librerys 6.0 para el visual 2012 eso desconozco.
Conclusiones:
- El uso de las Enterprise Librarys/Applicactions blocks facilitan y ahorran mucho código para cuestiones de acceso a datos.
- Es una buena práctica programar en capas ya que simplifica el uso en la o las capas de usuario
- Se puede usar las mismas capas Data, Negocios y Entidades para hacer una interfaz Web en asp.net, WPF o inclusive un WebService.
- Es de bajo acoplamiento, bajo impacto o nulo hacia nuevas capas de interfaz de usuario.


protvieWsdan-ru_West Valley City Alan Malala https://wakelet.com/wake/sQChjmpXWeTgDUNrgPuf-
ResponderEliminartitencontrich