You are on page 1of 30

Aplicacin en 3 capas utilizando ASP.

NET

Jorge Cupi Veliz jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

CONTENIDO
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Arquitectura multi capas Pag 2 Arquitectura de tres capas Pag 2 Que contiene cada capa? . Pag 3 Uso en el desarrollo web. Pag 4 Como realizar una aplicacin en tres capas utilizando Visual Studio 2010? . Pag 4 Relacionando una base de datos a nuestro proyecto Pag 6 Construyendo la capa de acceso a datos Pag 10 Construyendo la capa de lgica de negocios Pag 16 Contruyendo la capa de presentacin. Pag 21 Que aprendimos? Pag 30

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

Aplicacin en 3 capas utilizando ASP.NET


1. Arquitectura multi capas
Primeramente, la arquitectura multicapas, que es tambin referida como arquitectura n capas es una arquitectura cliente servidor en la cual, la presentacin, el procesamiento de la aplicacin y el manejo de datos son procesos lgicamente separados. La arquitectura n capas ms difundida es la arquitectura en tres capas. La arquitectura en n capas provee un modelamiento a los desarrolladores para crear una aplicacin flexible y reusable. Al separar una aplicacin en capas, los desarrolladores solo tienen que modificar o adicionar una cama especfica, en vez de tener que escribir toda la aplicacin de nuevo. En una arquitectura a tres capas deberamos de tener: - Una capa de presentacin - Capa de lgica de negocios - Capa de acceso a datos

2. Arquitectura de tres capas


Es una arquitectura cliente servidor en la cual la interfaz de usuario, la lgica de negocios y el acceso a datos estn desarrollados y mantenidos como mdulos independientes, frecuentemente en plataformas separadas. El modelo de tres capas es una arquitectura de software as como tambin un patrn de diseo de software. Adems de todas las ventajas que conllevan realizar software por mdulos, la arquitectura de tres capas est hecha con el propsito de que cualquier de sus tres capas (presentacin, lgica y datos) pueda ser actualizada o reemplazada independientemente de acuerdo a como vayan cambiando las necesidades con el avance tecnolgico. Por ejemplo, un cambio de sistema operativo solo afectara a la capa de presentacin ya que es esta la que maneja el cdigo para la interfaz con el usuario. Usualmente, la interfaz de usuario corre sobre un ordenador de escritorio y usa una interfaz estndar de grficos. El proceso lgico consiste en uno o ms mdulos separados que corren sobre una estacin de trabajo o un servidor de aplicaciones. Y finalmente, un servidor de bases de datos es el que contiene los datos almacenados de la aplicacin o servicio.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

3. Que contiene cada capa?


3.1. Capa de presentacin
Es la capa en el nivel ms externo de la aplicacin, la capa de presentacin despliega informacin relacionada a ciertos servicios como por ejemplo, mercadeo, compras, contenidos de ventas, etc. Se relaciona mayormente con la capa de lgica de negocios.

3.2.

Capa de lgica de negocios

Tambin conocida como capa de aplicacin, capa de negocios, capa lgica, o capa media; Es la capa que controla la funcionalidad de la aplicacin mediante procesamiento detallado de acuerdo a los requisitos otorgados por la capa de presentacin.

3.3.

Capa de acceso a datos

Esta capa consiste de servidores de bases de datos. Aqu la informacin es almacenada y recibida. Mantiene a los datos de una manera neutral e independiente a la capa de presentacin y/o la capa de negocios.

4. Uso en el desarrollo web


En el campo del desarrollo web, el modelo de tres capas es frecuentemente usado al referirnos a pginas web, generalmente aquellas pginas que alberguen cosas tales como comercio electrnico. Las tres capas se repartiran as: Un front-end o contenido desplegado en el navegador Un servidor de aplicaciones que albergue contenido medio de procesamiento y generacin, por ejemplo Java EE, ASP.NET, PHP, etc. Una RDBMS o Sistema de manejo de bases de datos relacionales, por sus siglas en ingls, que maneje y provea el acceso a los datos en una base de datos.

5. Como realizar una aplicacin en tres capas utilizando Visual Studio 2010?
Utilizaremos 4 proyectos para nuestra aplicacin en tres capas: - Un proyecto de tipo Librera de clases para albergar la base de datos mapeada - Un proyecto de tipo Librera de clases para albergar la capa de acceso a datos - Un proyecto de tipo Librera de clases para albergar la capa de lgica de negocios - Un proyecto de tipo ASP.NET Web Application para albergar la capa de aplicacin. Que necesitaremos? Como requisitos para realizar este ejemplo, necesitaremos en nuestras maquinas: - Visual Studio 2010 en cualquiera de sus versiones. - SQL Server 2008 en cualquiera de sus versiones. - Una base de datos albergada en nuestro motor de base de datos.
Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

5.1.

Abrir Visual Studio 2010

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

6. Relacionando una base de datos a nuestro proyecto


6.1. Crear un nueva solucin - Hacemos click en Archivo - Ira Nuevo - Finalmente click en Proyecto:

6.2.

Creacin del proyecto

Primeramente crearemos un proyecto de tipo Librera de Clases que albergara solo el mapeo de la base de datos. No consideraremos a este proyecto como una capa.

El nombre de mi solucin va de acuerdo a lo que quiero hacer yo, en este caso, un gestor de deportes. El nombre Entidades es el nombre que asignare a mi proyecto que alberga mi archivo .dbml.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

6.3.

Aadiendo el tem Linq to SQL Class

Para poder manejar nuestra base de datos de manera ms cmoda, mapearemos nuestra base de datos a clases. De esta manera utilizaremos nuestras tablas como si fuesen objetos. Para este objetivo, crearemos una clase Linq To SQL Classes

Un archivo .dbml o data base markup language es un archivo de modelamiento que hace eso precisamente, modelar nuestra base de datos y convertirla para nosotros, de esta manera podemos referirnos a las tablas que tengamos como objetos y a sus campos como atributos.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

Una vez hayamos hecho click en aadir, veramos la siguiente ventana:

6.4.

Anadir la base de datos a nuestro archivo .dbml

Hacemos click en Server Explorer para poder ver que motores de bases de datos tenemos actualmente corriendo y de ah extraeremos la base de datos o inclusive, solo las tablas necesarias para el proyecto que llevaremos a cabo. Hacemos click en Conectar a una base de datos. Posteriormente saltara una pantalla que nos pida el nombre de nuestra instancia de SQL Server, adems de la base de datos a la cual queremos hacer referencia.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

Una vez hayamos hecho click en Ok, podemos ver que nuestro explorador de servidores, ya contamos con nuestra base de datos:

Finalmente, arrastraremos las tablas que necesitamos, en m caso arrastrare todas las tablas de mi base de datos al medio de la pantalla:

Para finalizar, presionaremos F6 para construir la solucin y poder usar la base de datos.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

7. Construyendo la capa de acceso a datos


Como mencionamos antes, en esta capa es en donde interactuamos con la base datos, para este objetivo crearemos un proyecto de tipo Librera de Clases, como lo hicimos para el proyecto que alberga la base de datos mapeada.

Ok, ya tenemos dos proyectos en nuestra solucin, pero como es que estos proyectos se comunican si es que son independientes? La respuesta es haciendo referencias, ahora veremos cmo hacer una referencia desde un proyecto a otro:

7.1.

Haciendo referencia al Proyecto Entidades

Recordemos que la base de datos mapeada est ubicada en el proyecto Entidades, por tanto la haremos una referencia a dicho proyecto de la siguiente manera: Hacemos click derecho en Referencias, y luego click en Anadir Referencia:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

A continuacin veremos la siguiente pantalla, donde nos indica otros proyectos existentes en la solucin, hacemos click en Entidades y luego en Ok, de esta manera ya podemos hacer referencias a nuestra base de datos desde nuestra capa de acceso a datos. Tambin haremos referencia a System.Data.Linq que se encuentra en la pestaa .NET de la ventana de referencias.

7.2.

Creacin de una clase Padre

Para poder ahorrar cdigo, crearemos una clase llamada BASEDA, de la cual nuestras clases en la capa de acceso a datos heredaran dos mtodos: - Un mtodo que nos permita interactuar con la base de datos llamado GETDC() - Un mtodo que llevara los valores obtenidos de querys que hagamos a una lista para poder manejarlos de manera ms cmoda.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

7.3.

Creacin de una interfaz

Adems de tener una clase padre para todas nuestras clases, crearemos una Interfaz, de manera que podamos mantener nuestro cdigo ordenado. Con la creacin de un Interface forzamos a nuestras clases a tener los mismos mtodos. Pero por que querramos algo as? Queremos por ejemplo que cada clase tenga los mtodos: - Adicionar - Eliminar - Modificar - DevolverTodo (devolver todos los elementos de una tabla) Para nuestro Interface, aadiremos una nueva clase al proyecto AccesoDatos y lo llamaremos InterfazDA. Veamos el cdigo de nuestro Interface:

Finalmente, ahora si pasaremos a la creacin de nuestras clases pertenecientes a la capa de acceso a datos, tendremos una clase por cada tabla en la base de datos, para este ejemplo solo utilizare dos tablas de mi base de datos:

z
Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

7.4.

Creacin de la clase DeportistaDA

Para la creacin de esta clase, echaremos un vistazo a cada uno de los mtodos que tiene, los mtodos se replican para todas las siguientes clases, as que veremos con detalle que hace cada uno. 7.4.1. Referencias Recuerden que es importante hacer referencia al proyecto Entidades ya que es en el en el que nuestra base de datos esta albergada:

Para cada clase tendremos lo siguiente:

En este caso tenemos la clase DeportistaDA, mis otras clases vendran a ser : <nombre_de_mi_clase>DA Podemos observar que nuestro constructor hereda dos cosas: - Hereda los mtodos de la clase BaseDA - Hereda los mtodos de la Interfaz IDataAccess Las letras que vemos de color plomo son el nombre de una regin de cdigo, si hacemos click en ellas, la regin se expandir se la siguiente manera, mostrndonos as los mtodos que albergan, es una manera ms elegante de separar cdigo, por ejemplo en esta regin tendremos a los mtodos heredados de la Interfaz IDataAccess:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

7.4.2. Vistazo al mtodo GetAll()


Este mtodo devuelve todos los registros almacenados en la tabla, en este caso, devuelve a todos los deportistas registrados en la tabla Deportistas. Y como hace esto? Primero crea una objeto DBDDeportesDataContext en el que recuperara a la base de datos, mediante este mtodo tenemos acceso a la base de datos, veremos que esta lnea de cdigo es repetida en cada accin que revisemos. Posteriormente, utilizando una consulta Linq, rescata a todos los deportistas en una variable de tipo IQueryable que almacena deportistas. Finalmente devuelve el IQueryable ya convertido en una lista gracias al mtodo heredado de la clase padre BaseDA.

7.4.3. Vistazo al mtodo Adicionar


Este mtodo adicionar un nuevo deportista a la tabla deportistas. Como lo hace? Nuevamente crea una instancia de tipo DBDeportes, y como podemos ver, lo que hace es utilizar el mtodo InsertOnSubmit(), que sirve para aadir un registro a una tabla en la base de datos. Pero el mtodo InsertOnSubmit no basta, la base de datos no almacena nada hasta que se llame al mtodo SubmitChanges que es el que se encarga en realidad de llevar a cabo las acciones requeridas sobre la base de datos.

7.4.4. Vistazo al mtodo Eliminar


El mtodo eliminar es muy similar al mtodo Adicionar, solo que esta vez utiliza el mtodo DeleteOnSubmit() para eliminar al deportista en cuestin.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

7.4.5. Vistazo al mtodo Actualizar


Finalmente el mtodo Actualizar, que lo que hace es reemplazar un registro antiguo por otro nuevo, podemos ver esto por los parmetros que se envan al mtodo: - Un nuevoItem (el nuevo deportista) - Un originalItem (el deportista que ser reemplazado) El mtodo utilizado en cuestin es el mtodo Attach() que tomar como parmetros un registro antiguo y un registro nuevo, sobrescribe los datos de uno con el otro respectivamente.

7.5.

Creacin de la clase PaisDA

De la misma manera, crearemos una clase PaisDA en el proyecto AccesoDatos. Veremos que la creacin de la clase PaisDA es MUY similar a la creacin de la clase DeportistaDA, es tan similar que lo nico que tendremos que hacer es reemplazar la palabra deportista por pas:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

Tendremos que hacer lo mismo para todas las tablas que tengamos en la base de datos, o al menos, haremos esto para las tablas en las cuales querramos adicionar, eliminar, y actualizar registros. Si se dan cuenta, en esta capa, no validamos los datos de los deportistas, o paises, las validaciones y otros requerimientos los realizaremos en la capa de negocios o capa logica, que es la que se encarga de estas tareas.

8. Construyendo la capa de logica de negocios


Como vimos, es la capa de acceso a datos la que se encarga de realizar altas, bajas, modificaciones, etc. En esta capa nos encargamos de las validaciones, tareas solicitudes del usuario en la capa de presentacin, entre otros. Igual crearemos un proyecto de tipo Librera de clases, al cual llamaremos LogicaNegocio: Adems, nombraremos en este proyecto a todas nuestras clases de la siguiente manera: <nombre_de_la_clase>BL

8.1.

Haciendo referencia a Entidades y AccesoDatos

En la capa de lgica de negocio necesitamos hacer referencia a ambos proyectos. Por qu? -

Referencia al proyecto Entidades para poder manejar a nuestras clases (tablas de la base de datos) Referencia al proyecto AccesoDatos por que llamaremos a sus mtodos (mtodos de adicin, eliminacin, y otras consultas) desde esta capa.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

8.2.

Creacin de una Interfaz

Al igual que en la capa de acceso a datos, utilizaremos una Interfaz en esta capa, todo con el propsito de mantener un cdigo ordenado y ms entendible. No es necesario realizar interfaces en una aplicacin en tres capas, pero esta vez lo haremos por las razones previamente mencionadas. Crearemos una clase en el proyecto LogicaNegocio, y la denominaremos IBusinessLogic, debajo vemos el cdigo empleado en esta interfaz:

8.3.

Creacin de la clase DeportistaBL

Tal como lo hicimos con la clase DeportistaDA, daremos un vistazo a los mtodos de esta clase, uno por uno.

8.3.1. Referencias
Recuerden que es importante hacer referencia al proyecto Entidades, as como tambin al proyecto AccesoDatos:
Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

Para cada clase tendremos lo siguiente:

En este caso tenemos la clase DeportistaBL, mis otras clases vendran a ser : <nombre_de_mi_clase>BL Podemos observar que nuestro constructor hereda los mtodos de la Interfaz IDataAccess, esto con el propsito de tener los mtodos ya vistos (adicin, eliminacin, actualizacin y obtener todos los registros).

8.4.2. Vistazo al mtodo GetAll()


Como podemos observar, este mtodo solo se remite a devolver el mtodo GetAll() de una instancia de objeto de tipo DeportistaDA. Quizs no tiene sentido crear una clase solo para llamar al mtodo de otra clase y retornar los valores obtenidos en una nueva lista, pero es que aqu no estamos validando ni especificando algo en particular. Simplemente queremos que nos devuelvan en una lista a todos los registros de la tabla deportista. Veremos luego un mtodo que si valida parmetros y recin llama a la capa de acceso de datos.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

8.4.3. Vistazo al mtodo Adicionar()


Pasa algo similar en el mtodo Adicionar, solo creamos un objeto de tipo DeportistaDA y utilizamos su mtodo Adicionar, envindole los parmetros recibidos.

Sin embargo, podramos realizar un par de cambios en este mtodo, o bien, podramos crear otro mtodo adicionar que verifique que los datos introducidos sean correctos:

Con este nuevo mtodo Adicionar, podemos verificar por ejemplo que el tamao del campo id_deportista no exceda el limite asignado en nuestra base de datos, tambin verificamos por ejemplo que el pas del que proviene el deportista exista en la base de datos. La capa de lgica de negocios esta para esto, como podemos ver, utilizamos un mtodo ms el mtodo NoSeEncuentra() que devuelve un booleano true si el pas no se encuentra en la base de datos, y devuelve un false si el pas si se encontrara. Si lo notaron, hago referencia al pas de nuestro deportista, como si fuera un atributo propio. Recordemos los atributos de Deportista y de Pas:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

Lo notan? Nuestro deportista no tiene un atributo Pas como tal, lo que hace nuestro archivo DBDEportes.dbml es hacer un join por detrs, de tal manera que nos ahorramos escribir una consulta parecida a lo siguiente:

Entonces, lo que hacemos con nuestra base de datos mapeada es en realidad tratar a nuestras tablas como: deportista tiene pas Y no algo as como deportista tiene un cdigo de pas y pas tiene un cdigo pas, Por tanto buscaremos el pas cuyo cdigo de pas sea igual al cdigo de pas el deportista Que viene a ser mucho ms incmodo y tedioso, esto nos ayuda a preocuparnos ms en la lgica que apliquemos en nuestro software y no preocuparnos demasiado por lo que est pasando con la base de datos por detrs. Con este ejemplo, espero quede en claro la funcionalidad de la capa de lgica de negocios. No haremos ni modificaremos los mtodos de Eliminar o Actualizar ya que vendran a ser algo parecido. Solo echaremos un vistazo a los mtodos por defecto que tenemos

8.4.4. Vistazo al mtodo Eliminar()


Podemos observar que no tenemos nada escrito en el mtodo Eliminar(), esto por decisin propia, supongamos que mi cliente solo quiere adicionar Pases, no eliminarlos, entonces no escribiremos nada en la parte de Eliminacin, sin embargo tenemos que crear el mtodo ya que el uso de una Interfaz para estas clases nos obliga a hacerlo para mantener un cdigo uniforme.

8.4.5. Vistazo al mtodo Actualizar()


Finalmente vemos al mtodo Actualizar() que es prcticamente idntico al mtodo Adicionar:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

9. Creacin de la capa de presentacin


Finalmente la capa a la que todos queramos llegar: La capa de presentacin. En ella es en donde desplegamos lo que el cliente quiere. - El cliente quiere una lista de todos los pases latinoamericanos? - El cliente quiere una lista de todos los deportistas africanos que juegan futbol en Inglaterra? - El cliente quiere aadir un nuevo deporte a la base de datos? - El cliente quiere actualizar la capacidad de todos los stadiums de Espaa? Todo eso y ms son desplegados aqu, es la capa ms externa y por tanto la capa que muestra los resultados. Comencemos con la creacin de esta capa. A diferencia de las otras capas, esta no estar dentro de un proyecto de tipo Librera de Clases, si no la albergaremos dentro de un proyecto de tipo Aplicacin Web de ASP.NET. A este proyecto le daremos el nombre de Presentacin

9.1.

Haciendo referencia a Entidades y LogicaNegocio

En la capa de presentacin necesitamos hacer referencia a ambos proyectos. Por qu? -

Referencia al proyecto Entidades para poder manejar a nuestras clases (tablas de la base de datos) Referencia al proyecto LogicaNegocio por que llamaremos a sus mtodos (mtodos de adicin, eliminacin, y otras consultas) desde esta capa.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

9.2.

Creacin de una pgina web

Utilizaremos la pgina creada por default en nuestro proyecto, la pgina Default.aspx:

Hacemos doble click en Default.aspx para desplegar su editor XML y de diseo: Probemos nuestra aplicacin ahora, presionemos F5 y veamos que pasa:

Traduciendo el error, nos dice que no podemos iniciar nuestra solucin a partir de un proyecto de Librera de Clases, lo cual es cierto. Dado que un nuestros proyectos de librera de clases no tenemos nada que desplegar hacia nuestro cliente, para corregir este problema, la asignamos el ttulo de proyecto iniciador a nuestro proyecto que alberga la capa de presentacin.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

9.3.

Convertir la capa de presentacin en proyecto inicial.

Hacemos click derecho en nuestro proyecto Presentacin y luego click en la opcin Establecer como proyecto inicial. Con este paso le decimos a nuestra solucin que es este el proyecto que tiene que iniciarse una vez que intentemos debuggear o correr la aplicacin como tal.

9.4.

Corriendo nuestra aplicacin.

Una vez hayamos corregido este problema, presionemos una vez ms F5 y veamos la primera corrida de nuestra aplicacin:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

Como podemos observar, se est desplegando en nuestro navegador por defecto (Google Chrome en mi caso) el contenido de la pgina Default.aspx

9.5.

Desplegando datos de la base de datos

Ya estamos llegando al final de este tutorial, finalmente desplegaremos la informacin almacenada en nuestra base de datos. Como hacemos esto? 9.5.1. Introduciendo elementos en nuestra pagina Primero introduzcamos un botn y una lista de despliegue en nuestra pgina web Para esto, solo habilitaremos la pestaa de Diseo de nuestra pgina web y no as la pestaa de cdigo:

Ya tenemos un botn y una lista de despliegue aadidos, hora de darles funcionalidad. Para lo cual crearemos un evento del botn. El evento por defecto de cualquier botn es el evento Click que sucede como lo dice su nombre cuando un cliente hace click en el botn en cuestin.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

9.5.2. Crear el evento del botn


Por ultimo nos queda darle funcionalidad a nuestro botn, hagamos doble click en el Botn:

Podemos observar que en pantalla tenemos desplegado el Code Behind de nuestra pgina ASP.NET y tras haber hecho doble click en el Botn, acabamos de generar el evento Button1_Click. Esto quiere decir que se ejecutara el cdigo que escribamos aqu cada vez que hagamos click a nuestro botn.

9.5.3. Dndole funcionalidad al botn


Antes que nada, no olvidemos hacer referencia a los dos proyectos:

Ya que tenemos referenciados a Entidades y LogicaNegocio podemos comenzar a desplegar algo en pantalla. Intentemos mostrar el nombre de todos los jugadores que tenemos registrados en la base de datos:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

Analizando este cdigo: DeportistaBL bl = new DeportistaBL(); Estamos instanciando un objeto de tipo DeportistaBL con el propsito de poder usar los mtodos que tiene este en la capa de lgica de negocios List<deportista> ListaDeportistas = bl.GetAll(); Estamos recogiendo a todos los deportistas en una lista llamada ListaDeportistas que alberga elementos de tipo deportista Foreach (deportista D in ListaDeportes) DropdownList1.Items.Add(D.nombre_deportista); Estamos introduciendo el nombre de cada deportista D que se encuentre en nuestra lista de deportistas denominada ListaDeportistas

Hagamos correr nuevamente nuestro programa y veamos los resultados:

Podemos observar que ya tenemos una lista desplegable y un botn en nuestra pgina, presionemos el botn y veamos que pasa:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

9.6.

Guardando informacin en la base de datos

Ya podemos desplegar datos en nuestra pgina, pero eso no es todo lo que haremos en nuestras pginas, tambin vamos a desear adicionar, eliminar o modificar datos. As que en el siguiente ejemplo veremos cmo funciona la adicin de informacin en nuestra base de datos

9.6.1. Creando la interfaz en la capa de presentacin

Dentro de <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> Introduciremos el cdigo de ac arriba, mostramos como es la edicin de una pgina ASP.NET en cdigo, ya que en el anterior ejemplo solo vimos la edicin desde la pestaa diseo. Podemos identificar la creacin de una tabla con dos filas, la primera fila contiene dos columnas, una columna con labels y otra con textboxs En la siguiente fila tenemos un solo botn que es el que accionaremos para grabar en la base de datos la informacin introducida en la pgina web. Nuestra pgina debera de quedar as:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

9.6.2. Dndole funcionalidad a nuestro botn Adicionar Pas

A grandes rasgos, estamos creando un objeto de tipo Pas , y a este le estamos dando los valores introducidos en la pgina web. Posteriormente utilizamos el mtodo AdicionarValidado de la clase PaisBL perteneciente a la capa de negocios que lo que hace es verificar ciertos errores como vemos a continuacin:

Lo que hace este mtodo es verificar si el cdigo de pas no excede los tres caracteres y adems verifica que el cliente no introduzca datos errneos en el campo Continente. Si es que no hay errores, devuelve un mensaje de Datos introducidos satisfactoriamente e introduce los datos en la base de datos utilizando la capa de acceso a datos. Si por otro lado, hay errores, devuelve un mensaje conteniendo el error y NO introduce la informacin en la base de datos.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

9.6.3. Probando nuestro botn de adicin de Pases:


Veamos los tres casos posibles: El id_pais es muy largo:

El nombre del continente est mal escrito:

Los datos estn introducidos correctamente

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicacin de tres capas utilizando ASP.NET

10. Que aprendimos?


Aprendimos la definicin de la arquitectura tres capas. Aprendimos a realizar una aplicacin en tres capas. Aprendimos a hacer referencias a otros proyectos dentro de una misma solucin Aprendimos a mapear una base de datos utilizando el Linq To Sql Classes. Aprendimos a mostrar informacin de nuestra base de datos en nuestra pgina web. Aprendimos a adicionar informacin a nuestra base de datos desde una pgina web.

Espero les haya gustado mi tutorial. Si tienen dudas, preguntas, criticas, comentarios, etc. No duden en: - escribirme al correo jorgecupi@hotmail.com - O encontrarme en Facebook: http://www.facebook.com/JorgeCupi Muchas gracias =).

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com