Post on 03-Feb-2015
Bienvenidos
Acceso a datos y paso de datos entre capas
José Marcenaro (MVP) Gastón Quirque (MVP–MCP)
Agenda
Temas a tratar
I. Flexibilidad, optimización y reutilizaciónen el acceso a datos
II. Transferencia de datos entre capas
Nivel de la conferencia: Intermedio (200)
Diseño y desarrollo de aplicaciones
distribuidas
Contexto
¿Para qué Acceso a Datos entre capas?
Aplicaciones distribuidas
¿Por qué distribuidas?
• (por dispersión geográfica)• por escalabilidad• por seguridad• por flexibilidad
I - Flexibilidad, optimización y reutilización en el acceso a datos.
Aplicaciones distribuidas
1. Entender los fundamentos2. Aplicar las mejores prácticas3. Partir de una base probada
¿Cómo?
Entender los fundamentos
• Criterios centrales del modelo ADO.NET• Dos grupos de componentes• Especialización de funciones
Aplicar las mejores prácticas
• Conexiones, seguridad e identidad• Procedimientos almacenados• Detección de conflictos• Manejo transaccional
Ver: /practices (PAG)y Data Access Guide:
http://msdn.microsoft.com/library/en-us/dnbda/html/daag.asp
Partir de una base probada
Data Access Application Block
• Revisión, ejemplo• Evolución del DAAB• Es un punto de partida
II - Transferencia de datos entre capas
Aplicaciones distribuidas
Transferencia de datos entre capas
• Punto de partida• Tecnologías de invocación remota• Principales factores de análisis• Pasaje de datos: alternativas
Punto de partida
• Invocación remota DCOM / COM+• Limitado a ambientes Intranet
• Alto costo de implementación
• Baja interoperabilidad
Acceso y representación de datos
Capa de Presentación
Capa de Procesos de Negocio
Capa de Datos
Capa dePresentación
Componentesde Procesos de
Negocio
Datos de la Aplicación
Entidades deNegocio
Componentes deLógica de Acceso
a Datos
Guías Prescriptivas de Arquitectura
Mecanismos de invocación remota
Capa
XML Web Services .NET Remoting
Capa
Dos tecnologías principales
Tecnologías
• Web Services - Características
– Interoperabilidad entre plataformas
– Protocolos estándar– Estructura simple Intercambio de mensajes
• System.Web.Services.WebServices, [WebMethod]
– Clientes heterogéneos
– Infraestructura Servicios de IIS• Seguridad• Control de ejecución
– Configuración simple
Tecnologías
• .NET Remoting - Características
– Comunicar distintos Dominios de Aplicación
– Protocolos y formatos
– Estructura programación enriquecida
• MarshalByRefObject, ISerializable
– Clientes .NET– Proceso host
• Servicios de IIS
– Protocolos y formatos– Configuración simple
Tecnologías
Serialización y metadatos
Enviar instancias de datos programáticos a través de la red
Enviar una descripción del significado de los mensajes
Capa Capa
Tecnologías
Web ServicesSerialización y metadatos
XMLSerializer
System.Xml.Serialization.XmlSerializer
WSDL y XSD
Tecnologías
RemotingSerialización y metadatos
IFormatter
BinaryFormatter y SOAPFormatter
Assemblies
Factores de análisis
• Modelo de programación
• Protocolo de transporte y procesos
• Seguridad
• Manejo de estado
• Performance
Modelo de programación
• Web Services
– Simple
– Mapeo de mensajes SOAP Invocación de métodos
• Remoting
– Mucho mas rico y complejo
– Funcionalidad ampliada
• Pasaje de objetos• Callbacks
Protocolo de transporte y procesos
• Web Services
– HTTP
– IIS (aspnet_wp.exe)
• Remoting
– HTTP y TCP
– Servicio Windows o un exe .NET
– IIS
• Auto inicio de un punto final• Thread seguro
Seguridad
• Web Services
– ASP.NET (IIS)
– SSL
– WS-Security (WSE)
• Remoting
– No provee características de seguridad nativas
– IPSec
– Servicios de IIS
Manejo de estado
• Web Services– Arquitectura de servicios sin estado
– Servicios de ASP.NET
• Remoting– SingleCall– Singleton– Client-Activated
Performance
• Máxima performance
– Remoting canal TCP, formateador Binary
• Datos interesantes
– Web Services vs. Remoting HTTP y SOAP
– Web Services vs. Remoting HTTP y Binary
• Testhttp://msdn.microsoft.com/library/en-us/dnbda/html
/bdadotnetarch14.asp
Criterios de elección
• Interoperabilidad Web Services
• Intranet Remoting
• Performance Remoting
• Remoting y objetos remotos en Internet
– Usar Web Services, Remoting exige un cliente .NET
• Seguridad
– Usar servicios de IIS
– IPSec TCP y SSL HTTP
Pasaje de datos: alternativas
• Valores escalares
• Cadenas XML
• DataSets
• Objetos especializados
• DataReader
Resumiendo...
Prepárense para aplicaciones distribuidas!
• apliquen el modelo desconectado• aprovechen la base existente• usen las “mejores prácticas” para el manejo de datos• elijan el mecanismo adecuado de invocación remota• pasen eficientemente los datos entre capas
Links de utilidad
• Grupo de Arquitectura Prescriptivahttp://msdn.microsoft.com/practices
• Centro de Arquitectura .NEThttp://msdn.microsoft.com/architecture
• Web Serviceshttp://msdn.microsoft.com/webservices
• Diseño de componentes de datoshttp://msdn.microsoft.com/library/en-us/dnbda/html/
BOAGag.asp
¿Preguntas?
Muchas gracias por tu participación!
José Marcenaro (MVP) josem@da-vinci.com.ar
Gastón Quirque (MVP–MCP) gastonq@m3sa.com
Por favor, completá el formulario de evaluación
Programa Desarrollador Cinco Estrellas
Si ya tenés tu estrella, pasá al salón San Telmo
Tu potencial. Nuestra pasión.®