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ón
en el acceso a datos
II. Transferencia de datos entre capas
Nivel de la conferencia: Intermedio (200)
Contexto
¿Para qué Acceso a Datos entre capas?
Diseño y desarrollo
de aplicaciones distribuidas
Aplicaciones distribuidas
¿Por qué distribuidas?
• (por dispersión geográfica)
• por escalabilidad
• por seguridad
• por flexibilidad
Aplicaciones distribuidas
I - Flexibilidad, optimización y
reutilización en el acceso a datos.
¿Cómo?
1. Entender los fundamentos
2. Aplicar las mejores prácticas
3. Partir de una base probada
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
Aplicaciones distribuidas
II - Transferencia de datos entre capas
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
Guías Prescriptivas de Arquitectura
Capa de
Presentación
Capa de Presentación
Capa de Procesos de Negocio
Componentes
de Procesos de
Negocio
Capa de Datos
Entidades de
Negocio
Componentes de
Lógica de Acceso
a Datos
Datos de la Aplicación
Mecanismos de invocación
remota
Dos tecnologías principales
Capa
XML Web Services
Capa
.NET Remoting
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
Capa
Capa
Enviar instancias de datos programáticos a
través de la red
Enviar una descripción del significado de
los mensajes
Tecnologías
Web Services
Serialización y metadatos
XMLSerializer
System.Xml.Serialization.XmlSerializer
WSDL y XSD
Tecnologías
Remoting
Serializació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
•
Test
http://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 Prescriptiva
http://msdn.microsoft.com/practices
•
Centro de Arquitectura .NET
http://msdn.microsoft.com/architecture
•
Web Services
http://msdn.microsoft.com/webservices
•
•
Diseño de componentes de datos
http://msdn.microsoft.com/library/en-us/dnbda/html/BOAGag.asp
¿Preguntas?
Muchas gracias por tu participación!
José Marcenaro (MVP)
[email protected]
Gastón Quirque (MVP–MCP)
[email protected]
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.®
Descargar

Presentación de PowerPoint