01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

download 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

of 33

Transcript of 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    1/33

    | Architecture

    Presentacin Global

    Csar de la TorreArchitect [email protected] Divisin de Desarrolladores y Plataforma

    Gua Arquitectura Microsoft .NET 4.0Arquitectura N-Capas DDD

    - Presentacin Global -

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    2/33

    AGENDA13/05/2010Hora Descripcin Ponente

    9:30-10:00 - Inicio del evento, agenda y METRO (Early-Adopters) Cesar de la TorreMicrosoft

    10:00-10:40

    (40 minutos)

    - Novedades .NET 4.0 Wave y relacin con Arquitecturas

    - Presentacin Arquitectura Referencia .NET- Iniciativa Microsoft Ibrica- Introduccin Arch. DDD (Domain Driven Design)- Introduccin global aArquitectura Marco N-Layer-Domain Orientedy Aplicacin ejemplo

    Cesar de la Torre

    Microsoft

    10:40 11:30(50 minutos)

    Capa de Infraestructura de Persistencia y Acceso a Datos- Introduccin a EF 4.0 (Novedades vs. EF 1.0)- Implementacin de patrones Repository, Unit of Work, etc. con EF 4.0

    - Mapeo a Arquitectura N-Layer Marco y App ejemplo

    Unai ZorrillaPlain-Concepts

    11:30 12:00 Coffee

    12:00 -12:55

    (55 minutos)

    Desacoplamiento entre componentes de arquitectura: IoC & DI

    - Por qu desacoplamiento e Inyeccin de Dependencias?.- Importancia en Diseo (SOLID), Pruebas Unitarias y Mocking.- Introduccin a Unity

    Hadi Hariri

    JetBrains

    13:00-13:50(50 minutos)

    Capa de Dominio y Filosofa DDD- Filosofa DDD e importancia del Modelo de Dominio- Implementacin de Patrones en Capa de Dominio

    - Entities. Aggregate, Object-Value, Services, etc.- Transacciones (System.Transactions)- Introd. Capa de Aplicacin

    Cesar de la TorreMicrosoft

    14:00-15:00 Comida (Catering)

    15:00-15:45(45 minutos)

    Capa de Servicios Distribuidos- Novedades en WCF 4.0- Decisiones de Diseo de Capa Servicios (Tipos de datos, etc.)

    Jos Miguel TorresMVP

    15:50-16:35(45 minutos)

    Capa de Presentacin- Patrones de Arquitectura en Capa de Presentacin- Novedades en Silverlight 4.0 y WPF 4.0

    Miguel Angel RamosMicrosoft

    16:40-17:10(30 minutos)

    Seguridad Orientada a claims y WIF- Introduccin a Seguridad Orientada a Claims- Introduccin a WIF(Windows Identity Foundation) yADFS 2.0

    Cesar de la TorreMicrosoft

    17:15-18:00(45 minutos) Aspectos Transversales y Windows Server AppFabric- Introduccin a Aspectos Transversales y QoS- AppFabric Cache- AppFabric Hosting de Servicios

    Cesar de la TorreMicrosoft

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    3/33

    Novedades .NET 4.0 Wave

    ADO.NETEntity Framework V4.0

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    4/33

    Novedades .NET 4.0 Wave

    ADO.NETEntity Framework V4.0

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    5/33

    Novedades .NET 4.0 Wave

    ADO.NETEntity Framework V4.0

    ADO.NETEntity Framework V4.0

    Arquitectura

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    6/33

    | Architecture

    Objetivos de - Gua de Arquitectura -

    Proponer tendencias y patronesactuales para appscomplejas

    Estandarizacin y homogenizacinArquitectura.NET. (Nivel Org./Empresa)

    Facilitar adopcin Plataforma .NET enescenarios complejos empresariales

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    7/33| Architecture

    Cmo?

    Elaborar Gua Arquitectura Referenciaen Espaol

    Mapeo de Patrones a Tecnologas .NET

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    8/33| Architecture

    Libro

    Blanco

    Documentacinen dos niveles:1.- Nivel lgico (Arquitectura y patrones)

    2.- Implementacin (Mapeo a .NET 4.0wave)

    Aplicacin Ejemplo

    Pblica en (OSS License)

    Colaboracin Comunidad

    http://www.codeplex.com/http://www.codeplex.com/http://www.codeplex.com/http://www.codeplex.com/
  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    9/33

    Nuevo siteArquitectura MSDN-EspaaDocumentacin Arquitectura

    http://msdn.microsoft.com/es-es/architecture/default.aspx

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    10/33

    Documentacin-LibroGua de Arquitectura N-Layer

    DDD e Implementacin .NET 4.0

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    11/33

    App. Ejemplo en CODEPLEXhttp://microsoftnlayerapp.codeplex.com/

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    12/33

    Demo de Aplicacin Ejemplobasada en Arquitectura N-Layer

    Orientada al Dominio

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    13/33

    | Architecture

    Tipos de Aplicaciones objetivo

    Aplicaciones Empresariales Complejas

    Gran volumen Lgica Negocio

    Requerimientos QoS empresariales SeguridadCorporativa (heterogenea) Rendimiento y Escalabilidad

    Gran Volumen Pruebas Unitarias

    App con viday evolucin larga No apps-RAD en este contexto

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    14/33

    | Architecture

    Pilares de la Arquitectura Propuesta

    Arquitectura N-Capas Orientada al Dominio

    Estilos Arquitecturales DDD

    (Domain Driven Design)

    El Modelo del Dominioes el corazn del software Aislar el Dominio de la Infraestructura

    Principios base del Desarrollo: SOLID Desacoplamiento entre objetos es crucial (DI, IoC, etc.)

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    15/33

    | Architecture

    Principios SOLID en Desarrollo

    Single Responsability Principle Una clase solo debe tener una razn para cambiar

    Open Close Principle Una clase debe estar abierta a la extensin pero cerrada a cambios

    Liskov Substitution Principle Los sub-tipos o clases hijas deben ser sustituibles por sus propios tipos base relacionados (clases

    base o interfaces)

    Interface Segregation Principle

    Los Consumidores no deben estar obligados a implementar interfaces que no usan

    Dependency Inversion Principle (*) Las Capas de alto nivel no deben depender de Capas de bajo nivel. Ambos deben depender de

    abstracciones

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    16/33

    | Architecture

    DDD: Ciclo de vida en el desarrollo

    -DDD es, sobre todo, una forma de trabajar y afrontar el

    proyecto- Este proceso de trabajo NO estar incluido en esta Guade Arquitectura.

    Arquitecturay Diseo

    Aceleradesarrollocorrecto

    DesarrolloFeedbackde

    desarrolladores

    Mejora delDiseo y

    Arquitectura Comunicacincon Expertosdel Dominio

    (*) Para conocer elproceso de trabajo enDDD, leer libro DDD deEric Evans, patronesrelacionadosdocumentados por Martin

    Fowler y otros libros DDD

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    17/33

    | Architecture

    DDD: Domain Driven Design

    Proceso y Ciclo de Vida delProyecto- Ciclo de Vida del proyecto- Relacin del equipo desarrollo, expertos negociodel cliente, etc.- Lenguaje ubicuo

    80%

    20%

    Arquitectura

    (*) En esta Arquitectura solo nos centramos en

    este 20%

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    18/33

    | Architecture

    Cundo DDD (Domain Driven Design)?

    Aplicaciones Complejas? DDD

    Gran volumen Lgica Negocio/Dominio

    Entendimiento del Dominio

    Lenguaje Ubicuo

    Foco en Dominios complejos

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    19/33

    | Architecture

    Tendencias de Arquitectura en DDD

    - Ciertos Aspectos Arquitectura DDD interesantes

    Aislar la Capa del Dominio (Core)

    Encaja con Principio de Inversin de

    Dependencias y con DI Capas de Infraestructura

    desacopladas del Dominio!

    Patrones Arquitectura DDD

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    20/33

    | Architecture

    Patrones en DDD

    IoCContainers

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    21/33

    Arquitectura DDD(Diagrama Eric Evans)

    InterfazUsuario

    Aplicacin

    Dominio

    Infraestructura

    Vistas

    Controladores

    Tareas

    ServiciosAplicacin

    ServiciosDominio

    EntidadesDominio

    PersistenciaDatos(Repositorioetc.)

    InfraestructuraTransversal(Seguridad,Logging,etc.)

    InfraestructuraTransversal(Libs. 3D, etc.)

    InfraestructuraTransversal(Seguridad,Logging,etc.)

    Arquitectura N Capas Orientada al Dominio (SIMPLIFICADO)

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    22/33

    | Architecture

    Fuentes

    de Datos

    Arquitectura N-Capas Orientada al Dominio (SIMPLIFICADO)

    Servicios

    Externos

    Capa de Presentacin

    Capa del Modelo deDominio/Negocio

    Capa de Infraestructura dePersistenciade Datos, etc.)

    Cap

    asInfraestru

    ctura

    Transv

    ersal

    (S

    eguridad,Op

    eraciones,etc.)

    Capa Servicios Distribuidos (Servicios-Web)

    Capa de Aplicacin

    Arquitectura N Capas con Orientacin al Dominio (DDD)

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    23/33

    | Architecture

    Presentacin

    ComponentesServidor deAplicacin

    Capa de Infraestructura de Persistencia de Datos

    Repositorios(Implementacin)

    Servicios del Dominio

    Capa de Dominio

    Capa Servicios Distribuidos (Servicios-Web)

    Cliente Rico / RIA Cliente Web ASP.NET

    Vistas IU

    ControladoresAgentes

    Servicio

    Vistas IU

    Controladores

    Se

    guridad

    O

    peraciones(Logg

    ing,Monitorizaci

    n,etc.)

    Gestin

    deExcepciones

    FuentesDatos

    PC

    ClienteServidor Web

    Arquitectura N-Capas con Orientacin al Dominio (DDD)

    ServiciosExternos

    Agentes Servicio

    Bases (SuperTypes)

    Modelo de DatosPersistencia

    (ORMs: EF, NHibernate)

    Entidadesdel

    Dominio

    Capa de Aplicacin

    Contratos de Repositorios

    Tareas Serviciosde App. DriversCasos Uso

    Capas InfraestructuraTransversal

    Bases (SuperTypes)

    Workflows

    Especificaciones de Consultas

    ADO.NETEntity Framework V4.0

    Cache

    Hosting Service Bus

    Access Control

    Di L VS 2010

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    24/33

    Diagrama LayerVS.2010

    Relacin y mapeo con

    proyectos y cdigo .NET

    Validacin de la

    Arquitectura contracdigo .NET del solution!

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    25/33

    No solo Arquitectura...

    Tambin proponemos

    Diseo e implementacin en .NET 4.0...

    (Entity Framework 4.0, Unity, WCF, WF, WPF,Silverlight, etc.)

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    26/33

    Servicio

    CustomerService

    RepositorioCustomerRepository

    Entidaddel

    Dominio

    Servicio delDominio

    InterfazDel Servicio

    EntidadCustomer

    Capa de Dominio

    Capa de

    Infraestructura dePersistencia de Datos

    Especificacinde Consulta(Contrato)

    RepositorioInterfaz delRepositorio

    (Contrato)

    EspecificacinConsulta

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    27/33

    - Estructura Solution App-Ejemplo- Unit-Testing y Desacoplamiento

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    28/33

    N-Layer vs. N-Tier?

    Capas Lgicas Niveles Fsicos

    Son Complementarias!!..

    (*) Detalles en sesin de Servicios Distribuidos

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    29/33

    | Architecture

    Patrones de Despliegue

    - Arquitectura Fsica

    - Arquitecturas N-Tier- Seguridad en Tiers

    (*) Detalles en sesin de Servicios Distribuidos

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    30/33

    | Architecture

    Aspectos Transversales y QoS

    -Seguridad

    - Orientacin a Claims(WIF: Windows Identity Foundation, aka Geneva)

    - Autenticacin, Autorizacin, Cifrado y Firma Elect.

    - Cache- Windows Server AppFabric(WCF/WF Deployment andCache(Velocity)

    - Gestin de Excepciones- Validaciones-Operacionesy Monitorizacin

    -Performace Counters-Logging y Trazas-WMI

    - Globalizaciny Localizacin

    A D l l D t

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    31/33

    | Architecture

    Acceso Dual a los Datos

    Presentacin

    Infraestructura

    ORM

    Dominio

    Vistas IU

    Controladores

    B.D. Tx.

    Consultas(Informes, etc.)

    Componentes Servidor Aplicaciones

    LibreraAcceso Datos

    Datawarehouse misma B.D.

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    32/33

    A continuacin profundizamos!!

    Sesion Capa Persistencia

    Sesion Capa Dominio y App.

    Sesion Capa Servicios-Distrib.

    Sesion Capa Presentacin

    Sesion Seguridad

    Sesion Cache y A. Transversales

    Sesion Desacoplamiento y SOLID

  • 7/21/2019 01 Guia Arquitectura N Layer DDD Microsoft NET 4 0 Vision Global 1h 18-05-13

    33/33

    Csar de la TorreArchitect Advisor

    Microsoft Divisin de Desarrolladores y Plataforma

    " Blog: http://blogs.msdn.com/cesardelatorre

    * Email: [email protected]

    Contacto