Está en la página 1de 14

Da 3: Introduccin a la programacin en 3 Capas.

Requerimientos de este laboratorio:


Base de datos creada en el laboratorio 1 en SQL SERVER.
Visual Studio 2008
FUNDAMENTOS:
La programacin por capas es un estilo de programacin en el que el objetivo primordial es la separacin de la
lgica de negocios de la lgica de diseo; un ejemplo bsico de esto consiste en separar la capa de datos de la
capa de presentacin al usuario.
1.- Capa de presentacin: es la que ve el usuario (tambin se la denomina "capa de usuario"), presenta el
sistema al usuario, le comunica la informacin y captura la informacin del usuario en un mnimo de proceso
(realiza un filtrado previo para comprobar que no hay errores de formato). Esta capa se comunica nicamente
con la capa de negocio. Tambin es conocida como interfaz grfica y debe tener la caracterstica de ser
"amigable" (entendible y fcil de usar) para el usuario.
2.- Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y
se envan las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lgica del negocio) porque
es aqu donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de
presentacin, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al
gestor de base de datos para almacenar o recuperar datos de l. Tambin se consideran aqu los programas de
aplicacin.
3.- Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Est formada por
uno o ms gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de
almacenamiento o recuperacin de informacin desde la capa de negocio.


Paso 1: Iniciar en todos los programas Visual Studio 2008 Men Archivo - Nuevo Proyecto, seleccione el
lenguaje VB.NET o C#, despus seleccione el tipo de plantilla Librera de Clases (Class Library) y dar clic en Ok.

Paso2: Eliminar la clase por default llamada Class1.cs.

Paso3: Agregar una nueva clase, dando clic derecho en el proyecto Agregar (Add) Clase (Class).


El nombre de la clase se llamar Configuracion.cs o Configuracion.vb

Paso4: Agregar el siguiente cdigo dentro de la clase Configuracion.cs o Configuracion.vb
Cdigo C#:







using System;
using System.Collections.Generic;
using System.Text;

namespace Datos
{
public class Configuracion
{
static string cadenaConexion=@"Data Source=.\MSPDeveloper;Initial
Catalog=Tienda;User ID=sa;Password=mredison";
public static string CadenaConexion
{
get { return cadenaConexion; }
}
}
}



Cdigo VB.NET:





Paso 5: Agregar una nueva clase llamada MetodosDatos.cs o MetodosDatos.vb


Paso 6: Agregue el primer mtodo a la clase MetodosDatos llamado CrearComando.
Cdigo C#:






Public Class Configuracion

Shared _cadenaConexion As String = "Data Source=.\MSPDeveloper;Initial
Catalog=Tienda;User ID=sa;Password=mredison"

Public Shared ReadOnly Property CadenaConexion() As String
Get
Return _cadenaConexion
End Get
End Property
End Class
using System;
using System.Data;
using System.Data.SqlClient;

namespace Datos
{
public class MetodosDatos
{
public static SqlCommand CrearComando()
{
string _cadenaConexion = Configuracion.CadenaConexion;
SqlConnection _conexion = new SqlConnection();
_conexion.ConnectionString = _cadenaConexion;
SqlCommand _comando = new SqlCommand();
_comando = _conexion.CreateCommand();
_comando.CommandType = CommandType.Text;
return _comando;
}
}
}

Cdigo VB.NET:






Paso 7: Empezar creando el mtodo de EjecutarComandoSelect que retornar el resultado de cualquier
consulta que usted realice posteriormente.
Cdigo C#:








Cdigo VB.NET:







Paso 8: Agregar una nueva clase llamada AccesoDatos.cs o AccesoDatos.vb

Imports System.Data
Imports System.Data.SqlClient

Public Class MetodosDatos
Public Shared Function CrearComando() As SqlCommand
Dim _cadenaConexion = Configuracion.CadenaConexion
Dim _conexion As New SqlConnection()
_conexion.ConnectionString = _cadenaConexion
Dim _comando As New SqlCommand()
_comando = _conexion.CreateCommand()
_comando.CommandType = CommandType.Text
Return _comando
End Function
End Class
Public Shared Function EjecutarComandoSelect(comando As SqlCommand) As DataTable
Dim _tabla As New DataTable()
Try
comando.Connection.Open()
Dim _adaptador As New SqlDataAdapter()
_adaptador.SelectCommand = comando
_adaptador.Fill(_tabla)
Catch ex As Exception

Finally
comando.Connection.Close()
End Try
Return _tabla
End Function
public static DataTable EjecutarComandoSelect(SqlCommand comando)
{
DataTable _tabla = new DataTable();
try
{
comando.Connection.Open();
SqlDataAdapter adaptador = new SqlDataAdapter();
adaptador.SelectCommand = comando;
adaptador.Fill(_tabla);
}
catch (Exception ex)
{ throw ex; }
finally
{ comando.Connection.Close(); }
return _tabla;
}


Paso 9: Crear un mtodo llamada ObtenerProductos() que retornar una tabla con los productos.
Cdigo C#:








Cdigo VB.NET:





Imports System.Data
Imports System.Data.SqlClient

Public Class AccesoDatos
Public Shared Function ObtenerProductos() As DataTable
Dim _comando As SqlCommand = MetodosDatos.CrearComando()
_comando.CommandText = "SELECT * FROM Productos"
Return MetodosDatos.EjecutarComandoSelect(_comando)
End Function
End Class
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace Datos
{
public class AccesoDatos
{
public static DataTable ObtenerProductos()
{
SqlCommand _comando = MetodosDatos.CrearComando();
_comando.CommandText = "SELECT * FROM Productos";
return MetodosDatos.EjecutarComandoSelect(_comando);
}
}
}


Paso 10: Crear otro proyecto, vaya a la parte del Explorador de soluciones (Solution Explorer) despus de clic
derecho y agregue un nuevo proyecto (New Project...), dicho proyecto lo llamar Logica y estar en el mismo
lugar que el anterior proyecto. Este proyecto se agregar a la solucin que usted ya tiene.

Paso 11: Cree una clase llamada AccesoLogica.cs o AccesoLogica.vb

Paso 12: Agregue una referencia al proyecto Logica, de esta forma.






Dentro del tab Proyectos (Projects) se encontrar con el proyecto Datos, si no lo encuentra, entonces vaya al
proyecto Datos en el Explorador de Soluciones y de clic derecho Construir (Build)







Paso 13: Asegrese que la .dll Datos se haya agregado al proyecto como referencia.
Despus cree un mtodo de la clase llamado ObtenerProductos()
Cdigo C#:








Cdigo VB.NET:






Imports DatosVB
Imports System.Data
Imports System.Data.SqlClient

Public Class AccesoLogica
Public Shared Function ObtenerProductos() As DataTable
Return AccesoDatos.ObtenerProductos()
End Function
End Class
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

using Datos;

namespace Logica
{
public class AccesoLogica
{
public static DataTable ObtenerProductos()
{
return AccesoDatos.ObtenerProductos();
}
}
}



Paso 14: Agregue un nuevo proyecto de tipo Windows Forms a la solucin existente.

Paso 15: Del formulario Form1 por Default, usted cambiar su propiedad Text a Productos y su propiedad
Name a Productos.



Paso 16: Cambie el nombre del formulario en el Explorador de Soluciones (Solution Explorer).



Paso 17: Coloque un control de datos DataGridView y despus presin F4 para buscar sus propiedad y cambiar
el de Nombre (Name) a gvProductos.

Paso 18: Como lo hizo en el proceso anterior agregue la referencia de la librera Logica al proyecto
Presentacion. Despus de dobleclic al formulario para iniciar con el evento PageLoad del Formulario.
Copie el siguiente cdigo:


Cdigo C#:











Cdigo VB.NET:





Si usted puede notar que el proyecto Datos est en modo negritas, ya que es el proyecto por Default, debe
cambiarlo a Presentacion.


Clic derecho a la solucin Propiedades Colocar Presentacin como proyecto de inicio.

Imports LogicaVB

Public Class Productos

Private Sub Productos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
gvProductos.DataSource = AccesoLogica.ObtenerProductos()
End Sub
End Class
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using Logica;

namespace Presentacion
{
public partial class Productos : Form
{
public Productos()
{
InitializeComponent();
}

private void Productos_Load(object sender, EventArgs e)
{
gvProductos.DataSource = AccesoLogica.ObtenerProductos();
}
}
}





Paso 18: Presione F5 para visualizar su formulario y la consulta.

Material elaborado por Microsoft Student Partners.

Dudas o Preguntas:
edison@student-partners.com
Blog:
http://mredison.wordpress.com

También podría gustarte