Está en la página 1de 30

Aplicación en 3 capas utilizando ASP.NET

Jorge Cupi Veliz jorgecupi@hotmail.com

CONTENIDO

Aplicación de tres capas utilizando ASP.NET

1. Arquitectura multi capas…………………………………………………………………………………………………… Pag 2

2. Arquitectura de tres capas………………………………………………………………………………………………… Pag 2

3. Que contiene cada capa? …………………………………………………………………………………………………. Pag 3

4. Uso en el desarrollo web………………………………………………………………………………………………….

Pag 4

5. Como realizar una aplicación en tres capas utilizando Visual Studio 2010? …………………….

Pag 4

6. Relacionando una base de datos a nuestro proyecto………………………………………………………

Pag 6

7. Construyendo la capa de acceso a datos…………………………………………………………………………

Pag 10

8. Construyendo la capa de lógica de negocios……………………………………………………………………

Pag 16

9. Contruyendo la capa de presentación………………………………………………………………………………. Pag 21

10. Que aprendimos? ……………………………………………………………………………………………………………

Pag 30

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

Aplicación en 3 capas utilizando ASP.NET

1. Arquitectura multi capas

Primeramente, la arquitectura multicapas, que es también referida como ‘arquitectura n capas’ es una arquitectura cliente servidor en la cual, la presentación, el procesamiento de la aplicación y el manejo de datos son procesos lógicamente separados.

La arquitectura n capas más difundida es la arquitectura en tres capas. La arquitectura en n capas provee un modelamiento a los desarrolladores para crear una aplicación flexible y reusable. Al separar una aplicación en capas, los desarrolladores solo tienen que modificar o adicionar una cama específica, en vez de tener que escribir toda la aplicación de nuevo. En una arquitectura a tres capas deberíamos de tener:

- Una capa de presentación

- Capa de lógica 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 lógica de negocios y el acceso a datos están desarrollados y mantenidos como módulos independientes, frecuentemente en plataformas separadas.

El modelo de tres capas es una arquitectura de software así como también un patrón de diseño de software.

Además de todas las ventajas que conllevan realizar software por módulos, la arquitectura de tres capas está hecha con el propósito de que cualquier de sus tres capas (presentación, lógica y datos) pueda ser actualizada o reemplazada independientemente de acuerdo a como vayan cambiando las necesidades con el avance tecnológico. Por ejemplo, un cambio de sistema operativo solo afectaría a la capa de presentación ya que es esta la que maneja el código para la interfaz con el usuario.

Usualmente, la interfaz de usuario corre sobre un ordenador de escritorio y usa una interfaz estándar de gráficos. El proceso lógico consiste en uno o más módulos separados que corren sobre una estación de trabajo o un servidor de aplicaciones. Y finalmente, un servidor de bases de datos es el que contiene los datos almacenados de la aplicación o servicio.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

3. Que contiene cada capa?

3.1. Capa de presentación

Aplicación de tres capas utilizando ASP.NET

Es la capa en el nivel más externo de la aplicación, la capa de presentación despliega información relacionada a ciertos servicios como por ejemplo, mercadeo, compras, contenidos de ventas, etc. Se relaciona mayormente con la capa de lógica de negocios.

3.2. Capa de lógica de negocios

También conocida como “capa de aplicación”, “capa de negocios”, “capa lógica”, o “capa media”; Es la capa que controla la funcionalidad de la aplicación mediante procesamiento detallado de acuerdo a los requisitos otorgados por la capa de presentación.

3.3. Capa de acceso a datos

Esta capa consiste de servidores de bases de datos. Aquí la información es almacenada y recibida. Mantiene a los datos de una manera neutral e independiente a la capa de presentación 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 páginas web, generalmente aquellas páginas que alberguen cosas tales como comercio electrónico. Las tres capas se repartirían así:

- Un front-end o contenido desplegado en el navegador

- Un servidor de aplicaciones que albergue contenido medio de procesamiento y generación, por ejemplo Java EE, ASP.NET, PHP, etc.

- Una RDBMS o Sistema de manejo de bases de datos relacionales, por sus siglas en inglés, que maneje y provea el acceso a los datos en una base de datos.

5. Como realizar una aplicación en tres capas utilizando Visual Studio 2010?

Utilizaremos 4 proyectos para nuestra aplicación en tres capas:

- Un proyecto de tipo Librería de clases para albergar la base de datos mapeada

- Un proyecto de tipo Librería de clases para albergar la capa de acceso a datos

- Un proyecto de tipo Librería de clases para albergar la capa de lógica de negocios

- Un proyecto de tipo ASP.NET Web Application para albergar la capa de aplicación.

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

5.1. Abrir Visual Studio 2010

Aplicación de tres capas utilizando ASP.NET

Abrir Visual Studio 2010 Aplicación de tres capas utilizando ASP.NET Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com
Abrir Visual Studio 2010 Aplicación de tres capas utilizando ASP.NET Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

6. Relacionando una base de datos a nuestro proyecto

6.1.Crear un nueva solución

- Hacemos click en Archivo

- Ira Nuevo

- Finalmente click en Proyecto:

click en Archivo - Ira Nuevo - Finalmente click en Proyecto: 6.2. Creación del proyecto Primeramente

6.2. Creación del proyecto

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

de datos. No consideraremos a este proyecto como una capa. El nombre de mi solución va

El nombre de mi solución 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

Aplicación de tres capas utilizando ASP.NET

6.3. Añadiendo el ítem Linq to SQL Class

Para poder manejar nuestra base de datos de manera más cómoda, 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

Para este objetivo, crearemos una clase Linq To SQL Classes Un archivo .dbml o “data base

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

a las tablas que tengamos como objetos y a sus campos como atributos. Noodles Tech Club

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

Una vez hayamos hecho click en añadir, veríamos la siguiente ventana:

hecho click en añadir, veríamos la siguiente ventana: 6.4. Anadir la base de datos a nuestro

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, además de la base de datos a la cual queremos hacer referencia.

además de la base de datos a la cual queremos hacer referencia. Noodles Tech Club Jorge
además de la base de datos a la cual queremos hacer referencia. Noodles Tech Club Jorge

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación 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:

de servidores, ya contamos con nuestra base de datos: Finalmente, arrastraremos las tablas que necesitamos, en

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

las tablas de mi base de datos al medio de la pantalla: Para finalizar, presionaremos F6

Para finalizar, presionaremos F6 para construir la solución y poder usar la base de datos.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación 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 Librería de Clases, como lo hicimos para el proyecto que alberga la base de datos mapeada.

para el proyecto que alberga la base de datos mapeada. Ok, ya tenemos dos proyectos en

Ok, ya tenemos dos proyectos en nuestra solución, pero como es que estos proyectos se comunican si es que son independientes? La respuesta es haciendo referencias, ahora veremos cómo 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”:

click derecho en Referencias, y luego click en “Anadir Referencia”: Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

A continuación veremos la siguiente pantalla, donde nos indica otros proyectos existentes en la solución, 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.

También haremos referencia a System.Data.Linq que se encuentra en la pestaña .NET de la ventana de referencias.

encuentra en la pestaña .NET de la ventana de referencias. 7.2. Creación de una clase Padre

7.2. Creación de una clase Padre

la ventana de referencias. 7.2. Creación de una clase Padre Para poder ahorrar código, crearemos una

Para poder ahorrar código, crearemos una clase llamada BASEDA, de la cual nuestras clases en la capa de acceso a datos heredaran dos métodos:

- Un método que nos permita interactuar con la base de datos llamado GETDC()

- Un método que llevara los valores obtenidos de querys que hagamos a una lista para poder manejarlos de manera más cómoda.

que hagamos a una lista para poder manejarlos de manera más cómoda. Noodles Tech Club Jorge

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

7.3. Creación de una interfaz

Aplicación de tres capas utilizando ASP.NET

Además de tener una clase padre para todas nuestras clases, crearemos una Interfaz, de manera que podamos mantener nuestro código ordenado. Con la creación de un Interface forzamos a nuestras clases a tener los mismos métodos.

Pero por que querríamos algo así? Queremos por ejemplo que cada clase tenga los métodos:

- Adicionar

- Eliminar

- Modificar

- DevolverTodo (devolver todos los elementos de una tabla)

Para nuestro Interface, añadiremos una nueva clase al proyecto AccesoDatos y lo llamaremos InterfazDA. Veamos el código de nuestro Interface:

InterfazDA. Veamos el código de nuestro Interface: Finalmente, ahora si pasaremos a la creación de nuestras

Finalmente, ahora si pasaremos a la creación 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
z

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

7.4. Creación de la clase DeportistaDA

Aplicación de tres capas utilizando ASP.NET

Para la creación de esta clase, echaremos un vistazo a cada uno de los métodos que tiene, los métodos 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:

que es en el en el que nuestra base de datos esta albergada: Para cada clase

Para cada clase tendremos lo siguiente:

esta albergada: Para cada clase tendremos lo siguiente: En este caso tenemos la clase DeportistaDA, mis

En este caso tenemos la clase DeportistaDA, mis otras clases vendrían a ser :

<nombre_de_mi_clase>DA Podemos observar que nuestro constructor hereda dos cosas:

- Hereda los métodos de la clase BaseDA

- Hereda los métodos de la Interfaz IDataAccess

Las letras que vemos de color plomo son el nombre de una región de código, si hacemos click en ellas, la región se expandirá se la siguiente manera, mostrándonos así los métodos que albergan, es una manera más elegante de separar código, por ejemplo en esta región tendremos a los métodos heredados de la Interfaz IDataAccess:

región tendremos a los métodos heredados de la Interfaz IDataAccess: Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

7.4.2. Vistazo al método GetAll()

Aplicación de tres capas utilizando ASP.NET

Este método 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 método tenemos acceso a la base de datos, veremos que esta línea de código es repetida en cada acción 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 método heredado de la clase padre BaseDA.

lista gracias al método heredado de la clase padre BaseDA. 7.4.3. Vistazo al método Adicionar Este

7.4.3. Vistazo al método Adicionar

Este método 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 método InsertOnSubmit(), que sirve para añadir un registro a una tabla en la base de datos.

Pero el método InsertOnSubmit no basta, la base de datos no almacena nada hasta que se llame al método SubmitChanges que es el que se encarga en realidad de llevar a cabo las acciones requeridas sobre la base de datos.

a cabo las acciones requeridas sobre la base de datos. 7.4.4. Vistazo al método Eliminar El

7.4.4. Vistazo al método Eliminar

El método eliminar es muy similar al método Adicionar, solo que esta vez utiliza el método DeleteOnSubmit() para eliminar al deportista en cuestión.

el método DeleteOnSubmit() para eliminar al deportista en cuestión. Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

7.4.5. Vistazo al método Actualizar

Aplicación de tres capas utilizando ASP.NET

Finalmente el método Actualizar, que lo que hace es reemplazar un registro antiguo por otro nuevo, podemos ver esto por los parámetros que se envían al método:

- Un nuevoItem (el nuevo deportista)

- Un originalItem (el deportista que será reemplazado)

El método utilizado en cuestión es el método Attach() que tomar como parámetros un registro antiguo y un registro nuevo, sobrescribe los datos de uno con el otro respectivamente.

sobrescribe los datos de uno con el otro respectivamente. 7.5. Creación de la clase PaisDA De

7.5. Creación de la clase PaisDA

De la misma manera, crearemos una clase PaisDA en el proyecto AccesoDatos.

Veremos que la creación de la clase PaisDA es MUY similar a la creación de la clase DeportistaDA, es tan similar que lo único que tendremos que hacer es reemplazar la palabra deportista por país:

que tendremos que hacer es reemplazar la palabra deportista por país: Noodles Tech Club Jorge Cupi

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

que tendremos que hacer es reemplazar la palabra deportista por país: Noodles Tech Club Jorge Cupi

Aplicación 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 presentación, entre otros.

Igual crearemos un proyecto de tipo Librería de clases, al cual llamaremos LogicaNegocio:

Además, nombraremos en este proyecto a todas nuestras clases de la siguiente manera:

<nombre_de_la_clase>BL

de la siguiente manera: <nombre_de_la_clase>BL 8.1. Haciendo referencia a Entidades y AccesoDatos En la

8.1. Haciendo referencia a Entidades y AccesoDatos

En la capa de lógica 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 métodos (métodos de adición, eliminación, y otras consultas) desde esta capa.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

Aplicación de tres capas utilizando ASP.NET 8.2. Creación de una Interfaz Al igual que en la

8.2. Creación de una Interfaz

Al igual que en la capa de acceso a datos, utilizaremos una Interfaz en esta capa, todo con el propósito de mantener un código ordenado y más entendible.

No es necesario realizar interfaces en una aplicación 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 código empleado en esta interfaz:

debajo vemos el código empleado en esta interfaz: 8.3. Creación de la clase DeportistaBL Tal como

8.3. Creación de la clase DeportistaBL

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

8.3.1.

Referencias

Recuerden que es importante hacer referencia al proyecto Entidades, así como también al proyecto AccesoDatos:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

Aplicación de tres capas utilizando ASP.NET Para cada clase tendremos lo siguiente: En este caso tenemos

Para cada clase tendremos lo siguiente:

utilizando ASP.NET Para cada clase tendremos lo siguiente: En este caso tenemos la clase DeportistaBL, mis

En este caso tenemos la clase DeportistaBL, mis otras clases vendrían a ser :

<nombre_de_mi_clase>BL

Podemos observar que nuestro constructor hereda los métodos de la Interfaz IDataAccess, esto con el propósito de tener los métodos ya vistos (adición, eliminación, actualización y obtener todos los registros).

8.4.2. Vistazo al método GetAll()

Como podemos observar, este método solo se remite a devolver el método GetAll() de una instancia de objeto de tipo DeportistaDA.

Quizás no tiene sentido crear una clase solo para llamar al método 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 método que si valida parámetros y recién llama a la capa de acceso de datos.

que si valida parámetros y recién llama a la capa de acceso de datos. Noodles Tech

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

8.4.3. Vistazo al método Adicionar()

Aplicación de tres capas utilizando ASP.NET

Pasa algo similar en el método Adicionar, solo creamos un objeto de tipo DeportistaDA y utilizamos su método Adicionar, enviándole los parámetros recibidos.

su método Adicionar, enviándole los parámetros recibidos. Sin embargo, podríamos realizar un par de cambios en

Sin embargo, podríamos realizar un par de cambios en este método, o bien, podríamos crear otro método adicionar que verifique que los datos introducidos sean correctos:

que verifique que los datos introducidos sean correctos: Con este nuevo método Adicionar, podemos verificar por

Con este nuevo método Adicionar, podemos verificar por ejemplo que el tamaño del campo id_deportista no exceda el limite asignado en nuestra base de datos, también verificamos por ejemplo que el país del que proviene el deportista exista en la base de datos.

La capa de lógica de negocios esta para esto, como podemos ver, utilizamos un método más el método NoSeEncuentra() que devuelve un booleano true si el país no se encuentra en la base de datos, y devuelve un false si el país si se encontrara.

Si lo notaron, hago referencia al país de nuestro deportista, como si fuera un atributo propio. Recordemos los atributos de Deportista y de País:

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

un atributo propio. Recordemos los atributos de Deportista y de País: Noodles Tech Club Jorge Cupi

Aplicación de tres capas utilizando ASP.NET

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

nos ahorramos escribir una consulta parecida a lo siguiente: Entonces, lo que hacemos con nuestra base

Entonces, lo que hacemos con nuestra base de datos mapeada es en realidad tratar a nuestras tablas como:

Y no algo así como

“deportista tiene país

“deportista tiene un código de país y país tiene un código país, Por tanto buscaremos el país cuyo código de país sea igual al código de país el deportista”

Que viene a ser mucho más incómodo y tedioso, esto nos ayuda a preocuparnos más en la lógica que apliquemos en nuestro software y no preocuparnos demasiado por lo que está pasando con la base de datos por detrás.

Con este ejemplo, espero quede en claro la funcionalidad de la capa de lógica de negocios.

No haremos ni modificaremos los métodos de Eliminar o Actualizar ya que vendrían a ser algo parecido. Solo echaremos un vistazo a los métodos por defecto que tenemos

8.4.4. Vistazo al método Eliminar()

Podemos observar que no tenemos nada escrito en el método Eliminar(), esto por decisión propia, supongamos que mi cliente solo quiere adicionar Países, no eliminarlos, entonces no escribiremos nada en la parte de Eliminación, sin embargo tenemos que crear el método ya que el uso de una Interfaz para estas clases nos obliga a hacerlo para mantener un código uniforme.

nos obliga a hacerlo para mantener un código uniforme. 8.4.5. Vistazo al método Actualizar() Finalmente vemos

8.4.5. Vistazo al método Actualizar()

Finalmente vemos al método Actualizar() que es prácticamente idéntico al método Adicionar:

Actualizar() que es prácticamente idéntico al método Adicionar: Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

9. Creación de la capa de presentación

Finalmente la capa a la que todos queríamos llegar: La capa de presentación.

En ella es en donde desplegamos lo que el cliente quiere.

- El cliente quiere una lista de todos los países latinoamericanos?

- El cliente quiere una lista de todos los deportistas africanos que juegan futbol en Inglaterra?

- El cliente quiere añadir un nuevo deporte a la base de datos?

- El cliente quiere actualizar la capacidad de todos los stadiums de España?

Todo eso y más son desplegados aquí, es la capa más externa y por tanto la capa que muestra los resultados.

Comencemos con la creación de esta capa. A diferencia de las otras capas, esta no estará dentro de un proyecto de tipo Librería de Clases, si no la albergaremos dentro de un proyecto de tipo “Aplicación Web de ASP.NET”. A este proyecto le daremos el nombre de “Presentación

este proyecto le daremos el nombre de “ Presentación ” 9.1. Haciendo referencia a Entidades y

9.1. Haciendo referencia a Entidades y LogicaNegocio

En la capa de presentación 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 métodos (métodos de adición, eliminación, y otras consultas) desde esta capa.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

Aplicación de tres capas utilizando ASP.NET 9.2. Creación de una página web Utilizaremos la página creada

9.2. Creación de una página web

Utilizaremos la página creada por default en nuestro proyecto, la página Default.aspx:

por default en nuestro proyecto, la página Default.aspx: Hacemos doble click en Default.aspx para desplegar su

Hacemos doble click en Default.aspx para desplegar su editor XML y de diseño:

Probemos nuestra aplicación ahora, presionemos F5 y veamos que pasa:

nuestra aplicación ahora, presionemos F5 y veamos que pasa: Traduciendo el error, nos dice que no

Traduciendo el error, nos dice que no podemos iniciar nuestra solución a partir de un proyecto de Librería de Clases, lo cual es cierto. Dado que un nuestros proyectos de librería de clases no tenemos nada que desplegar hacia nuestro cliente, para corregir este problema, la asignamos el título de proyecto iniciador a nuestro proyecto que alberga la capa de presentación.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

9.3. Convertir la capa de presentación en proyecto inicial.

Hacemos click derecho en nuestro proyecto Presentación y luego click en la opción “Establecer como proyecto inicial”.

Con este paso le decimos a nuestra solución que es este el proyecto que tiene que iniciarse una vez que intentemos debuggear o correr la aplicación como tal.

que intentemos debuggear o correr la aplicación como tal. 9.4. Corriendo nuestra aplicación. Una vez hayamos

9.4. Corriendo nuestra aplicación.

Una vez hayamos corregido este problema, presionemos una vez más F5 y veamos la primera corrida de nuestra aplicación:

una vez más F5 y veamos la primera corrida de nuestra aplicación: Noodles Tech Club Jorge

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación 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 página Default.aspx

9.5. Desplegando datos de la base de datos

Ya estamos llegando al final de este tutorial, finalmente desplegaremos la información almacenada en nuestra base de datos. Como hacemos esto?

9.5.1. Introduciendo elementos en nuestra pagina

Primero introduzcamos un botón y una lista de despliegue en nuestra página web Para esto, solo habilitaremos la pestaña de Diseño de nuestra página web y no así la pestaña de código:

de nuestra página web y no así la pestaña de código: Ya tenemos un botón y
de nuestra página web y no así la pestaña de código: Ya tenemos un botón y

Ya tenemos un botón y una lista de despliegue añadidos, hora de darles funcionalidad. Para lo cual crearemos un evento del botón. El evento por defecto de cualquier botón es el evento Clickque sucede como lo dice su nombre cuando un cliente hace click en el botón en cuestión.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

9.5.2. Crear el evento del botón

Aplicación de tres capas utilizando ASP.NET

Por ultimo nos queda darle funcionalidad a nuestro botón, hagamos doble click en el Botón:

a nuestro botón, hagamos doble click en el Botón: Podemos observar que en pantalla tenemos desplegado

Podemos observar que en pantalla tenemos desplegado el Code Behind de nuestra página ASP.NET y tras haber hecho doble click en el Botón, acabamos de generar el evento “Button1_Click”.

Esto quiere decir que se ejecutara el código que escribamos aquí cada vez que hagamos click a nuestro botón.

9.5.3. Dándole funcionalidad al botón

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

que nada, no olvidemos hacer referencia a los dos proyectos: Ya que tenemos referenciados a Entidades

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:

de todos los jugadores que tenemos registrados en la base de datos: Noodles Tech Club Jorge

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Analizando este código:

Aplicación de tres capas utilizando ASP.NET

- DeportistaBL bl = new DeportistaBL(); Estamos instanciando un objeto de tipo DeportistaBL con el propósito de poder usar los métodos que tiene este en la capa de lógica 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:

correr nuevamente nuestro programa y veamos los resultados: Podemos observar que ya tenemos una lista desplegable

Podemos observar que ya tenemos una lista desplegable y un botón en nuestra página, presionemos el botón y veamos que pasa:

un botón en nuestra página, presionemos el botón y veamos que pasa: Noodles Tech Club Jorge

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

9.6. Guardando información en la base de datos

Ya podemos desplegar datos en nuestra página, pero eso no es todo lo que haremos en nuestras páginas, también vamos a desear adicionar, eliminar o modificar datos.

Así que en el siguiente ejemplo veremos cómo funciona la adición de información en nuestra base de datos

9.6.1. Creando la interfaz en la capa de presentación

datos 9.6.1. Creando la interfaz en la capa de presentación Dentro de < asp : Content

Dentro de <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

Introduciremos el código de acá arriba, mostramos como es la edición de una página ASP.NET en código, ya que en el anterior ejemplo solo vimos la edición desde la pestaña diseño.

Podemos identificar la creación 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 botón que es el que accionaremos para grabar en la base de datos la información introducida en la página web.

Nuestra página debería de quedar así:

introducida en la página web. Nuestra página debería de quedar así: Noodles Tech Club Jorge Cupi

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

9.6.2. Dándole funcionalidad a nuestro botón “Adicionar País

funcionalidad a nuestro botón “Adicionar País ” A grandes rasgos, estamos creando un objeto de tipo

A grandes rasgos, estamos creando un objeto de tipo País , y a este le estamos dando los valores introducidos en la página web.

Posteriormente utilizamos el método AdicionarValidado de la clase PaisBL perteneciente a la capa de negocios que lo que hace es verificar ciertos errores como vemos a continuación:

es verificar ciertos errores como vemos a continuación: Lo que hace este método es verificar si
es verificar ciertos errores como vemos a continuación: Lo que hace este método es verificar si

Lo que hace este método es verificar si el código de país no excede los tres caracteres y además verifica que el cliente no introduzca datos erróneos 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 información

en la base de datos.

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Aplicación de tres capas utilizando ASP.NET

9.6.3. Probando nuestro botón de adición de Países:

Veamos los tres casos posibles:

- El id_pais es muy largo:

Veamos los tres casos posibles: - El id_pais es muy largo: - El nombre del continente

- El nombre del continente está mal escrito:

es muy largo: - El nombre del continente está mal escrito: - Los datos están introducidos

- Los datos están introducidos correctamente

está mal escrito: - Los datos están introducidos correctamente Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

Noodles Tech Club Jorge Cupi jorgecupi@hotmail.com

10. Que aprendimos?

Aplicación de tres capas utilizando ASP.NET

- Aprendimos la definición de la arquitectura tres capas.

- Aprendimos a realizar una aplicación en tres capas.

- Aprendimos a hacer referencias a otros proyectos dentro de una misma solución

- Aprendimos a mapear una base de datos utilizando el Linq To Sql Classes.

- Aprendimos a mostrar información de nuestra base de datos en nuestra página web.

- Aprendimos a adicionar información a nuestra base de datos desde una página 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