miércoles, 29 de mayo de 2013

Mantenimientos y Ajax

Cuando se trata de programar en vb / c# siempre queremos una interfaz amigable para el usuario, tanto para nosotros.

Lo bueno de Visual Studio es que podemos tener distintas herramientas de terceros que nos ayudarán a crear pantallas más dinámicas, una de estas es la famosa herramienta AjaxControlToolkit, con tan solo hacer referencia a nuestro proyecto web, podremos empezar a trabajar con ellos.

Para esto haremos un pequeño mantenimiento que nos ayudará a entender la lógica de como funciona.

He creado una pequeña base de datos Llamada GESTION, su estructura es la siguiente:


Algo pequeño, un trabajador pertenece a un programa y un programa le puede pertenecer a muchos trabajadores.

He creado un nuevo proyecto en el visual studio, con la siguiente estructura (3 capas):
Primero la clase Entidad en la capa EntityLayer (No se olviden hacer las referencias, las pueden seguir acá: http://josueporras17.blogspot.com/2013/01/mucha-de-las-cosas-acerca-de-la.html)

Segundo la Conexión:

Después nuestra clase acceso a datos Programa, allí podremos encontrar un método que retorna un dataset que almacen un stored procedure tipo select para poder cargar un combo:


Nuestra clase Trabajador, donde encontraremos un listado y los métodos SELECT, INSERT, UPDATE, DELETE:

SELECT:

INSERT (Allí estará explicado todo con detalle) :



Igualmente para UPDATE (Tiene casi la misma lógica) :


Y para delete, solo espera un parametro, ya que en casos se elimina solo por su identificador ID:


Dónde están los stored procedure? acá están:



Listo, tenemos la lógica de Entidad, Acceso a Datos y Negocio hechas, lo que nos faltaría es crear nuestra página aspx, antes de pasar a este punto, necesitamos tener el AjaxControlToolkit, lo pueden descargar de acá : (http://ajaxcontroltoolkit.codeplex.com/), cuando lo descompriman les generará una carpeta y dentro un ddl llamado AjaxControlToolkit.dll, tienen que hacer referencia a su proyecto con esa ddl, después de hacer la referencia se irán a la caja de herramientas y seguir estos pasos:

Le asignamos un nombre (Ejemplo MiControlAjax) y dentro de la casilla clic derecho, elegir elementos :
Nos saldrá una pantalla, por abajo verás la opción "Examinar" y harás lo siguiente, te vas a la carpeta donde está tu extensión AjaxControlToolkit.ddl :


Y listo, ya podremos trabajar con Ajax, lo único que faltaría es hacer el llamado de la extensión Ajax en tu página aspx, la registramos mediante este código:

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

Seguiremos en el siguiente blog, lo publicaré más tarde y completo.

Saludos

lunes, 21 de enero de 2013

Mucha de las cosas acerca de la programación en ASP.net es que algunos ya están buscando querer programar en la arquitectura de capas, lo cuál es una buena práctica en la programación web. A continuación desarrollaremos un ejemplo básico de como desarrollar en ncpas con visual c# usando las librerias ADO.net, haciendo un seguimiento paso a paso, porque he visto algunos tutoriales que solo te muestran el código y lo explican, cosa que no me gusta hacer a mi si no hacerles entender al 100% todo.

En nuestro escritorio crearemos una nueva carpeta, yo la he llamado Ejemplo ncapas:




















Ahora creen un nuevo proyecto web apuntando a esa carpeta, pero, agregándole una subcarpeta llamada "Web":




















Dentro de su solución agreguen un nuevo proyecto:



Agreguen una nueva biblioteca de clases llamada: Entity_Layer apuntando a su carpeta, yo la llamé 'ejemplo ncapas' (Ojo, no apunten a su carpeta web!).























Repitan los mismo pasos pero agregando las demás capas: DataAccess_Layer y Business_Layer hasta que quede algo así:






















Entity_Layer: Es donde irá el moldeado ( o referencia ) de tus tablas del sql server.
DataAcess_Layer: Es donde irá la lógica de tus sentencias sql usando las librerías ADO.net
Business_Layer: Es donde irá la lógica del negocio.

Ahora nos vamos a nuestro sql server y crearemos una tabla llamada productos apuntando a una base de datos (yo la he llamado ncapas).















Una vez esto, agreguen algunos campos a esa tabla:










Ahora moldearemos esta tabla en una clase llamada ProductoEL dentro de nuestra capa Entity_Layer:






















Una vez hecho esto, iremos a nuestra capa DataAccess_Layer y crearemos una clase llamada conexionDAL, donde irá la cadena de conexión de nuestro SQL (No se olviden de usar las librerias ADO.net) :












Después de esto crearemos una clase en la misma capa llamada ProductoDAL, aquí llamaremos a un stored procedure que liste los productos y lo podamos ver en un gridview más adelante:



























Genial, ya casi terminamos, Lo que hacemos allí es crear una instancia nueva a la conexión: ConexionDAL cn = new ConexionDAL(); con esto obtenemos nuestra cadena de conexion.

Para ya casi terminar, iremos a nuestra capa llamada Business_Layer y crearemos una clase llamada ProductoBL, en la cuál llamaremos a nuestra clase ProductoDAL, pero ¿Cómo logramos hacer esto?, un punto importante para poder seguir avanzando es de generar nuestras referencias a cada proyecto, por ejemplo, en la capa DataAccess_Layer le agregaremos la referencia a nuestra capa Entity_Layer, Click derecho a nuestra capa DataAccess_Layer, agrega referencia:




















Haremos lo mismo pero ahora agregaremos la referencia (Entity y DataAccess) a nuestra capa Business_Layer:






















Y en nuestro proyecto web solo agregamos la referencia a la capa BusinessLayer:





















Ok, sigamos en donde nos quedamos, desarrollaremos nuestra clase ProductoBL, donde llamaremos a nuestra clase ProductoDAL:














Ya casi acabamos, crearemos un gridview en un webform, y dentro del (!Page.IsPostBack) --> (Si la página aún no ha sido cargada por primera vez):




















Y el resultado:

Espero que les haya sido de ayuda, nunca llegué a utilizar la capa ProducoEL, pero la utilizaremos después cuando hagamos algún mantenimiento en el siguiente post.