Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de esto consiste en separar la capa de datos de la capa de presentacin al usuario Fuente: Wikipedia.
Ahora abrimos el Microsoft Visual Studio 2008 y crearemos nuestro proyecto en C#, llamaremos a este proyecto Presentacion, la cual esta ser la capa de presentacin.
Como observaran en el Explorador de Soluciones (Solution Explorer), solo tenemos Presentacion, entonces ahora tenemos que crear nuestras capas de negocio, entidad y dato.
Para crear nuestras tres capas faltantes, tenemos que agregar nuevas libreras de clase (Class Library), dentro de nuestro proyecto del Visual Studio. Vamos a agregar primero nuestra capa entidad:
Ahora como se observa a continuacin en nuestro Explorador de soluciones (Solution Explorer), contiene librera llamada entidad, esta ser nuestra capa de entidad.
Cuando finalicen en agregar las siguientes capas el Explorador de soluciones se debera de mostrar de la siguiente manera:
El orden no importa, solo asegrense de crear primero la capa presentacin. Nota: Si gustan pueden eliminar el archivo clase llamado Class1.cs.
Este paso lo repiten hasta terminar de referenciar: Referencia entidad y datos negocio Referencia entidad y negocio presentacion.
Una vez terminado de referenciar todas nuestras capas, tenemos que agregar el archivo SQLHelper.cs a la capa de datos. Para esto solo arrastramos el archivo hacia nuestra capa datos.
Consulta en Capas Antes de empezar, crearemos un StoreProcedure que solo realice una lista de todos nuestros empleados de la tabla Employees de la base de datos Northwind.
Capa datos En la capa datos agregamos una clase EmpleadoBD, y agregamos las siguientes lneas de cdigo:
using using using using entidad; System.data.Sqlclient; System.data; Microsoft.ApplicationBlocks.Data;
public class EmpleadoBD { SqlConnection cn=new SqlConnection(Aqui tu cadena de conexion); public DataSet ListarEmpleadoBD() { return SqlHelper.ExecuteDataset(cn,listar_empleado); } }
Capa Negocio En la capa negocio agregamos una clase llamada EmpleadoB, y agregamos las siguientes lneas de cdigo:
using using using using System.Data; System.Data.SqlClient; Datos; Entidad; public class EmpleadoB { datos.EmpleadoBD ObjEmpleado=new datos.EmpleadoBD(); public DataSet ListarEmpleadoB() { return ObjEmpleado.ListarEmpleadoBD(); } }
negocio.EmpleadoB objListarEmpleadoB=new EmpleadoB(); private void button1_Click(object sender, System.EventArgs e) { DataSet ds= new DataSet(); ds=objListarEmpleadoB.ListarEmpleadoB(); dataGridView1.DataSource=ds.Tables[0]; ds.Dispose(); }
Capa Entidad En esta capa no hacemos nada por ahora, si gustan le agregan una clase llamada EmpleadoE
public class EmpleadoE { }
Cuando ejecutemos nuestro programa, tendr que visualizar todos los Employees (empleados) cuando hagamos clic en el botn Listar.
Capa Entidad En esta capa agregamos una clase y la llamamos regusuario y luego vamos a definir primero los atributos de la clase y luego vamos a encapsularlos.
public class regusuario { //atributos de una clase private string mcodigo; private string mnombre; private int medad; private int mtelefono; private string mclave; //implementar el encapsulamiento public string codigo { get { return this.mcodigo; } set { this.mcodigo = value; } } public string nombre { get { return this.mnombre; } set { this.mnombre = value; } }
public int edad { get { return this.medad; } set { this.medad = value; } } public int telefono { get { return this.mtelefono; } set { this.mtelefono = value; } } public string clave { get { return this.mclave; } set { this.mclave = value; } } }
Capa Datos Aqu haremos la conexin con la base de datos y con el SqlHelper llamaremos al store procedure (sp_regusuario), para que envi los parmetros la cual vamos a definirlos en esta capa, recomiendo que el nombre de los parmetros deben ser igual al los atributos de la clase. Agregamos una clase y la llamamos RegistrarUsu
using using using using Entidad; System.Data; System.Data.SqlClient; Microsoft.ApplicationBlocks.Data;
{ string codigo; string nombre; int edad; int telefono; string clave; codigo = objmanusuario.codigo; nombre = objmanusuario.nombre; edad = objmanusuario.edad; telefono = objmanusuario.telefono;
clave = objmanusuario.clave; try { SqlHelper.ExecuteNonQuery(cn,"sp_regusuario", codigo, nombre, edad, telefono, clave); return true; } catch { return false; } } }
Capa Negocio Aqu agregamos una clase y la llamamos NEmpleado, en la cual vamos a crear un objeto (objregusu) haciendo referencia de la capa Datos de la clase RegistrarUsu.
public class NEmpleado { Datos.RegistrarUsu objregusu = new Datos.RegistrarUsu();
public Boolean registrarusuario(Entidad.regusuario objmanusuario)
objmantenimiento.codigo = textBox1.Text; objmantenimiento.nombre = textBox2.Text; objmantenimiento.edad = int.Parse(textBox3.Text); objmantenimiento.telefono = int.Parse(textBox4.Text); objmantenimiento.clave = textBox5.Text; if (objListarEmpleadoN.registrarusuario(objmantenimiento)) {
MessageBox.Show("Guardo con Exito", "Registro y listar");
this.listarusuario(); } else {
MessageBox.Show("Error", "Registro y listar");
} }
* El listarusuario() es un listar datos en un GridView; por lo cual estos pasos estan explicados esta en el tema anterior (consulta en capas).
public void listarusuario() { DataSet ds = new DataSet(); ds = objListarEmpleadoN.ListarEmpleadoN(); dataGridView1.DataSource = ds.Tables[0]; ds.Dispose(); }
Este manual demuestra un estilo de programacin en capas, en la cual recalco que no es el nico estilo, existen muchos estilos de cmo programar en capas. Atte. El Autor.