La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aplicaciones N-Capas con.NET. Patrones Describen problemas/soluciones ya conocidas y recurrentes Facilitan la comunicación Al identificar un patrón, permiten.

Presentaciones similares


Presentación del tema: "Aplicaciones N-Capas con.NET. Patrones Describen problemas/soluciones ya conocidas y recurrentes Facilitan la comunicación Al identificar un patrón, permiten."— Transcripción de la presentación:

1 Aplicaciones N-Capas con.NET

2 Patrones Describen problemas/soluciones ya conocidas y recurrentes Facilitan la comunicación Al identificar un patrón, permiten construir un conjunto de conceptos/ soluciones a su alrededor (de aplicabilidad inmediata) Se complementan Aplicables en distintas áreas de la construcción / implementación de sistemas

3 patterns & practices Direcciones y guía en temas de arquitectura por parte de Microsoft Disponible online (en inglés) : Libros disponibles: CD de recursos: Probadas Con autoridad Precisas Utilizables Relevantes

4 Arquitectura en Capas Diseñamos una aplicación en capas, donde cada capa expone servicios que otras aplicaciones o capas pueden consumir, y donde cada capa puede consumir servicios de otras ¿Cuáles son las capas y qué componente se coloca en cada capa?

5 Arquitectura en Capas A tener en cuenta … -Queremos minimizar los efectos de cambiar una capa -Los servicios se pueden llegar a exponer hacia fuera del lugar físico o de la empresa -Comunicarse con otros servicios involucra múltiples protocolos, formatos de datos y conocimientos técnicos -Tratamos de aislar la lógica de negocios de la tecnología usada para acceder a los servicios

6 Arquitectura.NET UI Componentes UI Componentes de Procesos Componentes de Accesos a Datos Workflows de Negocio Componentes de Negocio Usuarios Entidades de Negocio Agentes de Servicios OperacionesSeguridadComunicaciones Interfaces de Servicios Orígenes de Datos Servicios

7 Página Web de Presupuestos Página Web de Inventario Página Web de Clientes Manejo de Presupuestos Cálculo de Precios Manejo de Clientes UtilidadesADO.NET Acceso a Datos De Presupuestos Capa de Presentación Capa de Negocio Capa de Datos Arquitectura.NET simple

8 .NET & WindowsADO.NET Presentación Lógica negocio & Fábrica Mensajes Integración y persistencia de datos Patrones de Diseño en.NET ASPX/MX Front Controller ASCX Code Behind Base Form Control ASPX (ASCX) XML DataSet VO Business Service Proxy Data Access Proxy Business Delegate Adapter Business Delegate Factory Business Service Facade Disconnected DataSet &/or ObjectSpaces Data Access Proxy XML DataSet VO C# Assembly & Serviced Component Serialized XML DataSet VO Attributed Connection Pooling & Transactions Resources Database Directory MSMQ Data Access Object Request 1. Request 4. Dispatch 2. Fill State 3. Validate 16. Redirect > 5. Get Delegate 6. Execute 7a. Execute Biz Method 7b. CRUD Data 17. State? 15. Fill State 18. Response 8. Execute Biz Method 9. Assemble Data 10b. Get/Set Remove 12. CRUD Data 10a. Invoke 13. CRUD Data 14. Query > To DAO Response 11a. Get/Set Remove IIS & ASP.NET Disconnected DataSet &/or ObjectSpaces 10c. CRUD Data > 11b. CRUD Data XML Action to Form & Forward Mappings MSMQ R WS MSMQ R WS Value Object Assembler.NET & Windows / EJB Container Otra infrastructuraClave M V C P Other Pattern Model Pattern View Pattern Controller Pattern Event Interceptor Framework Security Management Framework Event Notification Framework Messaging Command Factory Filter Interceptors Service Activation Message Q & Channel Locator >

9 Arquitectura común de Aplicaciones distribuidas Web Básica Web Clients Web Farm UIC BC UIP Data and Services DAC Web Farm UIC UIP SI SA Web Empresarial Data and Services Application Farm BC DAC Web Clients Escritorio Empresarial Rich Clients UIC UIP Data and Services Application Farm BC DAC Web Farm SI SA Web Compleja Data and Services Application Farm BC DAC Web Clients Web Farm UIC UIP

10 Uso de las bibliotecas Biblioteca Horizontal BibliotecaVertical Aplicación15% 20% 65% Source: Mili, et. al., Reuse-Based Software Engineering, Techniques, Organization and Measurement, John Wiley & Sons, Inc., c2002.

11 Capa de Datos

12 Arquitectura.NET UI Componentes UI Componentes de Procesos Componentes de Accesos a Datos Workflows de Negocio Componentes de Negocio Usuarios Entidades de Negocio Agentes de Servicios OperacionesSeguridadComunicaciones Interfaces de Servicios Orígenes de Datos Servicios

13 Data Access Logic Components Objetos sin comportamiento que solo saben guardar un Business Entity en la base de datos. Generalmente son clases con métodos estáticos. Utilizan alguna forma de acceso a datos simplificado como Data Access Application Block. Deben ser llamados por el Business Component de forma que no se tenga en cuenta el origen de los datos. Realiza todas las conversiones y validaciones necesarias que estén relacionadas con el modelo de base de datos.

14 Capa de Datos Se puede implementar: -Escribiendo código ADO.NET para cáda método de cada objeto: Create, Open, Update, Delete, Find. -Escribiendo código con DAAB. -Usando DataAdapter, si se usan DataSets como Business Entities. -Alguna herramienta de Object Relational Mapping.

15 DAAB - Data Access Application Block Versión 2.0 (MSDN / Patterns & Practices) us/dnbda/html/daab-rm.asp Versión 3.1 (GotDotNet) spx?id=c20d12b0-af52-402b-9b7c-aaeb21d1f431

16 Data Access Application Block

17 DAAB Abstract Factory (3.x) AdoHelper SqlServer Odbc … … OleDb SqlHelper

18 Framework de persistencia, basado en objetos, para bases de datos relacionales. Portado de Hibernate de Java Permite mapear tablas y relaciones entre las mismas a partir de entidades (clases) escritas en c# Libera al programador de la mayoría de las tareas de persistencia de datos ¿Qué es NHibernate?

19 Arquitectura

20 Algunas características Soporte de: HerenciaHerencia PolimorfismoPolimorfismo Relaciones uno a muchos, muchos a unoRelaciones uno a muchos, muchos a uno Claves compuestasClaves compuestas Colecciones de datosColecciones de datosCache Varios cache providersVarios cache providersTransacciones Lazy Inicialization HQL Ultima versión disponbible

21 Clases – XML – Tablas Las clases escritas en código se vinculan a las tablas mediante archivos hbm Los hbm son xml que determinan mapeos entre las Properties y las columnas de una tabla.

22 Licencia Lesser General Public License (LGPL) Es una free software licence.Es una free software licence. Sin embargo es una strong copyleft licenceSin embargo es una strong copyleft licence - Esta permitido linkearla con módulos que no son libres. GNU y GPL tienen un esquema de sombrilla Si se utilizan librerias GNU o GPL en proyectos, el producto final debe ser también GNU o GPL respectivamente.Si se utilizan librerias GNU o GPL en proyectos, el producto final debe ser también GNU o GPL respectivamente. En cambio la LGPL permite cerrar el código.

23 Capa de Negocio

24 Arquitectura.NET UI Componentes UI Componentes de Procesos Componentes de Accesos a Datos Workflows de Negocio Componentes de Negocio Usuarios Entidades de Negocio Agentes de Servicios OperacionesSeguridadComunicaciones Interfaces de Servicios Orígenes de Datos Servicios

25 Interfaces de servicios Es el punto de entrada de la Capa de Negocio Expone la funcionalidad que otras aplicaciones pueden consumir Se implementa con Servicios Web o Remoting (en caso de aplicaciones distribuidas) Se puede implementar con otras tecnologías: BizTalk Server, Message Queues...

26 Entidades de Negocio Son contenedores de datos Encapsulan y ocultan los detalles de representación de datos Puede encapsular datos que provengan de un Recordset, y luego enviarlos a un XML No tienen lógica de negocios Es conveniente distinguir entre instancia y colección de instancias

27 Entidades de Negocio Se referencian desde la capa de presentación, desde la interfaz de servicio y desde los componentes de negocio Alternativas -DataSet -DataSet tipado -Objetos (individuales y colecciones) -XML

28 Componentes de Negocio Implementación en software de conceptos de negocios Encapsulan las reglas de negocio de la aplicación, relacionadas con un Business Entity. Algunos métodos requieren acceder a la base de datos (Capa Datos) Separación de las Business Entities

29 Business Workflow Implementan las actividades de alto nivel del negocio: proceso de una orden de compra, de una factura Son métodos que no pertenecen a un objeto en particular Se pueden agrupar en objetos o en un objeto por método Cada método de un Service Interface, accede a un Business Workflow o a un Componentes de Negocio

30 Capa de Presentación

31 Para muchas aplicaciones se usa la metáfora del formulario/informe Habrá formularios/páginas web de ingreso y modificación Habrá formularios/páginas web de vista de datos Son los Componentes de Interfaz Hay Componentes de Proceso de Interfaz

32 User Interface Components Muestran datos a los usuarios Adquieren y validan (en alguna medida) la entrada de los usuarios Interpretan gestos del usuario, para ejecutar una acción NO PARTICIPAN, No hacen nada por sí solos.

33 Interfaz Windows Para entornos desconectados o clientes ricos (rich clients) Opciones de implementación más simple: -Windows Forms

34 Interfaz Web ASP.NET Web Forms Basado en componentes en el servidor Usa enlace de datos en los controles Entorno de desarrollo integrado al resto de las soluciones Amplio manejo de estado y caching Nuevo modelo de Formularios

35 Infraestructura

36 Capa de Infraestructura Son servicios para las aplicaciones Dado que no pertenecen a ninguna capa, se definen por fuera aunque en algunos casos se implementen o usen en alguna capa. Son los siguientes: -Seguridad - AuthZ, AuthN, Comunicación segura, Auditoría, Manejo de Perfiles. -Operaciones - Manejo de excepciones, Monitoreo, Execución asincrónica, Metadatos, Configuración. -Comunicaciones - Formato, Protocolo, Asincronismo.

37

38 ¿Dudas?

39 Gracias


Descargar ppt "Aplicaciones N-Capas con.NET. Patrones Describen problemas/soluciones ya conocidas y recurrentes Facilitan la comunicación Al identificar un patrón, permiten."

Presentaciones similares


Anuncios Google