Helkyn Coello Costa Ing. Informático MCSD / MCT / MCDBA
Capítulo 3: Introducción a  ADO.NET
Módulo 1:  Evolución del Acceso a Datos <ul><li>Evolución </li></ul><ul><li>Qué es ADO.NET </li></ul><ul><li>Característic...
Evolución del Acceso a Datos Evolución 1-Tier (monolithic) Client logic Business logic Data storage 3-Tier “ Thin” Client ...
Evolución del Acceso a Datos Qué es ADO.NET <ul><li>Una gran gran mejora de ADO </li></ul><ul><li>Diseñado para data conec...
Evolución del Acceso a Datos Qué es ADO.NET <ul><li>ADO.NET soporta los sgtes tipos de data storage:  </li></ul><ul><ul><l...
Evolución del Acceso a Datos Qué es ADO.NET <ul><li>Los namespaces relacionado con data son: </li></ul><ul><ul><li>System....
Evolución del Acceso a Datos Características de ADO.NET <ul><li>Data classes </li></ul><ul><ul><li>Contenedores de datos; ...
Evolución del Acceso a Datos Características de ADO.NET <ul><li>Filosofia de diseño </li></ul><ul><ul><li>DataReader </li>...
Evolución del Acceso a Datos De ADO a ADO.NET ADO evoluciona en ADO.NET RecordSet DataReader DataAdapter DataSet Command C...
Evolución del Acceso a Datos Arquitectura de ADO.NET Business Tier Data Tier Presentation Tier Windows Forms Web Forms Bus...
Evolución del Acceso a Datos Arquitectura de ADO.NET <ul><li>ADO.NET esta fuertemente integrado con XML </li></ul><ul><li>...
Evolución del Acceso a Datos Modelo de Objetos de ADO.NET DataSet SQL Server .NET  Data Provider OLE DB .NET  Data Provide...
Evolución del Acceso a Datos Proveedores Administrados <ul><li>Manejan la interaccion con la fuente de datos </li></ul><ul...
Evolución del Acceso a Datos Data Conectada VS Data Desconectada <ul><li>Una ambiente conectado es uno en el cual los usua...
Evolución del Acceso a Datos Data Conectada VS Data Desconectada <ul><li>Acceso a Datos Conectado </li></ul><ul><ul><li>Tr...
Evolución del Acceso a Datos Data Conectada VS Data Desconectada SQL Server 7.0 (and later) <ul><li>En un escenario conect...
Evolución del Acceso a Datos Data Conectada VS Data Desconectada <ul><li>En un ambiente desconectado, un subconjunto de da...
Evolución del Acceso a Datos Data Conectada VS Data Desconectada <ul><li>En un escenario desconectado, los recursos son ma...
Módulo 2:  Objetos de ADO.NET <ul><li>El Objeto Connection </li></ul><ul><li>El Objeto  Command </li></ul><ul><li>El Objet...
Objetos de ADO.NET El Objeto Connection <ul><li>Representa una conexion con la fuente de datos </li></ul><ul><li>Sobre una...
Objetos de ADO.NET El Objeto Connection //Specify the System.Data.SQL Namespace Using System.Data.SQL; // Create an instan...
Objetos de ADO.NET El Objeto Command <ul><li>Representa un comando a ser ejecutado </li></ul><ul><li>Con un command tu pue...
Objetos de ADO.NET El Objeto Command // Create Command SQLCommand cmd = new SQLCommand(); // Set command's active connecti...
Objetos de ADO.NET El Objeto DataReader <ul><li>El DataReader provee un flujo forward-only y de solo lectura sobre los dat...
Objetos de ADO.NET El Objeto DataReader // Define DataReader IDataReader dr; // Execute Command cmd.Execute(out dr); // Wr...
Módulo 3:  Manejo de DataSets <ul><li>El Objeto DataSet </li></ul><ul><li>Ciclo de Vida de un DataSet </li></ul><ul><li>Ar...
Manejo de DataSets El Objeto DataSet <ul><li>El equivalente mas cercano  al Recordset de ADO, pero mejor </li></ul><ul><li...
Manejo de DataSets El Objeto DataSet <ul><li>Vista relacional de la data </li></ul><ul><ul><li>Tables, Columns, Rows, Cons...
Manejo de DataSets Ciclo de Vida de un DataSet Original DataStore DataSet Table1 Table2 DataSet Table1 Table2 DataSet Tabl...
Manejo de DataSets Ciclo de Vida de un DataSet DataSet Table1 Table2 DataSet Table1 Table2 DataSet Table1 Table2 Original ...
Manejo de DataSets Ciclo de Vida de un DataSet DataSet Table1 Table2 DataSet Table1 Table2 DataSet Table1 Table2 Original ...
Manejo de DataSets  Arquitectura del DataSet Employees Orders Customers Products Categories Categories Products SqlDataAda...
Manejo de DataSets  Modelo de objetos del DataSet Servidor Fuente de Datos Database DataSet DataTable DataTable Connection...
Manejo de DataSets  Modelo de objetos del DataSet <ul><li>Colecciones comunes </li></ul><ul><ul><li>Tables (coleccion de o...
Manejo de DataSets  Modelo de objetos del DataSet <ul><li>Creando un DataSet </li></ul><ul><ul><li>Arrastra y suelta un co...
Manejo de DataSets  Ejemplo de DataSet // Create a &quot;Pubs&quot; DataSet DataSet pubs = new DataSet(&quot;Pubs&quot;); ...
Manejo de DataSets El Objeto DataAdapter <ul><li>Sabe como cargar una tabla del DataStore y escribir los cambios </li></ul...
Manejo de DataSets  El Objeto DataAdapter Data source DataAdapter DataTable DataTable DataSet DataAdapter Fill Update Fill...
Manejo de DataSets  El Objeto DataAdapter DataAdapter SelectCommand InsertCommand UpdateCommand DeleteCommand TableMapping...
Manejo de DataSets  El Objeto DataAdapter sp_SELECT XxxCommand SelectCommand UpdateCommand InsertCommand DeleteCommand Xxx...
Manejo de DataSets  El Objeto DataAdapter <ul><li>Propiedades del DataAdapter </li></ul><ul><ul><li>SelectCommand </li></u...
Manejo de DataSets  El Objeto DataAdapter <ul><li>Puedes crear un DataAdapter para ejecutar una nueva sentencia SELECT </l...
Manejo de DataSets  El Objeto DataSet // Create a &quot;Pubs&quot; DataSet DataSet pubs = new DataSet(&quot;Pubs&quot;); /...
Manejo de DataSets  El Objeto DataView <ul><li>Permite establecer una ordenacion y un filtro en una vista o tabla </li></u...
Manejo de DataSets  DataSets fuertemente Definidos <ul><li>Mapea Tables a propiedades del DataSet </li></ul><ul><li>Clase ...
Manejo de DataSets  DataSets fuertemente Definidos <ul><li>DataSets, Tables, Rows son Objectos </li></ul><ul><li>Columns, ...
Manejo de DataSets  DataSets fuertemente Definidos Sintaxis como esta (similar a codigo ADO): Puede ser cambiada a sintaxi...
Manejo de DataSets  Databindings <ul><li>Fuentes para DataBinding </li></ul><ul><ul><li>DataReader </li></ul></ul><ul><ul>...
Resumen  <ul><li>ADO.NET es una evolucion natural de ADO </li></ul><ul><ul><li>Modelo Connection/Command comun </li></ul><...
Próxima SlideShare
Cargando en…5
×

visual basic .net

3.813 visualizaciones

Publicado el

Publicado en: Tecnología
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
3.813
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
387
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • What Is Microsoft ® .NET? Agenda: Day 1  Module 01: What is Microsoft ® .NET? Module 02: The .NET Framework Module 03: Visual Studio ® .NET Module 04: The .NET Languages Module 05 : Building ASP ® .NET Applications Module 06: Using Data Access in .NET Applications Module 07: Building Reusable Middle-Tier Components
  • visual basic .net

    1. 1. Helkyn Coello Costa Ing. Informático MCSD / MCT / MCDBA
    2. 2. Capítulo 3: Introducción a ADO.NET
    3. 3. Módulo 1: Evolución del Acceso a Datos <ul><li>Evolución </li></ul><ul><li>Qué es ADO.NET </li></ul><ul><li>Características de ADO.NET </li></ul><ul><li>De ADO a ADO.NET </li></ul><ul><li>Arquitectura de ADO.NET </li></ul><ul><li>Modelo de objetos de ADO.NET </li></ul><ul><li>Proveedores </li></ul><ul><li>Data desconectada VS data conectada </li></ul>
    4. 4. Evolución del Acceso a Datos Evolución 1-Tier (monolithic) Client logic Business logic Data storage 3-Tier “ Thin” Client N-Tier 2-Tier “ Fat” Client Internet XML Web service
    5. 5. Evolución del Acceso a Datos Qué es ADO.NET <ul><li>Una gran gran mejora de ADO </li></ul><ul><li>Diseñado para data conectada y desconectada </li></ul><ul><ul><li>Ventajas para integrar distintos tipos de data </li></ul></ul><ul><ul><li>XML de salida y entrada </li></ul></ul><ul><li>Diseño de alto rendimiento </li></ul><ul><ul><li>Objetos y proveedores optimizados </li></ul></ul><ul><li>Visual Studio.NET diseñado para trabajar con ADO .NET </li></ul><ul><ul><li>Integración con objetos y múltiples asistentes </li></ul></ul><ul><li>Fuertemente integrado con el .NET Framework </li></ul><ul><ul><li>Manejo de Excepciones, nombres, notificaciones, etc. </li></ul></ul>
    6. 6. Evolución del Acceso a Datos Qué es ADO.NET <ul><li>ADO.NET soporta los sgtes tipos de data storage: </li></ul><ul><ul><li>No estructurado </li></ul></ul><ul><ul><li>Estructurado, data no-jerarquica </li></ul></ul><ul><ul><ul><li>Archivos (CSV), hojas de calculo, archivos de Microsoft Exchange, Active Directory y otros </li></ul></ul></ul><ul><ul><li>Jerarquica </li></ul></ul><ul><ul><ul><li>Documentos XML y otros </li></ul></ul></ul><ul><ul><li>Base de datos Relacional </li></ul></ul><ul><ul><ul><li>SQL Server, Oracle, Access, y otros </li></ul></ul></ul>
    7. 7. Evolución del Acceso a Datos Qué es ADO.NET <ul><li>Los namespaces relacionado con data son: </li></ul><ul><ul><li>System.Data </li></ul></ul><ul><ul><li>System.Data.Common </li></ul></ul><ul><ul><li>System.Data.SqlClient </li></ul></ul><ul><ul><li>System.Data.OleDb </li></ul></ul><ul><ul><li>System.Data.SqlTypes </li></ul></ul><ul><ul><li>System.Xml </li></ul></ul>
    8. 8. Evolución del Acceso a Datos Características de ADO.NET <ul><li>Data classes </li></ul><ul><ul><li>Contenedores de datos; no saben nada de extraer informacion de la base de datos </li></ul></ul><ul><ul><li>Objecto clave: DataSet = Cache desconectado y en memoria </li></ul></ul><ul><li>Database classes </li></ul><ul><ul><li>Usaod para leer y escribir data de fuente de datos </li></ul></ul><ul><ul><li>Proveedores manejados: SQL Server ™ y OLEDB </li></ul></ul><ul><ul><li>Objetos clave: </li></ul></ul><ul><ul><ul><li>Connection = Se conecta a la fuente de datos </li></ul></ul></ul><ul><ul><ul><li>Command = Ejecuta stored procedures </li></ul></ul></ul><ul><ul><ul><li>DataAdapter = Conecta DataSet a la base de datos </li></ul></ul></ul><ul><ul><ul><li>DataReader=Cursor Forwardonly,readonly (fire hose) </li></ul></ul></ul>
    9. 9. Evolución del Acceso a Datos Características de ADO.NET <ul><li>Filosofia de diseño </li></ul><ul><ul><li>DataReader </li></ul></ul><ul><ul><ul><li>RecordSets Forward-only y read-only </li></ul></ul></ul><ul><ul><li>DataSet </li></ul></ul><ul><ul><ul><li>Cache Desconectado y en memoria </li></ul></ul></ul><ul><ul><li>DataAdapter </li></ul></ul><ul><ul><ul><li>Conecta un DataSet con una fuente de datos </li></ul></ul></ul>
    10. 10. Evolución del Acceso a Datos De ADO a ADO.NET ADO evoluciona en ADO.NET RecordSet DataReader DataAdapter DataSet Command Command Connection Connection
    11. 11. Evolución del Acceso a Datos Arquitectura de ADO.NET Business Tier Data Tier Presentation Tier Windows Forms Web Forms Business to Business Data Object (Class) DataSet DataSet DataSet Internet Intranet Data Adapter Data Adapter (BizTalk, for example) XML MyApp.Exe IE
    12. 12. Evolución del Acceso a Datos Arquitectura de ADO.NET <ul><li>ADO.NET esta fuertemente integrado con XML </li></ul><ul><li>Usando XML en una aplicacion ADO.NET desconectada </li></ul>DataSet DataSet XML Web Services Request data 1 SQL Query 2 Resultado 3 XML 4 Updated XML 5 SQL updates 6 Fuente de Datos Cliente
    13. 13. Evolución del Acceso a Datos Modelo de Objetos de ADO.NET DataSet SQL Server .NET Data Provider OLE DB .NET Data Provider SQL Server 7.0 (and later) OLEDB sources (SQL Server 6.5)
    14. 14. Evolución del Acceso a Datos Proveedores Administrados <ul><li>Manejan la interaccion con la fuente de datos </li></ul><ul><ul><li>Equivalente a la capa OLEDB </li></ul></ul><ul><ul><li>Expone directamente interfaces consuidoras </li></ul></ul><ul><ul><li>Especifico y optimizado para fuentes de datos </li></ul></ul><ul><ul><li>Dos proveedores estandares: </li></ul></ul><ul><ul><ul><li>System.Data.OLEDB – Cualquier DataSource </li></ul></ul></ul><ul><ul><ul><li>System.Data.SQLClient – Para SQL Server </li></ul></ul></ul>
    15. 15. Evolución del Acceso a Datos Data Conectada VS Data Desconectada <ul><li>Una ambiente conectado es uno en el cual los usuarios constantemente se conectan a la base de datos </li></ul><ul><li>Ventajas: </li></ul><ul><ul><li>El ambiente es mas facil de asegurar </li></ul></ul><ul><ul><li>La concurrencia is mas facilmente controlada </li></ul></ul><ul><ul><li>La data suele ser mas actual que en otros escenarios </li></ul></ul><ul><li>Desventajas: </li></ul><ul><ul><li>Se debe tener una conexion de red permanente </li></ul></ul><ul><ul><li>Escalabilidad </li></ul></ul>
    16. 16. Evolución del Acceso a Datos Data Conectada VS Data Desconectada <ul><li>Acceso a Datos Conectado </li></ul><ul><ul><li>Transacciones son requiridas </li></ul></ul><ul><ul><li>No hay interaccion del usuario con la data </li></ul></ul><ul><ul><li>Procesamiento de grandes cantidades de data </li></ul></ul><ul><li>Acceso a Datos desconectado </li></ul><ul><ul><li>Usa DataSet cuando: </li></ul></ul><ul><ul><ul><li>La interaccion del usuario es requerida </li></ul></ul></ul><ul><ul><ul><li>Si data en memoria es requerida </li></ul></ul></ul><ul><ul><ul><li>Aplicaciones distribuidas </li></ul></ul></ul>Cuando usar cual :
    17. 17. Evolución del Acceso a Datos Data Conectada VS Data Desconectada SQL Server 7.0 (and later) <ul><li>En un escenario conectado, los recursos son puestos en el servidor hasta que la conexión se cierre </li></ul><ul><li>Abrir conexion </li></ul><ul><li>Ejeuctar comando </li></ul><ul><li>Procesar las filas en un reader </li></ul><ul><li>Cerrar el reader </li></ul><ul><li>Cerrar la conexion </li></ul>SqlConnection SqlCommand SqlDataReader
    18. 18. Evolución del Acceso a Datos Data Conectada VS Data Desconectada <ul><li>En un ambiente desconectado, un subconjunto de dat del data store puede ser copiado y actualizado independientemente y los cambios devueltos al data store </li></ul><ul><li>Ventajas </li></ul><ul><ul><li>Se trabaja en cualquier momento, y se puede conectar con la fuente de datos en cualquier momento para procesar la petición </li></ul></ul><ul><ul><li>Otros usuarios pueden usar la conexion </li></ul></ul><ul><ul><li>Incrementa la escalabilidad y rendimiento </li></ul></ul><ul><li>Desventajas </li></ul><ul><ul><li>La data no esta siempre actualizada </li></ul></ul><ul><ul><li>Conflictos de actualizaciòn pueden ocurrir que deben ser resueltos </li></ul></ul>
    19. 19. Evolución del Acceso a Datos Data Conectada VS Data Desconectada <ul><li>En un escenario desconectado, los recursos son mantenidos en el servidor mientras se procesa la data </li></ul><ul><li>Abrir la conexion </li></ul><ul><li>Llenar el DataSet </li></ul><ul><li>Cerrar la conexion </li></ul><ul><li>Procesar el DataSet </li></ul><ul><li>Abrir la conexion </li></ul><ul><li>Actualizar el data source </li></ul><ul><li>Cerrar la conexion </li></ul>SqlConnection SqlDataAdapter DataSet SQL Server 7.0 (and later)
    20. 20. Módulo 2: Objetos de ADO.NET <ul><li>El Objeto Connection </li></ul><ul><li>El Objeto Command </li></ul><ul><li>El Objeto DataReader </li></ul>
    21. 21. Objetos de ADO.NET El Objeto Connection <ul><li>Representa una conexion con la fuente de datos </li></ul><ul><li>Sobre una Conexion tu puedes… </li></ul><ul><ul><li>Personalizar la conexión hacia una base de datos </li></ul></ul><ul><ul><li>Iniciar, confirmar, y abortar transacciones </li></ul></ul><ul><li>Equivalente al objeto ADODB.Connection </li></ul>
    22. 22. Objetos de ADO.NET El Objeto Connection //Specify the System.Data.SQL Namespace Using System.Data.SQL; // Create an instance of an SQLConnection object SQLConnection cnn = new SQLConnection(); // Set the connection string cnn.ConnectionString = &quot;server=localhost;uid=sa;database=pubs&quot;; //Open the Connection cnn.Open();
    23. 23. Objetos de ADO.NET El Objeto Command <ul><li>Representa un comando a ser ejecutado </li></ul><ul><li>Con un command tu puedes: </li></ul><ul><ul><li>Definir una sentencia a ser ejecutada en el servidor </li></ul></ul><ul><ul><li>Establecer información de parametros del command </li></ul></ul><ul><ul><li>Devolver valores de la ejecución del command </li></ul></ul><ul><li>Corresponde al objeto ADODB.Command </li></ul><ul><li>Metodos: </li></ul><ul><ul><li>ExecuteReader - Ejecuta y retorna un DataReader </li></ul></ul><ul><ul><li>ExecuteNonQuery - Ejecuta y retorna nothing </li></ul></ul><ul><ul><li>ExecuteScalar - Ejecuta y retorna el 1er valor </li></ul></ul><ul><li>Puede contener parametros </li></ul>
    24. 24. Objetos de ADO.NET El Objeto Command // Create Command SQLCommand cmd = new SQLCommand(); // Set command's active connection and command text cmd.ActiveConnection = cnn; cmd.CommandText = &quot;Select au_lname from authors where state = @param1&quot;; // Create parameter and set value cmd.Parameters.Add( new SQLParameter(&quot;@param1&quot;, typeof(String),2) ); cmd.Parameters[&quot;@param1&quot;].Value = &quot;CA&quot;;
    25. 25. Objetos de ADO.NET El Objeto DataReader <ul><li>El DataReader provee un flujo forward-only y de solo lectura sobre los datos </li></ul><ul><ul><li>Representa los resultados de un comando ejecutado </li></ul></ul><ul><li>El DataReader habilita… </li></ul><ul><ul><li>Obtener un flujo de resultados de la fuente de datos </li></ul></ul><ul><li>Equivalente al RecordSet FO/RO </li></ul><ul><ul><li>No soporta scrolling y actualizaciones </li></ul></ul><ul><ul><li>Los campos son accesados con tipificacion fuerte (strongly typed) en vez de usar FieldsCollection </li></ul></ul><ul><ul><ul><li>Rendimiento: myRow.GetInt(0) </li></ul></ul></ul><ul><ul><ul><li>Acceso simple a nombres para compabilidad/facil uso: myRow[&quot;fieldname&quot;] </li></ul></ul></ul>
    26. 26. Objetos de ADO.NET El Objeto DataReader // Define DataReader IDataReader dr; // Execute Command cmd.Execute(out dr); // Write out the results while(dr.Read()) { Console.WriteLine(&quot;Name = &quot; + dr[&quot;au_lname&quot;]); } // Close the connection cnn.Close();
    27. 27. Módulo 3: Manejo de DataSets <ul><li>El Objeto DataSet </li></ul><ul><li>Ciclo de Vida de un DataSet </li></ul><ul><li>Arquitectura de un DataSet </li></ul><ul><li>Modelo de objetos del DataSet </li></ul><ul><li>Ejemplo de DataSet </li></ul><ul><li>El Objeto DataApdater </li></ul><ul><li>El Objeto DataView </li></ul><ul><li>DataSets fuertemente Definidos </li></ul><ul><li>Databinding </li></ul>
    28. 28. Manejo de DataSets El Objeto DataSet <ul><li>El equivalente mas cercano al Recordset de ADO, pero mejor </li></ul><ul><li>Vistas relacionales de datos </li></ul><ul><ul><li>Contiene tables, columns, rows, constraints,views y relations </li></ul></ul><ul><li>Modelo desconectado </li></ul><ul><ul><li>No sabe nada del data source </li></ul></ul><ul><ul><li>Indizacion tipo Array (Array-like) </li></ul></ul><ul><ul><li>Tipificacion fuerte (Strong typing) </li></ul></ul><ul><ul><li>Soporte de Databinding y actualizaciones batch </li></ul></ul><ul><ul><li>Se conecta a la fuente de datos via DataAdapter </li></ul></ul>DataSet Tables Table Columns Column Constraints Constraint Rows Row Relations Relation
    29. 29. Manejo de DataSets El Objeto DataSet <ul><li>Vista relacional de la data </li></ul><ul><ul><li>Tables, Columns, Rows, Constraints,Relations </li></ul></ul><ul><li>Crea metadata directamente e inserta data </li></ul><ul><li>Modelo de Cache Explicita </li></ul><ul><ul><li>Objecto remoto, desconectado </li></ul></ul><ul><ul><li>No sabe nada del data source </li></ul></ul><ul><ul><ul><li>Comportamiento comun </li></ul></ul></ul><ul><ul><ul><li>Caracteristicas de rendimiento predecibles </li></ul></ul></ul><ul><ul><li>Indizacion tipo Array (Array-like ) </li></ul></ul><ul><ul><li>Tipificacion fuerte (Strong Typing) </li></ul></ul>
    30. 30. Manejo de DataSets Ciclo de Vida de un DataSet Original DataStore DataSet Table1 Table2 DataSet Table1 Table2 DataSet Table1 Table2 Establece las relaciones Hace los cambios a la data Resuelve los cambios con el proveedor manejado Extrae tablas Con Proveedor Manejado
    31. 31. Manejo de DataSets Ciclo de Vida de un DataSet DataSet Table1 Table2 DataSet Table1 Table2 DataSet Table1 Table2 Original DataStore Establece las relaciones Hace los cambios a la data Resuelve los cambios con el proveedor manejado Extrae tablas Con proveedore manejado Operaciones Conectadas
    32. 32. Manejo de DataSets Ciclo de Vida de un DataSet DataSet Table1 Table2 DataSet Table1 Table2 DataSet Table1 Table2 Original DataStore Establece las relaciones Hace los cambios a la data Resuelve los cambios con el proveedor manejado Extrae tablas Con proveedor manejado Operaciones Desconectadas
    33. 33. Manejo de DataSets Arquitectura del DataSet Employees Orders Customers Products Categories Categories Products SqlDataAdapter OleDbDataAdapter SQL Server 2000 Customers Orders SQL Server 6.5 DataSet XML Web service XmlDataDocument XML File
    34. 34. Manejo de DataSets Modelo de objetos del DataSet Servidor Fuente de Datos Database DataSet DataTable DataTable Connection Stored Procedure
    35. 35. Manejo de DataSets Modelo de objetos del DataSet <ul><li>Colecciones comunes </li></ul><ul><ul><li>Tables (coleccion de objetos DataTable) </li></ul></ul><ul><ul><li>Relations (coleccion de objetos DataRelation) </li></ul></ul><ul><li>Soporte de Data binding a controles web y windows </li></ul><ul><li>El esquema (Schema) puede ser definido programaticamente o usando XSD </li></ul>DataRow DataColumn DataTable DataRelation Constraints
    36. 36. Manejo de DataSets Modelo de objetos del DataSet <ul><li>Creando un DataSet </li></ul><ul><ul><li>Arrastra y suelta un control dataSet desde el ToolBox </li></ul></ul><ul><li>Creando un DataTable </li></ul><ul><ul><li>Edita la coleccionTables del DataSet usando la Ventana de Propiedades </li></ul></ul><ul><li>Creando un DataColumn y agregandolo al DataTable </li></ul><ul><ul><li>Edita la coleccion Columns del DataTable usando la Ventana de Propiedades </li></ul></ul>
    37. 37. Manejo de DataSets Ejemplo de DataSet // Create a &quot;Pubs&quot; DataSet DataSet pubs = new DataSet(&quot;Pubs&quot;); //Create an &quot;Inventory&quot; Table DataTable inventory = new DataTable(&quot;Inventory&quot;); inventory.Columns.Add(&quot;TitleID&quot;,typeof(Int32)); inventory.Columns.Add(&quot;Quantity&quot;,typeof(Int32)); // Add Inventory table to Pubs DataSet pubs.Tables.Add(inventory); // Add a record to the Inventory table DataRow row = inventory.NewRow(); row[&quot;TitleID&quot;]=1; row[&quot;Quantity&quot;]=25; inventory.Rows.Add(row);
    38. 38. Manejo de DataSets El Objeto DataAdapter <ul><li>Sabe como cargar una tabla del DataStore y escribir los cambios </li></ul><ul><ul><li>Expone 2 métodos: </li></ul></ul><ul><ul><ul><li>Fill (DataSet y Table) </li></ul></ul></ul><ul><ul><ul><li>Update (DataSet y Table) </li></ul></ul></ul><ul><ul><li>Provee mapeo entre tablas y columnas </li></ul></ul><ul><ul><li>Los usuarios puede establecer comandos insert/update/delete explicitos </li></ul></ul><ul><ul><ul><li>Como: especificar SPs </li></ul></ul></ul><ul><ul><li>Permite que un DataSet sea poblado de multiples fuentes de datos </li></ul></ul>SelectCommand InsertCommand DeleteCommand Connection DataAdapter Connection UpdateCommand SelectCommand InsertCommand DeleteCommand TableMappings
    39. 39. Manejo de DataSets El Objeto DataAdapter Data source DataAdapter DataTable DataTable DataSet DataAdapter Fill Update Fill Update
    40. 40. Manejo de DataSets El Objeto DataAdapter DataAdapter SelectCommand InsertCommand UpdateCommand DeleteCommand TableMappings Database DataSet
    41. 41. Manejo de DataSets El Objeto DataAdapter sp_SELECT XxxCommand SelectCommand UpdateCommand InsertCommand DeleteCommand XxxDataAdapter XxxCommand XxxCommand XxxCommand XxxConnection sp_UPDATE sp_INSERT sp_DELETE XxxDataReader
    42. 42. Manejo de DataSets El Objeto DataAdapter <ul><li>Propiedades del DataAdapter </li></ul><ul><ul><li>SelectCommand </li></ul></ul><ul><ul><li>InsertCommand </li></ul></ul><ul><ul><li>UpdateCommand </li></ul></ul><ul><ul><li>DeleteCommand </li></ul></ul><ul><li>Metodos usados por los DataAdapters </li></ul><ul><ul><li>Fill </li></ul></ul><ul><ul><li>Update </li></ul></ul>
    43. 43. Manejo de DataSets El Objeto DataAdapter <ul><li>Puedes crear un DataAdapter para ejecutar una nueva sentencia SELECT </li></ul><ul><ul><li>Acceso a datos de solo lectura para aplicaciones desconectadas </li></ul></ul><ul><li>Dos formas de crear DataAdapter </li></ul><ul><ul><li>Usa el Data Adapter Configuration Wizard </li></ul></ul><ul><ul><li>Escribe código tu mismo </li></ul></ul><ul><li>Debes especificar </li></ul><ul><ul><li>Una conexion nueva o existente </li></ul></ul><ul><ul><li>La sentencia SELECT para la consulta </li></ul></ul>
    44. 44. Manejo de DataSets El Objeto DataSet // Create a &quot;Pubs&quot; DataSet DataSet pubs = new DataSet(&quot;Pubs&quot;); //Create an &quot;Inventory&quot; Table DataTable inventory = new DataTable(&quot;Inventory&quot;); inventory.Columns.Add(&quot;TitleID&quot;,typeof(Int32)); inventory.Columns.Add(&quot;Quantity&quot;,typeof(Int32)); // Add Inventory table to Pubs DataSet pubs.Tables.Add(inventory); // Add a record to the Inventory table DataRow row = inventory.NewRow(); row[&quot;TitleID&quot;]=1; row[&quot;Quantity&quot;]=25; inventory.Rows.Add(row);
    45. 45. Manejo de DataSets El Objeto DataView <ul><li>Permite establecer una ordenacion y un filtro en una vista o tabla </li></ul><ul><li>Es una vista viva de un DataTable </li></ul><ul><ul><li>Cualquier numero de DataViews pueden ser creados sobre un Table </li></ul></ul><ul><ul><ul><li>Habilita diferentes vistas de las misma tabla </li></ul></ul></ul><ul><li>Puede ser usado para Databinding </li></ul>
    46. 46. Manejo de DataSets DataSets fuertemente Definidos <ul><li>Mapea Tables a propiedades del DataSet </li></ul><ul><li>Clase automaticamente generada por el Designer </li></ul><ul><li>Hereda del DataSet </li></ul><ul><li>Esquema (Schema) codificado dentro de la clase </li></ul><ul><li>Codigo conciso y leible </li></ul><ul><li>Chequeo de tipos en tiempo de compilacion </li></ul>
    47. 47. Manejo de DataSets DataSets fuertemente Definidos <ul><li>DataSets, Tables, Rows son Objectos </li></ul><ul><li>Columns, Relations son propiedades </li></ul>//print out each author and their titles foreach (Author myAuthor in Pubs.Authors.Rows) { Console.WriteLine(&quot;Name = &quot; + myAuthor.au_lname); foreach (Title myTitle in myAuthor.Titles) { Console.WriteLine(&quot;Title = &quot; + myAuthor.Title); } }
    48. 48. Manejo de DataSets DataSets fuertemente Definidos Sintaxis como esta (similar a codigo ADO): Puede ser cambiada a sintaxix como esta: Ventajas – Más facil de leer, los errores de tipeo se capturan en tiempo de compilacion envez que en tiempo de ejecucion Dim rowCustomer As System.Data.DataRow   For Each rowCustomer In MyDataSet.Tables(&quot;Customers&quot;).Rows Console.WriteLine(rowCustomer.Fields(&quot;CompanyName&quot;)) Next Dim rowCustomer As System.Data.DataRow   For Each rowCustomer In MyDataSet.Customers.Rows Console.WriteLine(rowCustomer.CompanyName) Next
    49. 49. Manejo de DataSets Databindings <ul><li>Fuentes para DataBinding </li></ul><ul><ul><li>DataReader </li></ul></ul><ul><ul><li>DataTable </li></ul></ul><ul><ul><li>DataView </li></ul></ul><ul><ul><li>DataSet </li></ul></ul><ul><ul><li>DatSetView </li></ul></ul><ul><ul><li>Array </li></ul></ul><ul><ul><li>Collection </li></ul></ul><ul><ul><li>IList </li></ul></ul>
    50. 50. Resumen <ul><li>ADO.NET es una evolucion natural de ADO </li></ul><ul><ul><li>Modelo Connection/Command comun </li></ul></ul><ul><li>ADO.NET esta diseñado para trabajar con XML </li></ul><ul><li>ADO.NET esta ampliamente integrado con el .NET Framework </li></ul><ul><ul><li>Manejo de excepciones, nombres, notificaciones, etc. </li></ul></ul><ul><ul><li>Integrado con otros componentes del.NET Framework </li></ul></ul>

    ×