La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aplicaciones N-Capas con .NET

Presentaciones similares


Presentación del tema: "Aplicaciones N-Capas con .NET"— 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 Probadas Con autoridad Precisas
“patterns & practices” Direcciones y guía en temas de arquitectura por parte de Microsoft Probadas Con autoridad Precisas Relevantes Utilizables Disponible online (en inglés): Libros disponibles: CD de recursos:

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 Usuarios Comunicaciones Operaciones Seguridad
UI Componentes UI Componentes de Procesos Interfaces de Servicios Workflows de Negocio Componentes de Negocio Entidades de Negocio Componentes de Accesos a Datos Agentes de Servicios Orígenes de Datos Servicios

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

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

9 Arquitectura común de Aplicaciones distribuidas
Web Básica Web Compleja Data and Services Application Farm BC DAC Web Clients Web Farm UIC UIP 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 Clients Web Farm UIC BC UIP Data and Services DAC

10 Uso de las bibliotecas Biblioteca Horizontal Aplicación 15% Biblioteca
Vertical Aplicación 15% 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 Usuarios Comunicaciones Operaciones Seguridad
UI Componentes UI Componentes de Procesos Interfaces de Servicios Workflows de Negocio Componentes de Negocio Entidades de Negocio Componentes de Accesos a Datos Agentes 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 (MSDN / Patterns & Practices) Versión (GotDotNet)

16 Data Access Application Block

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

18 ¿Qué es NHibernate? 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

19 Arquitectura

20 Algunas características
Soporte de: Herencia Polimorfismo Relaciones uno a muchos, muchos a uno Claves compuestas Colecciones de datos Cache Varios cache providers Transacciones 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. <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"> <class name=“NombreCompletoClase, NombreAssembly" table=“NombreTabla"> <id name="Id" column=“NombreColumnaKey“ type="String" length="20"> <generator class="assigned" /> </id> <property name=“NombreProperty1“ column= “NombreColumna1" type=“TipoDato1" length="40"/> <property name=“NombreProperty2“ column= “NombreColumna2" type=“TipoDato2" length="40"/> <property name=“NombreProperty3“ column= “NombreColumna3" type=“TipoDato3" length="40"/> </class> </hibernate-mapping>

22 Licencia Lesser General Public License (LGPL)
Es una “free software licence”. Sin 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. En cambio la LGPL permite cerrar el código.

23 Capa de Negocio

24 Arquitectura .NET Usuarios Comunicaciones Operaciones Seguridad
UI Componentes UI Componentes de Procesos Interfaces de Servicios Workflows de Negocio Componentes de Negocio Entidades de Negocio Componentes de Accesos a Datos Agentes 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 Capa de Presentación 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"

Presentaciones similares


Anuncios Google