Está en la página 1de 13

UNIVERSIDAD NACIONAL DE INGENIERA RECINTO UNIVERSITARIO SIMN BOLIVAR FACULTAD DE ELECTROTECNIA Y COMPUTACION

Manual de Programacin en Tres Capas Con Visual Studio C #

Integrantes: Manuel Abraham Gutirrez Rojas Jeanneth del Socorro Mota Lpez Nelson Eddy Castro Chavarra Grupo: 4T1-CO --- 2011

Docente: Giovanni Senz

Jueves 18 de agosto de 2011

Manual de Usuario Arquitectura de Tres Capas


En este pequeo manual, se explicarn los pasos para crear un proyecto en tres capas, para tener un mejor control de la aplicacin que se est desarrollando. A continuacin una breve introduccin al uso de cada una de las capas: Capa Datos Aqu se incluyen nicamente los componentes de la conexin de datos: Conexin Conjunto de Datos (Dataset) DataAdapter Capa Negocios En esta capa, se incluyen todos los mtodos para manipular al proyecto, las conexiones a datos, aqu es donde se realiza el desarrollo del nucleo de la aplicacin. Capa Interfaz Aqu simplemente se ubican los formularios de los que constar la aplicacin, y desde esta capa solamente se invoca a los mtodos de la capa de Negocios.

Explicamos el procedimiento paso a paso de cmo crear un proyecto en 3 capas con la plataforma visual studio 2008 en el lenguaje C# Abrir Visual Studio y crear un nuevo Proyecto

Manual de Usuario Arquitectura de Tres Capas


Seleccionar el lenguaje en el cual vamos a desarrollar nuestra aplicacin y luego colocar el nombre de nuestra solucin por ultimo ingresar el nombre de nuestro primer proyecto, que ser la capa de interfaz, este proyecto debe de ser del tipo Windows Form Application

Crear los formularios Necesarios para la aplicacin Para efecto de ejemplo se crear una nica pantalla donde se cargarn los datos en un dataGridView desde una base de datos, para lo cual se deben seguir los siguientes pasos: Renombrar el Formulario por defecto (Form1) con el nombre de frmPrincipal, al igual que el archivo Form1.cs Aadir un componente de tipo dataGridView y renombrarlo con el nombre de dgvDatos

Ya con nuestro proyecto de interfaz creado, el siguiente paso ser crear la capa de datos para lograr una conexin con la base de datos. Para esto se debe crear un nuevo proyecto en nuestra solucin este tipo de proyecto ser una biblioteca de clases ya que al momento de construir la solucin este proyecto ser exportado como un .dll

Manual de Usuario Arquitectura de Tres Capas


Para aadir un nuevo proyecto a la solucin hacer click derecho sobre el nombre de la solucin, Agregar, Nuevo Proyecto

Posteriormente ingresar el nombre del proyecto (En nuestro caso datos, para hacerlo ms representativo) y seleccionar el tipo de proyecto biblioteca de clases

Luego de crear nuestro proyecto datos, renombramos la clase que aparece por defecto (Class1.cs) con el nombre clsDato.cs
4

Manual de Usuario Arquitectura de Tres Capas


Como se haba mencionado anteriormente, en esta capa se ubica nicamente los objetos para manipular los datos, como lo son la conexin, los adaptadores y los dataset Esta clase mas detallada queda asi: Aadir directivas using para datos
using System.Data.SqlClient; using System.Data; public class clsDato { #region Variables de Instancia private private private private private #endregion string string string string string _BD = "[Nombre_BD]"; _PWD; //Contrasea _User; //Nombre de Usuario _Servidor = "[Nombre_SERVER]"; _Error; //Mensaje de Error de la BD

Estas variables son usadas para Instanciar la cadena de Conexin hacia el servidor de la BD
#region Variables Publicas public System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(); public System.Data.SqlClient.SqlConnection cnx = new System.Data.SqlClient.SqlConnection(); public System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); public System.Data.DataSet ds = new DataSet(); #endregion

Las variables pblicas creadas arriba son las que manipularan la conexin de los datos en las capas de Negocio e Interfaz A continuacin el encapsulamiento de las variables de Instancia, para obtener o colocar el valor de dicha variable
#region Propiedades /// <summary> /// Nombre de la Base de Datos /// </summary> public string BD { get { return this._BD; }

Manual de Usuario Arquitectura de Tres Capas


set { this._BD = value; } } /// <summary> /// Nombre del Usuario que accede a la BD /// </summary> public string User { get { return this._User; } set { this._User = value; } } /// <summary> /// Nombre del Servidor /// </summary> public String Servidor { get { return this._Servidor; } set { this._Servidor = value; } } /// <summary> /// Contrasea del Usuario que accede a la BD /// </summary> public string PWD { get { return this._PWD; } set { this._PWD = value; } } /// <summary> /// Mensaje de Error de la BD /// </summary> public String Error { get { return this._Error; } set {this._Error = value;} } #endregion

Manual de Usuario Arquitectura de Tres Capas


A continuacin la lista de metodos que manipularan la conexin a los datos, en nuestro caso solo hemos utilizado uno, que es para crear la conexin
#region Metodos /// <summary> /// Crea la conexin con la Base de Datos /// </summary> /// <param name="bolAutenticacion">true--> Autenticacion de SQL, false-->Autenticacion de Windows</param> public void ConectarBD(Boolean bolAutenticacion) { this.cnx = new System.Data.SqlClient.SqlConnection(); if (bolAutenticacion == true) { this.cnx.ConnectionString = "Data Source=" + this.Servidor + ";Initial Catalog=" + this.BD + ";Persist Security Info=TRUE;User ID=" + this.User + ";Password=" + this.PWD; } else { this.cnx.ConnectionString = "Data Source=" + this.Servidor + ";Initial Catalog=" + this.BD + ";Integrated Security=True"; } } #endregion } //Fin de la clase clsDato

Ya que hemos concluido el diseo de la capa de Datos, procederemos a crear nuestra capa de Negocio, que contendr el llamado a los procedimientos de la Base de Datos para ingreso y consulta de Datos De la misma manera se crear otro proyecto de tipo biblioteca de clases bajo el nombre de Negocio

Manual de Usuario Arquitectura de Tres Capas


Y procedemos a renombrar la clase por defecto ahora bajo el nombre clsMetodos.cs. Cabe destacar que en esta capa existen dos formas de ubicar el cdigo, la primera es colocar el cdigo de todas las clases en clsMetodo luego de la declaracin del NameSpace
namespace Negocio { public class Clase1 { } public class Clase2 { } public class Clase3 { } }

La otra opcion es aadir clases al proyecto

No se sugiere ninguna, ya que ambas generan el mismo resultado, en nuestro caso utilizaremos la forma 1 y dividiremos las clases con regiones. Ahora que tenemos creados nuestros 3 proyectos o capas, se debe hacer el enlace entre los mismos para que un proyecto pueda tener referencias del otro.

Manual de Usuario Arquitectura de Tres Capas


A nuestro proyecto de interfaz le aadiremos las referencias a los proyectos de Negocio y Datos, para esto seguir los siguientes pasos: Click derecho al proyecto Interfaz y luego seleccionar la opcin Aadir referencia

Seleccionar la pestaa de Proyectos y elegir ambos proyectos

Manual de Usuario Arquitectura de Tres Capas


Para la capa de Negocio, se debe realizar el mismo procedimiento, pero solo se seleccionara la capa de Datos que es a la nica que consultaran los mtodos que se creen en este proyecto

Si el Visual Studio no ha colocado al proyecto Interfaz como el proyecto principal (En letra negrita) se puede sealar haciendo click derecho sobre el proyecto y seleccionar la opcin Establecer como proyecto Principal

10

Manual de Usuario Arquitectura de Tres Capas


Ahora que ya contamos con nuestros 3 proyectos y ya se han creado las referencias, procedemos al desarrollo del cdigo para el proyecto de Interfaz Nuestro proyecto de Ejemplo constar de un solo mtodo en la capa de Negocio en una clase llamada Proveedores. Este mtodo ejecutar un SELECT de una vista almacenada en la base de datos el la clase ser de la siguiente manera: Primero las directivas using adicionales, ya que trabajaremos con la base de datos
using System.Data; using System.Data.SqlClient; y agregar el using a las referencias using Datos;

El constructor de la clase recibe un parmetro de tipo clsDato, dado que en esta clase los objetos para la conexin ya estn instanciados
#region Proveedores /// <summary> /// Clase para manipular /// los datos de los Proveedores /// </summary> public class Proveedores { clsDato dato; //Objeto de tipo clsDato /// <summary> /// Constructor de la clase /// </summary> /// <param name="d">Objeto de tipo clsDatos instanciado</param> public Proveedores(clsDato d) { this.dato = d; }

Ahora procederemos a la creacion de un metodo que retorna un dataTable con la informacion de los Proveedores *El nombre de la vista se puede cambiar por uno existente en su Base de Datos
/// <summary> /// Obtiene los Datos de los Proveedores /// </summary> /// <returns>dataTable con la informacin</returns> public DataTable getProveedores() { DataTable dt = new DataTable(); String query = "SELECT * FROM VW_Proveedores";

11

Manual de Usuario Arquitectura de Tres Capas

//Abrir la conexion con la BD this.dato.cnx.Open(); //Limpiar el dataSet this.dato.ds.Tables.Clear(); //Llenar las tablas con la consulta this.dato.da = new SqlDataAdapter(query, this.dato.cnx); this.dato.da.Fill(this.dato.ds, "Proveedores"); //Cerrar la conexion this.dato.cnx.Close(); //retornar la tabla return this.dato.ds.Tables["Proveedores"]; } }//Fin de la Clase Proveedores #endregion

Ahora en Nuestra capa de Inerfaz en el formulario frmPrincipal, especificamente en el metodo load, procederemos a cargar los datos de la vista que se invocan desde la capa de Negocio Para esto se aaden las directivas using de los 2 proyectos adicionales
using Datos; using Negocio;

La clase frmPrincipal quedar de la siguiente manera con el llamado al mtodo de la capa de Negocio en el Load del Formulario
public partial class frmPrincipal : Form { clsDato dato = new clsDato(); //Objeto de Tipo clsDato Instanciado public frmPrincipal() { InitializeComponent(); } private void frmPrincipal_Load(object sender, EventArgs e) { try { //Crear la conexion para la autenticacion de Windows this.dato.ConectarBD(false); //Crear objeto de tipo Proveedores Proveedores prov = new Proveedores(this.dato); //Cargar la tabla con los Proveedores dgvDatos.DataSource = prov.getProveedores(); }

12

Manual de Usuario Arquitectura de Tres Capas

catch (Exception ex) { MessageBox.Show(ex.Message.ToString(),"Error", MessageBoxButtons.OK,MessageBoxIcon.Error); } } }

Ya que el metodo getProveedores retorna un dataTable, se asigna directamente la fuente de datos del dataGridView, y la linea
this.dato.ConectarBD(false); o this.dato.ConectarBD(true);

Debe ir siempre que se invoque a un metodo que implique conexin, ya que esta linea instancia la cadena de conexion Ahora si ejecutamos el programa (F5) los resultados sern similares a los siguientes

En este manual, se ha mostrado como capturar los datos desde la BD, pero de la misma manera se puede hacer cualquiera de las operaciones soportadas por el gestor de BD como ejemplos:
String sqlIns = "INSERT INTO TABLE(V1) VALUES '"+ var +"' ";

Solamente se manda a ejecutar como un comando sql en el metodo encargado de la accion. De la misma manera si se desea hacer fuentes de datos directas con la BD (con asistente), se deben crear los componentes en la capa de Negocio, y hacer referencia con el objeto clsdato

13

También podría gustarte