Arquitectura de aplicaciones .net

Solo disponible en BuenasTareas
  • Páginas : 7 (1592 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de diciembre de 2010
Leer documento completo
Vista previa del texto
DESARROLLO EN TRES CAPAS .NET Leticia González Bona

DESARROLLO EN TRES CAPAS .NET
La arquitectura de tres capas se basa en la división en el nivel de acceso a datos, nivel de lógica de negocio y nivel de presentación o aplicación. A modo de ejemplo sencillo, para llenar un ListView en VB.NET, en el nivel más básico podemos crear una clase de acceso a datos con la conexión a la base de datosy los métodos de selección, modificación y eliminación de datos. En el nivel medio, implementaremos los métodos que gestionará la comunicación de datos entre las capa de presentación y de acceso a datos. Por último, en la capa de presentación, nos preocuparemos únicamente de hacer la petición de datos a negocio y de mostrarlos en los controles que queramos (en este caso un ListView). He realizadouna codificación muy básica (puede complicarse más, ya que normalmente nos interesará emplear fragmentos de código para diversas clases y, por lo tanto, tendremos subcapas y herencia) con un método de selección para un ejemplo de una tabla que contiene datos de diversos países (cuyos campos son “id” y “país”).

Capa de Acceso a Datos
Éste sería el código para la capa de datos:
Public ClassDPaises #Region " - Tipos de Datos - " Public Enum tFiltro cfAnd = 1 cfOr End Enum Public Enum tOrden coAsc = 1 coDesc End Enum #End Region #Region " - Variables - " ' - Datos para la conexión con el Servidor BD Private cadenaConexion As String = "Data Source= servidorBD;Initial Catalog= baseDatos;Persist Security Info=True;User ID= usuario;password = contraseña" Friend Shared ReadOnlyidentificador As String = "id" Friend Shared ReadOnly pais As String = "pais" #End Region #Region " - Métodos Públicos - " ' - Devolverá a la capa de negocio el listado de países registrados ' en la BD, atendiendo al filtro y órden indicados por parámetro Public Function getLista(ByVal filtro As String, ByVal orden As String) As DataTable ' - Generamos la Consulta SQL Dim nombreTabla As String = "paises"Dim cadena As String = DPaises.getConsulta(nombreTabla, filtro, orden) ' - Devolvemos un DataTable con el resultado de la Consulta Return Me.fillTabla(cadena) End Function #End Region

http://www.letizia-gonzalez.net/

1

DESARROLLO EN TRES CAPAS .NET Leticia González Bona #Region " - Métodos Privados - " '- Devolverá un DataTable con el resultado de la consulta pasada por parámetro PrivateFunction fillTabla(ByVal consulta As String) As DataTable ' - Ejecutamos la Consulta Dim tablaDT As New DataTable Dim adaptadorDA As New SqlClient.SqlDataAdapter(consulta, Me.cadenaConexion) ' - Llenamos el DataTable adaptadorDA.Fill(tablaDT) adaptadorDA.Dispose() ' - Liberamos memoria Return tablaDT End Function #End Region #Region " - Métodos Shared - " ' - No necesitan instanciar la clase ' -Genera la consulta Private Shared Function getConsulta(ByVal nombreTabla As String, ByVal filtro As String, ByVal orden As String) As String Dim cadena As String = "SELECT * FROM " & nombreTabla Dim consulta As New System.Text.StringBuilder(cadena) ' - En caso de existir filtro lo añade If Not String.IsNullOrEmpty(filtro) Then consulta.Append(" WHERE " & filtro) End If ' - En caso de existircriterio de ordenación lo añade If Not String.IsNullOrEmpty(orden) Then consulta.Append(" ORDER BY " & orden) End If Return consulta.ToString End Function ' - Filtra un campo numérico Public Shared Function filtrar(ByVal nombreCampo As String, ByVal valor As String) As String Return nombreCampo & " = " & valor End Function ' - Filtra un campo de tipo String (búsquedas de tipo Like) Public SharedFunction filtrarCadena(ByVal nombreCampo As String, ByVal valor As String) As String Return nombreCampo & " LIKE '%" & valor & "%'" End Function ' - Devuleve una cadena con la concatenación de varios filtros Public Shared Function addFiltro(ByVal filtro1 As String, ByVal filtro2 As String, ByVal tipoCondicion As tFiltro) As String Dim filtro As String = String.Empty Select Case tipoCondicion Case...
tracking img