La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación Aplicada II Arquitecturas de Aplicación Ing. Roger M. Sánchez Chávez.

Presentaciones similares


Presentación del tema: "Programación Aplicada II Arquitecturas de Aplicación Ing. Roger M. Sánchez Chávez."— Transcripción de la presentación:

1 Programación Aplicada II Arquitecturas de Aplicación Ing. Roger M. Sánchez Chávez

2 ASP.NET tiene controles declarativos potentes permiten a los desarrolladores crear interfaces sofisticadas para visualizar y editar datos con poco o nada de programación. Proyectos de software reales son muy vulnerables a las necesidades cambiantes y los proyectos web son probablemente aún más. La funcionalidad de una aplicación web, rara vez se especifica por completo. Se añaden nuevas funciones y otras características, el modelo de datos y los requisitos de almacenamiento cambian. El desarrollador puede probar la aplicación en una base de datos, luego, migrar a SQL Server y, después de una fusión de empresas, migrar de a una base de datos Oracle. Semanas antes de la prueba alfa, el cliente puede hacer un cambio que requiera trabajar con un servicio Web externo en lugar de una base de datos local de alguna información. Introducción

3 Las capas (layers) se ocupan de la división lógica de componentes y funcionalidad y no tiene en cuenta la localización física de componentes en diferentes servidores o en diferentes lugares. Por el contrario, los niveles (tiers) se ocupan de la distribución física de componentes y funcionalidad en servidores separados, teniendo en cuenta topología de redes y localizaciones remotas. Aunque tanto las capas (layers) como los niveles (tiers) usan conjuntos similares de nombres (presentación, servicios, negocio y datos), es importante no confundirlos y recordar que solo los niveles (tiers) implican una separación física. Capas vs. Niveles

4

5 Localizar los cambios de similares en la aplicación, para reducir el trabajo requerido en arreglar defectos, facilitar el mantenimiento y mejorar la flexibilidad de la aplicación. Separación de responsabilidades entre componentes, aumenta la flexibilidad, mantenibilidad y escalabilidad. Componentes reutilizables entre diferentes módulos de una aplicación o incluso entre diferentes aplicaciones. Equipos diferentes deben poder trabajar en partes diferentes de la aplicación con mínima dependencia entre ellos. Los diferentes componentes de una aplicación deben de poder ser desplegados de una forma independiente, e incluso mantenidos y actualizados en momentos diferentes. Cada capa debe poder probarse de forma autónoma, asegurando la estabilidad. Estructurar una aplicación

6 Las capas son agrupaciones horizontales lógicas de componentes de software que forman la aplicación o el servicio. Ayudan a diferenciar entre los diferentes tipos de tareas a ser realizadas por los componentes, ofreciendo un diseño que maximiza la reutilización y especialmente la mantenibilidad. Cada capa lógica de primer nivel pueden tener un numero concreto de componentes agrupados en sub-capas; éstas realizan un tipo especifico de tareas Diseño básico de N-capas

7 El dividir una aplicación en capas separadas que desempeñan diferentes roles y funcionalidades, nos ayuda a mejorar el mantenimiento del código, permitiendo diferentes tipos de despliegue y proporcionando una clara delimitación y situación de donde debe estar cada tipo de componente funcional e incluso cada tipo de tecnología. Diseño básico de N-capas

8 Diseño en Capa Estricto: Limita a los componentes de una capa a comunicarse solo con los componentes de su misma capa o con la capa inmediatamente inferior. Diseños en Capas Laxo: Permite que los componentes de una capa interactúen con cualquier otra capa de nivel inferior. Diseño básico de N-capas

9 Debido a que cada capa interactúa con otras capas solo mediante interfaces bien definidos, es fácil añadir implementaciones alternativas a cada capa. Esto permite realizar pruebas unitarias de una capa incluso cuando las capas de las que depende no están finalizadas o incluso porque se quiera poder ejecutar mucho mas rápido un conjunto muy grande de pruebas unitarias que al acceder a las capas de las que dependen se ejecutan mucho mas lentamente. Es fácil realizar pruebas sobre componentes individuales porque las dependencias entre componentes están limitadas de forma que los componentes de capas de alto nivel solo pueden interaccionar con componentes en niveles inferiores. Esto ayuda a aislar componentes individuales para poder probarlos adecuadamente y nos facilita el poder cambiar unos componentes de capas inferiores por otros diferentes con un impacto muy pequeño en la aplicación. Consideraciones relativas a Pruebas

10 Beneficios de uso de N-Capas El mantenimiento de mejoras en una solución será mucho mas fácil porque las funciones están localizadas, las capas deben estar débilmente acopladas entre ellas y con alta cohesión interna; lo cual posibilita variar de una forma sencilla diferentes implementaciones y/o combinaciones de capas. Otras aplicaciones deberían poder reutilizar funcionalidad expuesta por las diferentes capas, especialmente si se han diseñado para ello. Los desarrollos distribuidos son mucho mas sencillos de implementar si el trabajo se ha distribuido previamente en diferentes capas lógicas. Las distribución de capas en diferentes niveles físicos pueden mejorar la escalabilidad.

11 Arquitectura N-Capas

12 La capa de presentación que en este caso esta formada por los componentes de IU que pueden ser vistos como la parte con la cual interactuar el usuario y los componentes de proceso de IU podríamos asociarlos a clases de tipo controladora en UML. Arquitectura 3-Capas

13 La capa de negocios encapsula lógica de negocios. Los servicios de esta capa son encapsulados en tres tipos de componentes, las entidades empresariales, que representan objetos que van a ser manejados o consumidos por toda la aplicación y los otros tipos de objetos son los componentes empresariales que contienen lógica de negocio, y en algunos casos los objetos raíz que inician las transacciones. Arquitectura 3-Capas

14 La capa de acceso a datos que contiene clases que interactúan con la base de datos. Estas clases surgen como una necesidad de mantener la cohesión o clases altamente especializadas que ayuden a reducir la dependencia entre las clases y capas. Arquitectura 3-Capas

15

16 Consideraciones: Instalación y Configuración: Enterprise Library 6.0 Copiar cadena de conexión en el Web.config: Realizar una Conexión de datos desde el Explorador de servidores. Aplicación en 3-Capas <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> <add name="Conex" connectionString="Data Source=????;Initial Catalog=Northwind;Integrated Security=True" providerName="System.Data.SqlClient" />

17 Crear una Solución de Visual Studio (se colocara un nombre para la solución y otro para el proyecto). Agregar los proyectos de Biblioteca de clase (Entidades, Datos y Negocio) que serán nuestras capas. Agregar las referencias a cada uno de los proyectos. Aplicación en 3-Capas

18 Crear una clase en el proyecto Entidades con el nombre de Categoria. Aplicación en 3-Capas using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Entidad { public class Categoria { public int CategoryId { get; set; } public string CategoryName { get; set; } public string Description { get; set; } }

19 Crear una clase en el proyecto Datos con el nombre de CategoriaD. Aplicación en 3-Capas using System; using System.Collections.Generic; using System.Linq; using System.Text; using Entidad; using System.Data; using System.Data.Common; using Microsoft.Practices.EnterpriseLibrary.Data; using Microsoft.Practices.EnterpriseLibrary.Common; namespace Datos { public class CategoriaD { public List listarCategorias() { Database db = DatabaseFactory.CreateDatabase("Conex"); DbCommand sql = db.GetSqlStringCommand("select categoryID, categoryname, description from categories"); IDataReader tvirtual = db.ExecuteReader(sql); List listacat = new List (); while (tvirtual.Read()) { Categoria elemento = new Categoria() { CategoryId = tvirtual.GetInt32(0), CategoryName = tvirtual.GetString(1), Description = tvirtual.GetString(2) }; listacat.Add(elemento); } return listacat; }

20 Crear una clase en el proyecto Negocio con el nombre de CategoriaN. Aplicación en 3-Capas using System; using System.Collections.Generic; using System.Linq; using System.Text; using Datos; using Entidad; namespace Negocio { public class CategoriaN { public List listarCate() { CategoriaD categoria = new CategoriaD(); return categoria.listarCategorias(); }

21 Crear un WebForm con el nombre ListaCategorias. Aplicación en 3-Capas

22 Agregar el siguiente código en el evento Page_Load del archivo ListaCategorias.aspx.cs. Aplicación en 3-Capas using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Negocio; namespace NorthwindApp.Consultas { public partial class ListaCategorias : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { CategoriaN categoria = new CategoriaN(); GridView1.DataSource = categoria.listarCate(); GridView1.DataBind(); }

23 Aplicación en 3-Capas Resultado luego de ejecutar la aplicación.


Descargar ppt "Programación Aplicada II Arquitecturas de Aplicación Ing. Roger M. Sánchez Chávez."

Presentaciones similares


Anuncios Google