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í

jueves, 20 de octubre de 2011

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

Recapitulemos:

En la primera parte, vimos que elementos se necesitan para tener una aplicación en 3 capas.

En la 2da parte configuramos nuestra solución para que funcionara como una Solución en N-Capas.

En esta 3era parte vamos con lo bueno, ahora sí, vamos a programar.


Primero vamos a agregar las entidades; vamos a agregar una clase en el proyecto NCapas_Entidades, vamos a dar clic con el botón derecho del mouse sobre el "proyecto de NCapas_Entidades" y vamos a "Add" o "Agregar" y damos clic en "Nuevo Elemento".




Ahora seleccionamos del lado derecho donde dice "Visual C# Items" y del lado derecho elegimos Class y le agregamos el nombre "clsUsuarios_ent.cs" y damos clic en "OK".

Nota: le pongo el prefijo cls para identificar que es una clase y le dejo el postfijo Ent para identificar que esa clase, es una clase de entidades, esto es muy útil cuando el proyecto crece mucho.




Ahora vamos a agregarle las entidades que vamos a estar manejando. Para este ejemplo usare las entidades nombre y apellido.

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

namespace NCapas_Entidades
{
public class clsUsuarios_Ent
{
private String _nombre;
private String _apellido;

public String nombre
{
get
{
return _nombre;
}
set
{
_nombre = value;
}
}
public String apellido
{
get
{
return _apellido;
}
set
{
_apellido = value;
}
}
}
}

y quedara así la clase clsUsuarios_Ent:



Ahora, agregaremos una clase a la capa de datos(NCapas_DAL).
El nombre de nuestra clase será clsObtUsuarios_DAL.cs.




Si se dan cuenta agregue en los using los demas proyectos, para no tener que escribir mucho al invocar las clases en otros proyectos.

Aquí vamos a hacerlo simple, no iremos a la BD, en la 4ta parte, se vera un ejemplo invocando la BD.


La clase clsObtUsuarios_DAL debe contener esto.

using NCapas_Entidades;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NCapas_DAL
{
public class clsObtUsuarios_DAL
{
public clsUsuarios_Ent ObtUsuarios()
{
clsUsuarios_Ent usuarios = new clsUsuarios_Ent();

usuarios.nombre = "Jorge";
usuarios.apellido = "Sánchez";

return usuarios;
}

}
}

y así debe verse.



En la 4ta parte vamos a programar sobre la capa de negocio y la capa de presentación y veremos un ejemplo con BD.

miércoles, 19 de octubre de 2011

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

En la primera parte, vimos que elementos se necesitan para tener una aplicación en 3 capas.

En esta 2da parte del tutorial vamos a configurar nuestra solución.

Lo que vamos a hacer es que vamos a referenciar la Capa de presentación con la capa de negocios, para hacerlo hacemos lo siguiente, damos clic con el botón derecho del mouse sobre la capa de presentación, en este caso sería sobre el proyecto NCapasSimple y "Agregamos una referencia" o "Add Reference".



Nos situamos sobre la pestaña "Projects" o "Proyectos" y seleccionamos el proyecto NCapas_BL y damos clic en "OK".



Ahora vamos a referenciar la Capa de Negocios con la capa de Datos, para hacerlo hacemos lo siguiente, damos clic con el botón derecho del mouse sobre la capa de Negocios, en este caso sería sobre el proyecto NCapas_BL y "Agregamos una referencia" o "Add Reference".



Nos situamos sobre la pestaña "Projects" o "Proyectos" y seleccionamos el proyecto NCapas_DAL y damos clic en "OK".



Ahora sobre cada capa vamos a agregar la referencia "NCapas_Entidades".
Nota: El proyecto entidades, no es una capa, las capas son :
Presentación, Negocios y Datos.






Y así les debe quedar su Solución.


martes, 18 de octubre de 2011

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

Vamos a realizar un proyecto web con ASP.NET C# y Entidades.

Antes de empezar, hay que dejar bien claro algunos conceptos como BL, DAL, RN, Presentación, VS.

- BL es la Bussines Layer o la capa de negocios.
- RN significa reglas del negocio, que están contenidas en la BL.
- DAL es Data Acces Layer o Capa de Acceso a Datos, es la que se va a estar comunicando con la Base de Datos.
- Presentación, esto es el front, lo que el usuario va a visualizar.
- VS es Visual Studio
- IDE es el Integrated Development Environment, su ambiente de desarrollo ó de una forma más coloquial, es su compilador.

Para mayor información de un IDE.
http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado


Las capas que manejaremos son:
-Capa de negocio
-Capa de datos
-Capa de presentación.

Suficiente teoría.

Voy a utilizar Visual Studio 2008 por que me es más cómodo, pero pueden usar el IDE que guste, ya sea VS 2003, 2005, 2008 y 2010.

Inicio el VS 2008 y voy al menú de File y Creo un nuevo proyecto.
Voy a seleccionar un proyecto de tipo "Web" y de los templates que hay selecciono el que dice "ASP.NET Web Application" y le agrego un nombre, este nombre va a ser el que se utilizara en toda la solución, le pondre el nombre de NCapasSimple y doy clic en "OK".
Una vez realizado, empiezo a agregar la capa de negocios(BL), doy clic con el botón derecho del mouse sobre la solución, me dirigo a donde dice "Add" o "Agregar" y agrego un "New Project" o "Nuevo proyecto".
Ahora sobre el tipo de proyecto "Visual C#" me coloco sobre un tipo de proyecto "Windows" y selecciono el template "Class Library" y le pongo como nombre "NCapas_BL", que sera mi capa de negocios y doy clic en "OK"
Ahora agregaremos la capa de datos, damos clic con el botón derecho del mouse sobre la solución, me dirigo a donde dice "Add" o "Agregar" y agrego un "New Project" o "Nuevo proyecto".
Ahora sobre el tipo de proyecto "Visual C#" me coloco sobre un tipo de proyecto "Windows" y selecciono el template "Class Library" y le pongo como nombre "NCapas_DAL", que sera mi capa de datos y doy clic en "OK"
Ahora agregaremos las entidades, que son variables que estarán viajando por todas las capas, damos clic con el botón derecho del mouse sobre la solución, me dirigo a donde dice "Add" o "Agregar" y agrego un "New Project" o "Nuevo proyecto".
Ahora sobre el tipo de proyecto "Visual C#" me coloco sobre un tipo de proyecto "Windows" y selecciono el template "Class Library" y le pongo como nombre "NCapas_Entidades", que sera las entidades que viajaran entre las capas y doy clic en "OK"
Hasta aquí, ya creamos los proyectos necesarios para crear una aplicación en N-Capas, en la segunda parte, vamos a configurar los proyectos.

miércoles, 19 de mayo de 2010

Hoy voy a escribir un millón de frases sueltas

Hoy voy a escribir un millón de frases sueltas. Voy a gritar un sinsentido, a esculpir una figura de palabras que no te deje indiferente. No se trata de hacer una impostura ni un fuego floral o evanescente. Se trata de crear una melodía con el eco de tu lectura, formular la más peregrina teoría sobre la creación y sus locuras, hacer brotar la sinfonía de tu garganta de lector.

Estas palabras aspiran a enredarse entre tus labios, desean ser leídas en voz alta, suspiran a que grites: Alegría, lluvia, huracán, fantasía.

Estas líneas no quieren ser un monólogo individual sino un grito colectivo que cobre vida en cada mirada, tras cada letra pronunciada en cualquier rincón del mundo.

Hoy voy a lanzarme al vacío, a dar un paso más allá de la demencia. Hoy voy a travesear con este abecedario que conjuga libertad como su primer verbo transitivo. Hoy voy a jugármela a todo o nada. Apostemos a que es posible hacer bailar al corazón con la literatura. Desafiemos a las musas con un buen corte de mangas, con un largo trago de ron de aquel barco pirata que soñamos en la infancia. Y, por una vez, que dios quiera sirva de precedente, zallemos el idioma de las reales academias. Plantemos cara a la rutina, a los géneros literarios, al sujeto, verbo y predicado, al lenguaje encorsetado y frígido de los que entiende la escritura como una teoría científica.

Estoy escribiendo en un teclado que aspira a ser un piano de colores, un acordeón porteño y seductor donde descorrer las sábanas de una cama. Música, maestro. Música para sostener la mirada a la razón con ojos bizcos.

Usemos palabras imposibles. Palabras como: ¡Evohé! ,sachaguasca, guedeja, ventorrero, ahelear, cendradilla. Usémoslas y busquemos un rincón para ventosear los miedos y las penas. Hoy está prohibida la tristeza. Hoy hay tiempo para decorar las sílabas con plumas de quetzal, para untar los adjetivos con nata y fresa helada.

¿No lo ves? Hoy es posible escribirle cartas a la vida con el matasellos de la lírica. Es posible perderle el respeto a los fracasos. Qué más da rodar por la pendiente si uno es capaz de no ponerle un punto y final a los ensueños.

Y al igual que una vieja canción o un aroma que nos llega de improviso nos hacen viajar, soñar, recordar un instante que quedó sujetado a la memoria, pueden las palabras aletear el viento de un recuerdo o sacar a relucir la plata de un instante, de un beso, de una caricia perdida en el destiempo. Por eso es tan hermosa y tan jodida esta locura de escribir.

Gira la ruleta, y en el tablero del blackjack el crupier recoge las cartas, ruedan los dados por la mesa y el cuarto as nos ha dado la espalda en el póquer. Pero no importa. Con un trío es posible reinventar la quimera de cualquier sustantivo, poner en pie la fiesta.

Veamos. Disponemos del as de corazones del idioma, el as de picas del atrevimiento y del as de trébol de la gramática. No es poca cosa, desde luego. Llevemos el envite hasta el final. No es momento de echarse atrás en la aventura.

Si te asomas a la ventana y observas un aleteo de palomas, no te preocupes. No es más que una exageración sentimental, un espejismo donde el espíritu se viste de lentejuelas azules, una prueba definitiva de que al ego le encanta mezclarse con algo más que reyes y aristócratas.

Me creo a pies juntillas el rumor del oleaje, la azul verdad de este cielo atardeciendo. Pero no hay ninguna oración subordinada que hable del amor a estas horas de la tarde. A pesar de que, tomen nota Cleopatra y Marco Antonio, ni siquiera en los burdeles de Nueva Orleáns se permiten la osadía de no mirar al sol cuando agoniza.

Ya son las cinco de la tarde, las cinco de la tarde de un día donde Lorca recorre nuevamente las umbrías de Columbia University a paso lento y declama su oda a Walt Whitman con un donuts en la boca. Los noticieros queman sus inciensos de terror y tomo partido por esa historia que cuenta que Eros anda metido a taxista por el asfalto de Manhattan.

Es bueno recitar algún poema como el que reza a cualquier Dios. Es bueno orar a las bacantes con aliento de borracho juguetón. Es necesario cantar como y con Facundo Cabral No soy de aquí ni soy de allá. No tengo edad ni porvenir.

Provoquemos a los dioses con un beso a primera sangre, gritándonos te amo sin venir a cuento, mezclemos lo sagrado y lo profano en un collage de color púrpura. No renunciemos jamás a la realidad y sus misterios, ni creamos que el desamor es la última estación de nuestras vidas, ni sintamos la nostalgia como la soledad del presente. El futuro está ahí para palparle lascivos la entrepierna y su trasero. ¡Hagámoslo!

Démosles ya la vuelta a los naipes. Le hemos perdido el temor a la derrota. No nos importa el resultado pues, qué más da rodar por la pendiente si hasta dios es capaz de no ponerle un punto y final a los ensueños.

jueves, 29 de abril de 2010

Facebook Developer...close :c

Hasta hace unas semanas había un gran bug o bueno un fácil acceso a la información a atravez del Facebook Developer Tools, parte de lo que nos permitía, era una zona de pruebas, donde podíamos entre algunas cosas ver todos los álbumes de algún usuario(el usuario que nosotros quisiéramos descubrir esos álbumes ocultos c:).

Que grande fue mi sorpresa cuando dije ah voy a hacer un script para que los usuarios de mi blog se puedan conectar a facebook y usar el mismo user, todo parecía bien, tenia una idea vaga de como hacerlo, pero cual fue mi sorpresa que al entrar a http://developers.facebook.com/tools veo que ya no existe ninguna pagina, al principio

pensé, bueno le deben de estar dando mantenimiento, pero tras varios días, me imagine lo impensable, busque un poco en la red y cual fue mi sorpresa al ver que.. en efecto
ya no existía mas esa dirección, aparentemente los developers de facebook se dieron cuenta que era demasiada información al alcance de los mortales.

Pero no pasa nada, ya saldrá otro bug, y cuando salga, lo compartiré x)

lunes, 26 de abril de 2010

1 y Única Llamada... Cooomenzamos!

Debido a mi gran necesidad de escribir, empezare a partir de hoy este blog, pues básicamente es un diario del mexican geek style, que aunque no soy tan geek, para el promedio de México si lo soy, y me siento orgulloso de ser Geek. Por que soy Geek, estoy Hecho en México, por eso estoy bien Hecho. XD

Total, por hoy es todo, falta configurar los feed's, la conexion de fb y lo mas importante mis proyectos de la facu!! Y mi carro, pero eso no depende de mi... I Miss My car... :P

Si baso mi felicidad en las cosas materiales y le soy fiel a mis convicciones, el materialismo y el capitalismo, no soy hipocrita al decir que esas convicciones me hacen feliz, aunque claro no por ser materialista y capitalista deje a la humanidad de lado, lastimosamente para mi soy demasiado filantropo...pero es que hay tanta gente que no deberia vivir XD

Pero bueno, esa sera conversacion por otro dia, por mientras a seguirle a la chamba.. =)

Y recuerden "El estilo puede pasar, pero la inteligencia nunca pasa de moda ;D" atte. YSan