Aplicación en 3 capas utilizando ASP

30
  Aplicación en 3 capas utilizando ASP.NET Jorge Cupi Veliz  [email protected] 

Transcript of Aplicación en 3 capas utilizando ASP

Page 1: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 1/30

 

Aplicación en 3 capas utilizando ASP.NET

Jorge Cupi Veliz

 [email protected] 

Page 2: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 2/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

CONTENIDO

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

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

3. 

Que contiene cada capa? …………………………………………………………………………………………………. Pag 34.  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

Page 3: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 3/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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 unaarquitectura 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.

Page 4: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 4/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

3. Que contiene cada capa?

3.1.  Capa de presentaciónEs 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 negociosTambié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 datosEsta 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.

Page 5: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 5/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

5.1.  Abrir Visual Studio 2010

Page 6: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 6/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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:

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.

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’.  

Page 7: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 7/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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

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.

Page 8: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 8/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

Una vez hayamos hecho click en añadir, veríamos 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, además

de la base de datos a la cual queremos hacer referencia.

Page 9: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 9/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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 solución y poder usar la base de datos.

Page 10: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 10/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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.

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”: 

Page 11: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 11/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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.

7.2.  Creación de una clase Padre

Para poder ahorrar código, crearemos una clase llamada BASEDA, de la cual nuestras clases en la capade 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.

Page 12: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 12/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

7.3.  Creación de una interfaz 

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:

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

Page 13: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 13/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

7.4.  Creación de la clase DeportistaDA 

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:

Para cada clase tendremos lo siguiente:

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:

Page 14: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 14/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

7.4.2.  Vistazo al método GetAll()

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.

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 almétodo 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 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.

Page 15: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 15/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

7.4.5.  Vistazo al método Actualizar

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.

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:

Page 16: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 16/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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

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.

Page 17: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 17/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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:

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:

Page 18: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 18/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

Para cada clase tendremos lo siguiente:

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.

Page 19: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 19/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

8.4.3.  Vistazo al método Adicionar()

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.

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:

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:

Page 20: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 20/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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:

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

como:

“deportista tiene país”  

Y no algo así como

“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.

8.4.5.  Vistazo al método Actualizar()

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

Page 21: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 21/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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” 

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.

Page 22: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 22/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

9.2.  Creación de una página web

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

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:

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.

Page 23: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 23/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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 queintentemos debuggear o correr la aplicación como tal.

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:

Page 24: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 24/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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 ennuestra 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:

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

“Click” que sucede como lo dice su nombre cuando un cliente hace click en el botón en cuestión.

Page 25: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 25/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

9.5.2.  Crear el evento del botón

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

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:

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:

Page 26: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 26/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

Analizando este código:

-  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:

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

botón y veamos que pasa:

Page 27: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 27/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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 dedatos

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

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í:

Page 28: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 28/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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

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:

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.

Page 29: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 29/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

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

Veamos los tres casos posibles:

-  El id_pais es muy largo:

-  El nombre del continente está mal escrito:

-  Los datos están introducidos correctamente

Page 30: Aplicación en 3 capas utilizando ASP

5/10/2018 Aplicaci n en 3 capas utilizando ASP - slidepdf.com

http://slidepdf.com/reader/full/aplicacion-en-3-capas-utilizando-asp 30/30

Aplicación de tres capas utilizando ASP.NET

Noodles Tech Club

Jorge Cupi

 [email protected]

10. Que aprendimos?

-  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  [email protected] 

-  O encontrarme en Facebook: http://www.facebook.com/JorgeCupi 

Muchas gracias =).