1 / 39

Aplicaciones N-Capas con .NET

Aplicaciones N-Capas con .NET. 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

garron
Download Presentation

Aplicaciones N-Capas con .NET

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aplicaciones N-Capas con .NET

  2. Patrones • Describen problemas/solucionesya “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 Con autoridad Probadas Precisas Relevantes Utilizables Disponible online (en inglés): http://www.microsoft.com/practices Libros disponibles:http://www.amazon.com/practices CD de recursos: http://shop.microsoft.com/practices

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

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

  10. Aplicación 15% Biblioteca Vertical 65% Biblioteca Horizontal 20% Uso de las bibliotecas 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 2.0 (MSDN / Patterns & Practices) http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp • Versión 3.1 (GotDotNet) http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=c20d12b0-af52-402b-9b7c-aaeb21d1f431

  16. Data Access Application Block

  17. SqlHelper DAAB Abstract Factory (3.x) AdoHelper 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 • 0.8.4.0

  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. ¿Dudas?

  38. Gracias

More Related