580 likes | 933 Views
ADO .NET Diego Casali SE Región Córdoba y NOA Microsoft de Argentina. Lo que vamos a cubrir. Entender la diferencia entre ADO y ADO.NET Cómo integrar ADO.NET con .NET utilizando Visual Studio.NET Cómo utilizar las capacidades avanzadas de ADO.NET Cómo aprovechar el soporte XML con ADO.NET.
E N D
ADO .NET Diego Casali SE Región Córdoba y NOA Microsoft de Argentina
Lo que vamos a cubrir • Entender la diferencia entre ADO y ADO.NET • Cómo integrar ADO.NET con .NET utilizando Visual Studio.NET • Cómo utilizar las capacidades avanzadas de ADO.NET • Cómo aprovechar el soporte XML con ADO.NET
Prerrequisitos de la sesión • Diseño y programación de la base de datos relacional • Programación de Visual Basic 6.0 • ADO de Microsoft • Entendimiento de XML
Agenda • Introducción a ADO.NET • Programación con ADO.NET • Soporte XML • Funciones avanzadas • ¿Cuándo utilizar qué?
Introducción a ADO.NET¿Qué es ADO.NET? • Evolución natural de ADO • Interoperabilidad • Basado en estándares como XML, XSD • Escalabilidad • Objetivos distribuidos, escenarios web desconectados • Modelo • Arquitectura distribuida que reemplaza al cliente / servidor • Integración de datos dediferentes recursos heterogéneos
Introducción a ADO.NET¿Por qué ADO.NET? • Para acomodar un modelo de aplicación Web • Unido de manera flexible • Mantiene el estado entre solicitudes • Utiliza HTTP
Introducción a ADO.NETObjetos de datos .NET Controls,Designers,Code-gen, etc XSL/T, X-Path,Validation, etc XmlData-Document DataSet Sync XmlReader XmlText- Reader XmlNode- Reader DataAdapter DataReader Command Connection .NET Data Provider
Agenda • Introducción a ADO.NET • Programación con ADO.NET • Soporte XML • Funciones avanzadas • ¿Cuándo utilizar qué?
Programación con ADO.NET.NET Data Provider • Administra la interacción a una fuente de datos • Administrado equivalente a capa OLE DB • Expone directamente las interfaces del consumidor • Específico para (optimizada para) DataSource • Modelo de objeto de .NET Data Provider • Conexión • Comando • DataReader • DataAdapter
Programación con ADO.NET.NET Data Provider • SQL Server .NET Data Provider • OLE DB .NET Data Provider • Microsoft OLE DB Provider for SQL Server • Microsoft OLE DB Provider for Oracle • Microsoft OLE DB Provider for Microsoft Jet • ODBC .NET Data Provider
Programación con ADO.NETConexión • Representa una conexión a la Fuente de datos • En una conexión, usted puede… • Personalizar la conexión a la base de datos • Iniciar, comprometer y abortar transacciones • Equivalente al objeto ADODB.Connection
Programación con ADO.NETConexión // Ejemplo en C# //Especificar el NamespaceSystem.Data.SQL Using System.Data.SqlClient; // Crear una instancia del objeto SQLConnection SQLConnection cnn = new SQLConnection(); // Definir la cadena de conexión cnn.ConnectionString = "server=localhost;uid=sa;database=pubs"; //Abrir la conexión cnn.Open();
Programación con ADO.NETComando • Representa un comando que se va a ejecutar • No necesariamente SQL • Con un comando ADO usted puede: • Definir un enunciado para que se ejecute en el servidor • Establecer información de parámetros para ese comando • Recuperar valores de retorno de la ejecución del comando • Corresponde al objeto ADODB.Command • Puede contener parámetros • Valores que se van a utilizar cuando se ejecute el enunciado
Programación con ADO.NETComando • ExecuteNonQuery • ExecuteReader • ExecuteScalar • ExecuteXmlReader (únicamente para el objeto SqlCommand)
Programación con ADO.NETDataReader • Acceso a datos rápido, únicamente hacia delante, únicamente de lectura • Funciona como un socket • Permite un acceso escrito de manera sólida • Debe ser cerrado
Programación con ADO.NETDataSet • Almacén en memoria para datos del cliente • Vista relacional de datos • Tablas, columnas, filas, restriciones, relaciones • Persisten los datos y el esquema como XML • Modelo desconectado explícito • Objeto remoto, desconectado • Índice en forma de arreglo • No hay conocimiento de Fuente de datos o Propiedades • Modelo común sobre datos heterogéneos • Características de rendimiento predecibles
Programación con ADO.NETDataSet DataRow DataColumn DataTable DataTable DataSet Relationes Restricciones Esquema XML
Programación con ADO.NETDataRelation • ¿Qué es DataRelation? • Se utiliza para relacionar dos objetos DataTable • Las relaciones se crean entre columnas equivalentes en las tablas padre e hijo • Las relaciones también pueden presentar en cascada varios cambios de la fila padre hacia las filas hijo
Programación con ADO.NETTyped DataSet • Clase generada al momento del diseño • Hereda de DataSet • Esquema codificado en la clase • Beneficios • IntelliSense • Verificación de tipos en tiempo de compilación • Código legible, conciso
Programación con ADO.NETDataAdapter • Administra el Intercambio de datos entre DataSet y la Fuente de datos • Llenar (DataSet o DataTable) • Actualizar (DataSet o DataTable) • Ofrece Cruces de información entre tablas y columnas • El usuario puede anular los comandos Insertar / actualizar / eliminar • Componente de autogeneración disponible • Permite que un único DataSet se llene de varios Orígenes de datos diferentes
Programación con ADO.NETDataAdapter SelectCommand InsertCommand UpdateCommand DeleteCommand Base de datos DataAdapter DataSet TableMappings
Programación con ADO.NETDataAdapter // Ejemplo en C# // Crear un DataAdapter SQLDataAdapter objDataAdapter = new SQLDataAdapter( "Select * from authors",cnn); // Cargar los datos en el DataSet objDataAdapter.Fill(pubs, "Authors"); // hacer cambios de datos de clientes en el dataset pubs.Tables["Authors"].Rows[0]["au_lname"]="smith"; objDataAdapter.Update(pubs, "Authors");
Programación con ADO.NETRecursos para DataBinding • DataReader • DataTable • DataView • DataSet • Arreglo • Colección • IList
Programación con ADO.NETDataBinding • DataView • Concibe a ésta como una vista en DataTable • Permite establecer una solicitud de clasificación y Filtro en una vista de la tabla • Puede crear cualquier número de DataViews en una tabla para permitir diferentes vistas de la misma tabla
Agenda • Introducción a ADO.NET • Programación con ADO.NET • Soporte XML • Funciones avanzadas • ¿Cuándo utilizar qué?
Soporte XMLADO.NET y XML • DataSet • Carga / guarda datos XML dentro / fuera de DataSet • El esquema se puede cargar / guardar como XSD • El esquema se puede inferir de datos XML • XmlDataDocument • Expone una vista relacional sobre XML estructurado • Permite una escritura, unión de control, acceso relacional sólidos de datos XML • Permite herramientas XML (validación de esquemas, XSL/T, consultas Xpath) contra datos relacionales • Preserva una fidelidad total de documentos XML
Soporte XMLADO.NET y XML // Ejemplo en C# // Asociar un XmlDataDocument con el DataSet XmlDataDocument xmlDocument = new XmlDataDocument(pubs); // Obtener un XmlNavigator para el XmlDataDocument DataDocumentNavigator xmlNavigator = new DataDocumentNavigator(xmlDocument); // Obtener todos los autores de CA xmlNavigator.Select("//Authors[state='CA']/au_lname"); // Mostrar todos los apellidos de autores while(xmlNavigator.MoveToNextSelected()) { Console.WriteLine("Name = " + xmlNavigator.InnerText); }
Soporte XMLADO.NET y XML • DataSet ofrece manejo directo de documentos y esquemas XML • ReadXml() • ReadXmlSchema() • WriteXml() • WriteXmlSchema()
Soporte XMLSQLXML • SQLXML Managed Classes 3.0 • SqlXmlCommand • SqlXmlParameter • SqlXmlAdapter
Agenda • Introducción a ADO.NET • Programación con ADO.NET • Soporte XML • Funciones avanzadas • ¿Cuándo utilizar qué?
Funciones avanzadasConnectionPooling • El proveedor OLE DB utiliza agrupación de sesiones tradicional OLEDB • El proveedor de clientes SQL utiliza agrupación de sesiones basada en COM+
Funciones avanzadasConnectionPooling // Ejemplo en C# SqlConnection conn = new SqlConnection(); conn.ConnectionString = “Integrated Security=SSPI; Initial Catalog=Northwind” conn.Open(); // Se crea el Pool A; SqlConnection conn = new SqlConnection(); conn.ConnectionString = “Integrated Security=SSPI; Initial Catalog=pubs” conn.Open(); // Se crea el Pool B ya que la cadena de conexión es diferente SqlConnection conn = new SqlConnection(); conn.ConnectionString = “Integrated Security=SSPI; Initial Catalog=Northwind” conn.Open(); // Se usa el Pool A
Funciones avanzadasTransacciones distribuidas • Para utilizar las transacciones distribuidas: • Utilice System.EnterpriseServices • Cree un ServicedComponent para ofrecer soporte para transacciones automático • Agregue funciones al ServicedComponents • Ejecute transacciones en el ServicedComponents
Funciones avanzadasManejo de errores • ADO.NET permite a los desarrolladores agregar mensajes de error a cada fila de datos en un DataSet • Usted puede filtrar para filas en error • El error persiste con DataSet aún cuando haya sido transferido utilizando XML O Servicios Web
Agenda • Introducción a ADO.NET • Programación con ADO.NET • Soporte XML • Funciones avanzadas • ¿Cuándo utilizar qué?
¿Cuándo utilizar qué?Consideraciones • Acceso a datos conectados • Acceso a datos desconectados • Vista XML de datos relacionales
¿Cuándo utilizar qué?Acceso a datos conectados • Proveedores administrados • Conexión, operación • Conectar a DataSource • Iniciar / terminar transacciones • Comando, parámetros • Actualizaciones de Base de datos, selecciones, DDL • DataReader • Cursor de servidor (FO/RO) • DataAdapter • Empujar los datos dentro de un Dataset • Leer los cambios fuera de DataSet
¿Cuándo utilizar qué?Acceso a datos desconectados • DataSet • Datos de aplicación • Resultados remotos • SOAP, WebMethods, Remoting • Resultados de memoria caché • Caché ASP.NET • Resultados persistentes • Guardar datos como XML, esquema como XSD • Interacción del usuario • Desplazar, clasificar, filtrar • DataView, DataViewManager • Unir controles Windows
¿Cuándo utilizar qué?Acceso de datos XML • XML • XmlDocument • XmlDataDocument • Implementa el núcleo de nivel 1 y 2 del W3C DOM • XPathNavigator • Ofrece acceso aleatorio de sólo lectura • XslTransform • Soporta sintaxis XSLT 1.0
Resumen de la sesión • Una evolución natural de ADO • Diseñado para trabajar con XML • Integrado estrechamente con el marco .NET • Ofrece mecanismos rápidos y eficientes para acceso a datos conectados y desconectados
Para mayor información… • MSDN Web site at • msdn.microsoft.com • .NET Framework at • www.microsoft.com/net • Visual Studio .NET at • www.microsoft.com/vstudio • ADO • www.microsoft.com/data
MS PressRecursos esenciales para desarrolladores Ahora puede crear sus propios libros personalizados MS Press books en mspress.microsoft.com/custombook Escoja entre Windows 2000, SQL Server 200, Exchange 2000, Office 2000 y XML Créelo y después pídalo en versión MS Reader, PDF o impresa
MSDNRecursos esenciales para desarrolladores Servicios de suscripción Biblioteca, Profesional, Universal Proporcionado vía CD-ROM, DVD, Web Información en línea MSDN Online, MSDN Flash Capacitación & Eventos MSDN Training, Tech-Ed, PDC, Developer Days, MSDN/Eventos en el sitio Publicaciones impresas MSDN Magazine MSDN News Programas de membresía Grupos de usuarios MSDN
¿Dónde puedo obtener MSDN? • Visite MSDN en línea en msdn.microsoft.com • Regístrese para el Boletín de noticias por correo electrónico MSDN Flash en msdn.microsoft.com/resources/msdnflash.asp • Conviértase en un suscriptor del CD de MSDN en msdn.microsoft.com/subscriptions • Asista a más eventos de MSDN