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