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.

miércoles, 12 de septiembre de 2012

Introducción a ASP.net ejemplos

INTRODUCCIÓN A ASP.NET

La palabra reservada asp.net (Active Server Pages) proviene de la versión antigua asp, pero ahora aplicada a la plataforma Microsoft .net.
Microsoft tiene una plataforma muy amplia, tanto así como asp.net vb.net c# (csharp) o f# (fsharp).
La programación en .net es muy sencilla y simple de aplicar tanto a nivel servidor o aplicativo. En esta primera entrada del blog se explicará como hacer un web page y crear una conexión con una base de datos SQL Server y hacer una simple y pequeña consulta en un GridView.

El primero paso es crear nuestro Sitio Web :















Una vez acá, debemos especificar qué opciones debemos ingresar, obviamente se debe poner Sitio Web ASP.NET. Si se fijan bien a la izquierda, hay una pestaña especificando si deseas programar en Visual Basic o Visual C#. Para ambos casos funcionan igual
En caso de la ubicación web, tu puedes especificar donde puede ir : 

Una vez dado Aceptar, veremos una pantalla como esta : 


Lo que se debe hacer a continuación es borrar alguna de las soluciones que tenemos implementadas por default. Borraremos la carpeta Account, Scripts, Styles About.aspx, Default.aspx y por último el Site.master.

Explicación:
Lo que queremos hacer acá es borrar las carpetas que POR AHORA no las necesitaremos, eso no quiere decir que no sirven para nada; claro que sirven, y un montón, pero por ahora las dejaremos así.

El siguiente paso es crear nuestra primera web page, lo puedes hacer así como la imagen o si no presionando Ctrl + Mayús + A

Ahora debemos crear nuestra primera página, seleccionamos web forms y le damos el nombre de Miprimerapagina, o como deseen llamarla.

Nos aparecerá el explorador de soluciones con un elemento mas en su lista, el web form que acabamos de crear.

Ahora si viene lo interesante, mediante el cuadro de herramientas (Si no lo tienes solo vas a Menú - Ver - Cuadro de Herramientas). Jalaremos un control Button y un control GridView (Control dentro de pestaña Datos), nos quedará algo como esto:

Si desean que el Button tengo un texto, allí tienen el código de control asp html:
El ID es simplemente un ID, osea, una clave con la cuál el control se va a identificar, no olviden que la propiedad runat = "server", siempre debe ir, si lo sacas de allí, me temo que te saldrá un error, ese código es para que el control corra en el servidor. Y por último el Text, donde tu puedes ponerle lo que se te antoje, por ejemplo yo puse Listar porque el ejemplo de hoy se hará una consulta de Listado.

El GridView muestra los valores de un origen de datos en una tabla donde cada columna representa un campo y cada fila representa un registro. El control GridView permite seleccionar, ordenar y editar estos elementos.
Si ya han programado en visual basic.net, cumple la misma función de un DataGridView

Ahora haremos una pequeña pausa y nos vamos para nuestro SQLServer o con la bd que estén utilizando y crearemos una base de datos Consultorio2012 y una tabla empleados con solo 3 campos y 2 registros:


Una vez esto creado, regresamos a nuestro visual e ingresamos dentro del codebehind de nuestra web page: Miprimerapagina.aspx.vb (.net) Miprimerapagina.aspx.cs (C#).
Dentro de ella importamos las librerías necesarios que necesitaremos para crear nuestra primera conexión.
Para importar en vb.net se use la palabra reservada Imports y en C# se utiliza la palabra reservada Using :


Ahora crearemos una variable tipo SqlConnection para establecer nuestra conexión, se puede hacer de 2 tipos. Uno si es que nuestro sql no tiene usuario y una contraseña, y la otra es cuando si la tiene:
Aparte de ellos crearemos un método que retorne un datatable
En C# el código sería:
SqlConnection cn = new SqlConnection("Cadena de conexión")
public DataTable listadoClientes(){
  SqlDataAdapter da = new SqlDataAdapter("select * from empleados",cn);
  DataTable tb = new DataTable();
  da.Fill(tb);
  return tb;
}


Explicación:

- Creamos nuestra cadena de conexión, previo a importar las librerías necesarias.
- Creamos un método que retorna un datatable.
- Dentro del método encontraremos a la palabra reservada SqlDataAdapter.
- Como su nombre lo indica, el SqlDataAdapter es un adaptador que acepta un query de nuestro SQLServer u otra base de datos. El SqlDataAdapter solo acepta consultas, no stored procedures. Además de ellos el SqlDataAdapter toma como referencia la query y la conexión como podemos ver
SqlDataAdapter da = new SqlDataAdapter( acá va el query, acá va la conexión);
- Creamos una variable tb del tipo DataTable.
- La palabra reservada DataTable es un objeto de la librería ADO.net y se utiliza para 'representar' una tabla, incluso se pueden llenar desde un origen de datos de una base de datos, como veremos en el siguiente punto.
- POBLAR LA TABLA, ¿Qués es poblar la tabla?. Simplemente es llenar nuestro DataTable con la query (SqlDataAdapter) que hemos especificado.
- RETORNAR LA TABLA. Nuestro método es un método tipo DataTable, por lo que debemos retornar un DataTable : Return tb;

Ahora que tenemos ya claro como hacer nuestra conexión y crear un método tipo datable, ya casi es hora de terminar esta primera entrada, lo que haremos es que mediante el botón que tenemos, se visualize el datatable que hemos retornado. Lo único que tiene que hacer es hacer doble clic en el botón de nuestro formulario web y nos aparecerá algo como esto:

Lo que nos acaba de aparecer es un evento del botón, cada control asp tiene un evento. Dentro de este evento de botón se puede hacer muchas cosas, pero por ahora lo que haremos es visualizar nuestro método que retorna el datatable con la consulta del query dentro. Lo haremos así:
Código C#:

gvlistado.DataSource = listadoClientes();
gvlistado.DataBind();

Código vb.net:


Con 2 líneas de código es más que suficiente, el DataSource es una propiedad del gridview e indica el origen de datos del gridview, es decir que nuestro origen de datos es el datatable con la query dentro.
El DataBind sirve para bindear los datos, es como el .Fill, puebla los registros allí.
Al ejecutar tendrán algo como esto:

PostData: Fíjense bien a la hora de hacer su query, en mi ejemplo sql he puesto la tabla con el nombre Cliente y en mi programación visual como 'Clientes'. Lo puse así porque por motivos de trabajo acabé esto en 2 días diferentes.

Espero que les haya servido de mucho, nos vemos en el próximo post.
Tema:
Stored Procedures y mantenimiento de Clientes