Está en la página 1de 24

EJEMPLO COMPLETO DE PROYECTO

APLICANDO ARQUITECTURA POR CAPAS


Por medio de este ejemplo ustedes pueden crear sus proyectos.
A continuación, mostramos la Base de Datos con la cual nos conectamos al
Proyecto, de esta Base de Daros vamos a realizar todo el proceso de una
aplicación con una de las tablas. También tenemos los procedimientos
almacenados con sus respectivos procedimientos almacenados.
Para efectos de facilidad les paso el script para que ustedes lo puedan
restaurar en su equipo.

BASE DE DATOS

Los procedimientos almacenados son:


ALTER procedure [dbo].[pa_Guardar_Categoria]
@idcategoria int,
@nombrecategoria varchar(100),
@descripcion text
As

Insert Into categorias (idcategoria, nombrecategoria,


descripcion)
Values(@idcategoria, @nombrecategoria, @descripcion)

ALTER procedure [dbo].[pa_Actualizar_Categoria]


@idcategoria int,
@nombrecategoria varchar(100),
@descripcion text

As

Update categorias
Set nombrecategoria=@nombrecategoria,
descripcion=@descripcion
Where idcategoria=@idcategoria

ALTER procedure [dbo].[pa_Borrar_Categoria]


@idcategoria int

As

Delete categorias
Where idcategoria=@idcategoria

ALTER procedure [dbo].[pa_Consultar_Categoria]


@idcategoria int

As

Select * From categorias


Where idcategoria=@idcategoria
CREACIÓN DE LA ESTRCUTRUA DEL
PROYECTO GENERAL
Desde Micrisoft Visual Studio.NET en la opción archivo damos click en nuevo
proyecto como se muestra en la pantalla.
Una vez damos click sobre la opción nuevo proyecto aparece la pantalla en la
cual elegimos la opción Aplicación ASP.NET en las opciones de la mitad de la
pantalla y procedemos a colocarle el nombre que para nuestro caso es
pedidos.
Luego nos aparece la siguiente pantalla donde seleccionamos Empty que
quiere decir para crear el proyecto vacío, este primer proyecto hace referencia
a la Intrefaz de usuario.
Miremos com ova quedando el Proyecto. Ahora nos falta crear las otras capas
que son Datos, Negocio y Entidades

Pero antes hay algo muy importante que es definer en el archive web.config
los parámetros para conectarnos a la base de datos.
Vamos a crear la capa de DATOS que es donde creamos los método para
conectarnos a la Base de Datos para Guardar, Actualizar, Borar y Consultar.

Ahora creamos la capa de Negocio que es de donde llamamos los métodos de


la capa de datos.
De esta manera nos va quedando el Proyecto.

Una vez creadas todas las capas debemos comunicarlas para poder tener
comunicación entre ellas, recordemos que las capas son DLLs.
AHORA REALICEMOS LAS REFERENCIAS, para crear las referencias debemos
tener en cuenta lo siguiente:
1. Seleccionando la capa de interfaz hacemos click derecho sobre ella e
indicamos agregar referencia y la comunicamos con Negocio y
Entidades.
2. Seleccionado la capa de negocio hacemos click derecho sobre ella e
indicamos referencia y la comunicamos con Datos y Entidades.
3. Seleccionado la capa de Datos hacemos click derecho sobre ella e
indicamos referencia y la comunicamos con Entidades.
4. Así de esta manera quedan comunicadas todas las capas entre sí.
5. Ahora miremos todo el proceso.
CÓDIGO GENERAL DE CADA UNA DE LAS
CAPAS DE LA SOLUCIÓN

DATOS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data.SqlClient;
using System.Configuration;

namespace Datos
{
public class cD_Conexion
{
public SqlConnection Conectar(string
pClaveWebConfig)
{
SqlConnection oCnx = new
SqlConnection(ConfigurationSettings.AppSettings[pClaveWeb
Config].ToString());
oCnx.Open();
return oCnx;
}

}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data;
using System.Data.SqlClient;
using Entidades;

namespace Datos
{
public class cD_Categorias
{
public bool Guardar (cE_Categorias oEntidades)
{
cD_Conexion oConexion = new cD_Conexion();
SqlCommand oComando = new SqlCommand();
oComando.CommandType =
CommandType.StoredProcedure;
oComando.CommandText =
"pa_Guardar_Categoria";
oComando.Connection =
oConexion.Conectar("oConnPedidos");

oComando.Parameters.Add("@idcategoria",oEntidades.idcateg
oria);

oComando.Parameters.Add("@nombrecategoria",oEntidades.nom
brecategoria);

oComando.Parameters.Add("@descripcion",oEntidades.descrip
cion);
oComando.ExecuteNonQuery();
return true;
}

public bool Actualizar(cE_Categorias oEntidades)


{
cD_Conexion oConexion = new cD_Conexion();
SqlCommand oComando = new SqlCommand();
oComando.CommandType =
CommandType.StoredProcedure;
oComando.CommandText =
"pa_Actualizar_Categoria";
oComando.Connection =
oConexion.Conectar("oConnPedidos");
oComando.Parameters.Add("@idcategoria",
oEntidades.idcategoria);
oComando.Parameters.Add("@nombrecategoria",
oEntidades.nombrecategoria);
oComando.Parameters.Add("@descripcion",
oEntidades.descripcion);
oComando.ExecuteNonQuery();
return true;
}

public bool Borrar(cE_Categorias oEntidades)


{
cD_Conexion oConexion = new cD_Conexion();
SqlCommand oComando = new SqlCommand();
oComando.CommandType =
CommandType.StoredProcedure;
oComando.CommandText = "pa_Borrar_Categoria";
oComando.Connection =
oConexion.Conectar("oConnPedidos");
oComando.Parameters.Add("@idcategoria",
oEntidades.idcategoria);
oComando.ExecuteNonQuery();
return true;
}

public DataSet Consultar(cE_Categorias


oEntidades)
{
cD_Conexion oConexion = new cD_Conexion();
SqlCommand oComando = new SqlCommand();
oComando.CommandType =
CommandType.StoredProcedure;
oComando.CommandText =
"pa_Consultar_Categoria";
oComando.Connection =
oConexion.Conectar("oConnPedidos");
oComando.Parameters.Add("@idcategoria",
oEntidades.idcategoria);
SqlDataAdapter oDa = new
SqlDataAdapter(oComando);
DataSet oDs = new DataSet();
oDa.Fill(oDs);
return oDs;
}

}
}
NEGOCIO

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using Entidades;
using Datos;
namespace Negocio
{
public class cN_Categorias
{
public bool Guardar(cE_Categorias oEntidades)
{
cD_Categorias oDCategorias = new
cD_Categorias();
return oDCategorias.Guardar(oEntidades);
}
public bool Actualizar(cE_Categorias oEntidades)
{
cD_Categorias oDCategorias = new
cD_Categorias();
return oDCategorias.Actualizar(oEntidades);
}
public bool Borrar(cE_Categorias oEntidades)
{
cD_Categorias oDCategorias = new
cD_Categorias();
return oDCategorias.Borrar(oEntidades);
}
public DataSet Consultar(cE_Categorias
oEntidades)
{
cD_Categorias oDCategorias = new
cD_Categorias();
return oDCategorias.Consultar(oEntidades);
}
}
}
ENTIDADES

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Entidades
{
public class cE_Categorias
{
public int idcategoria { get; set; }
public string nombrecategoria { get; set; }
public string descripcion { get; set; }
}
}
CAPA DE PRESENTACIÓN

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Negocio;
using Entidades;
using System.Data;

namespace Pedidos
{
public partial class wfCategorias :
System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs
e)
{

}
protected void btnGuardar_Click(object sender,
EventArgs e)
{
cE_Categorias oEntidades = new
cE_Categorias();
cN_Categorias oNegocio = new cN_Categorias();
oEntidades.idcategoria = 0;
oEntidades.nombrecategoria = txtNombre.Text;
oEntidades.descripcion = txtDescripcion.Text;
oNegocio.Guardar(oEntidades);

protected void btnActualizar_Click(object sender,


EventArgs e)
{
cE_Categorias oEntidades = new
cE_Categorias();
cN_Categorias oNegocio = new cN_Categorias();
oEntidades.idcategoria = 0;
oEntidades.nombrecategoria = txtNombre.Text;
oEntidades.descripcion = txtDescripcion.Text;
oNegocio.Actualizar(oEntidades);
}

protected void btnBorrar_Click(object sender,


EventArgs e)
{
cE_Categorias oEntidades = new
cE_Categorias();
cN_Categorias oNegocio = new cN_Categorias();
oEntidades.idcategoria = 0;
oEntidades.nombrecategoria = txtNombre.Text;
oEntidades.descripcion = txtDescripcion.Text;
oNegocio.Borrar(oEntidades);
}
protected void btnConsultar_Click(object sender,
EventArgs e)
{
cE_Categorias oEntidades = new
cE_Categorias();
cN_Categorias oNegocio = new cN_Categorias();
oEntidades.idcategoria =
Convert.ToInt32(txtCodigo.Text);
DataSet oDs = new DataSet();
oDs=oNegocio.Consultar(oEntidades);
txtNombre.Text=
oDs.Tables[0].Rows[0]["nombrecategoria"].ToString();
txtDescripcion.Text=
oDs.Tables[0].Rows[0]["descripcion"].ToString();

}
}
}
CONCLUSIONES
Espero este ejemplo les sirva para aclarar todas las dudas que me
manifestaron.