martes, 27 de noviembre de 2012

ASP.NET en N-Capas con C# y Entidades(4 de 4)


En esta 4ta parte del tutorial, iremos un poco más rápido y daré por sentado algunas cosas.


Sobre la capa de negocios(NCapas_BL) vamos a agregar una clase con el nombre clsUsuarios_BL.cs.



Esta clase lo que hara es invocar a la clase clsObtUsuarios_DAL de la capa de datos y regresara una clase de entidades.

Para poder recibir esa clase de entidades, la clase de entidades a la que debe llegar debe ser del mismo tipo. Si se regresa una clase de tipo clsUsuarios_Ent se debe de asignar a una clase del mismo tipo, vamos a agregar lo siguiente en la capa y quedara así.



using NCapas_DAL;
using NCapas_Entidades;

namespace NCapas_BL
{
public class clsUsuarios_BL
{

public clsUsuarios_Ent ObtUsuarios_BL()
{
clsUsuarios_Ent usuarios = new clsUsuarios_Ent();
clsObtUsuarios_DAL db = new clsObtUsuarios_DAL();
usuarios = db.ObtUsuarios();

return usuarios;
}
}
}

Ahora nos iremos a la capa de presentación, accedemos a las paginas, en mi caso entrare a Defaul.aspx y en el código lo dejare de este modo:




using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using NCapas_BL;
using NCapas_Entidades;

namespace NCapasSimple
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            clsUsuarios_ent userFrontEnd = new clsUsuarios_ent();
            userFrontEnd = clsObtenerUsuario_BL();
            Response.Write(userFrontEnd.Nombre);
            Response.Write(userFrontEnd.Apellido);

        }
    }
}

Si queremos acceder a una Base de Datos, en la capa de datos, en la clase clsObtUsuarios_DAL en el método ObtUsuarios, agregamos lo siguiente:
NOTA: es una BD de SQL.



        public clsUsuarios_ent ObtUsuarios()
        {
            clsUsuarios_ent usuarios = new clsUsuarios_ent();
            SqlConnection con = new SqlConnection("Server=localhost;Database=NombreBaseDeDatos;User Id=nombreUsuario;Password=Contraseña;");
            string qry = "SELECT TOP 1 NOMBRE, APELLIDO FROM CLIENTES";
            SqlCommand cmd = new SqlCommand(qry, con);
            try
            {
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read)
                {
                    usuarios.Nombre = dr.GetString(0);
                    usuarios.Apellido = dr.GetString(1);
                }
                con.Close();
            }
            catch (Exception)
            {
                throw;
            }
            return usuarios;
        }


Las credenciales del servidor, dependen de uds, cámbienlas de acuerdo a las que tienen. Esto sería todo, las 3 capas y las entidades ya están listas. Recuerden siempre poner nombres descriptivos, así evitaran que otros programadores quieran matarlos.

Les anexo la solución con conexión a una base de datos, sólo recuerden cambiar las credenciales de la bd de sql Server. Descargar aquí