Académique Documents
Professionnel Documents
Culture Documents
.NET
Carlos Walzer
msmvps.com/blogs/cwalzer
Objetivo
Disear arquitectura para aplicaciones y
servicios
Recomendar tecnologas apropiadas
Cumplir requisitos funcionales y no
funcionales
Elegir los mecanismos de comunicacin
adecuados
Agenda
Aplicaciones Distribudas
Diseo de los componentes de una aplicacin
o Servicio
Aplicacin ejemplo
Aplicaciones Distribudas
Aplicaciones distribudas
Para que distribuir?
Cumplir requerimientos funcionales
Conocimiento de los procesos empresariales
Cumplir requerimientos no funcionales
Escalabilidad
Disponibilidad
Rendimiento
Seguridad
Mantenimiento
Servicios
Que son?
Similiares a los componentes tradicionales
Encapsulan funcionalidad y datos
No forman parte de la App, son usados
Plataformas heterogneas
Comunicacin = Mensajes
Implcita
Explcita
Interfaz de Servicios = Contrato
Proceso basado en Servicios
Solucin basada en Servicios
Acoplamiento mnimo
Aplicacin tradicional de 3
niveles
Sin UI asociada
Transacciones atmicas
Componentes en Capas
Componentes y Servicios Relacionados
Diseo de los componentes de una
aplicacin o servicio
Tipos de Componentes
Al disear Aplicaciones o Servicios
Identifique los componentes necesarios
Diseo coherente de componentes de un tipo
Formato de intercambio de datos homogeneo
Abstraer cdigo que aplica polticas de la
funcionalidad
Tipo de comunicacin entre capas.
Capa de Interfaz de Usuario
Componentes de UI
Distintas tecnologas disponibles
Una pgina o formulario, controles, aceptan
entrada de datos.
Patrn View-Controler
Funcionalidades de los Componentes de UI
Canalizacin
Eventos
Diseo de Interfaz de Servicios
Punto de entrada a implementacin interna
Fachada que expone Mtodos
Individual o Secuencial
Contrato pblico
Esquema de datos
Seguridad, autenticacin
Proceso
Recomendaciones
Lmite de confianza de su Aplicacin
Que los cambios de funcionalidad no
impliquen cambios de interfaz
Diferentes usuarios, diferentes forma de
consumo, diferentes interfaces, misma lgica
Asmx, WSE, HTTP, Remoting, SOAP, MSMQ,
WCF
Uso de Fachadas con Interfaces de
Servicios
Fachada:
Autorizacin
Auditora
Validaciones
Usada por diferentes
canales
Datos entre Niveles
Windows Forms
Objetos, DataSet Tipados
OOP
Objetos, DataSet Tipados
ASP.NET
DataReader, DataSet, DataSet Tipados, XML + XSLT
Listados
DataReader, DataSet, DataSet Tipados, XML + XSLT
Binding
Objetos, DataSet, DataSet Tipados, XML
Componentes de entidades empresariales
personalizadas
Clases Custom
DTO (data transfer object)
Representan 1 o mas tablas del modelo relacional
Serializables
No tienen comportamiento
No acceden al almacenamiento de datos, ni manejan
Tx
No son obligatorios.
Capa de Acceso a Datos
Capa de Datos
Determinar:
Almacn de datos a utilizar
Diseo de los componentes para acceder a los
datos
Formato de datos entre capas y la programacin
relacionada.
Componentes Lgicos de Acceso a Datos
DAAB
Genrico, no conoce de entidades
Abstrae la APIs de ADO.NET y sus versiones
Buenas prcticas de acceso a Datos
Disminuye el cdigo repetitivo
Administracin la conexin
Agnstico del motor de Base de Datos
Cach de Parmetros de SP
Integracin con Servicios
Utilizar el API adecuada de llamada
Traduccin entre formatos
Mantener estado entre conversaciones de
ejecucin larga
Se recomienda utilizar un componente de
agente (Proxy)
Encapsula la comunicacin
Se pueden considerar como los componentes
lgico de acceso a datos para los servicios.
Conclusin
Arquitectura en el diseo
Reutilizacin
Futuro para el Sistema
Nueva Funcionalidad mas fcil de implementar
Escalabilidad
Reglas claras para el Team de desarrollo.
Utilice el sentido comn al aplicar los
conceptos
Referencias
msmvps.com/blogs/cwalzer
Msdn.microsoft.com/practices
Enterprise Solution Patterns Using Microsoft .NET
Application Architecture for .NET: Designing
Applications and Services
http://www.microsoft.com/spanish/msdn/arquitectura/das/di
stapp.asp
Patterns & practices Enterprise Library
.NET Data Access Architecture Guide
Exception Management Architecture Guide
Preguntas?
Muchas gracias
por su participacin
Carlos Walzer
msmvps.com/blogs/cwalzer