jueves, 5 de octubre de 2017

ADO.NET




UNIVERSIDAD POLITÉCNICA AMAZÓNICA

Ingeniería de Sistemas


ADO.NET



       DOCENTE           :  Marco Aurelio Porro Chulli

       ASIGNATURA    :  Laboratorio de Programación III.

       CICLO                  :  VII  "A"

       INTEGRANTES  :   

  • Vicente Wualdir Alberca Rojas.
  • Yenny Isabel Cuello Moron.




ADO.NET



1.  Contenido


Ø Definición

ADO.NET es un conjunto de clases que exponen servicios de acceso a datos para programadores de .NET Framework. ADO.NET ofrece abundancia de componentes para la creación de aplicaciones de uso compartido de datos distribuidas. Constituye una parte integral de NET Framework y proporciona acceso a datos relacionales, XML y de aplicaciones. ADO.NET satisface diversas necesidades de desarrollo, como la creación de clientes de base de datos front-end y objetos empresariales de nivel medio que utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet.
ADO.NET proporciona acceso coherente a orígenes de datos como SQL Server y XML, así como a orígenes de datos expuestos mediante OLE DB y ODBC.  Las aplicaciones de consumidor que comparten datos pueden utilizar ADO.NET para conectar a estos orígenes de datos y recuperar, controlar y actualizar los datos contenidos.  
ADO.NET separa el acceso de la manipulación de los datos en componentes discretos que se pueden utilizar por separado o conjuntamente.  ADO.NET incluye proveedores de datos .NET Framework para conectarse a una base de datos, ejecutar comandos y recuperar resultados.   Los resultados, o bien, se procesan directamente, o bien, se colocan en un objeto DataSet de ADO.NET con el fin de exponerlos al usuario para un propósito específico, combinados con datos de varios orígenes, o de pasarlos entre niveles.
ADO.NET proporciona funcionalidad a los desarrolladores que escriben código administrado similar a la funcionalidad que los objetos ADO (ActiveX Data Objects) proporcionan a los desarrolladores de modelo de objetos componentes (COM) nativo.  Se recomienda utilizar ADO.NET, y no ADO, para obtener acceso a datos de aplicaciones .NET.  
ADO.NET proporciona el método más directo de acceso a datos de .NET Framework.  Para obtener una abstracción de nivel más alto que permita que las aplicaciones funcionen en un modelo conceptual en vez de en el modelo de almacenamiento subyacente, vea ADO.NET Entity Framework.  


Ø  CARACTERISTICAS GENERALES ADO.NET

aprovecha la eficacia de XML para proporcionar acceso a datos sin mantener una conexión abierta. ADO.NET y las clases de XML incluidas en .NET Framework convergen en el objeto DataSet. El DataSet se puede llenar con datos procedentes de un origen XML, ya sea éste un archivo o una secuencia XML. El DataSet se puede escribir como XML compatible con el del Consorcio World Wide Web (W3C), incluyendo su esquema como esquema XSD (Lenguaje de definición de esquemas XML), independientemente del origen de los datos incluidos en el DataSet. Puesto que el formato nativo de serialización del DataSet es XML, es un medio excelente para mover datos de un nivel a otro, por lo que el DataSet es idóneo para utilizar datos y contextos de esquemas de interacción remota desde y hacia un servicio Web XML. Los componentes de ADO.NET están diseñados para separar el acceso a datos de la manipulación de datos. ADO.NET tiene dos componentes principales que cumplen esta función: el DataSet y el proveedor de datos de .NET Framework, que es un conjunto de componentes entre los que se incluyen los objetos Connection, Command, DataReader y DataAdapter.

Ø  ARQUITECTURA

ADO.NET consiste en dos partes primarias:

Data provider

Estas clases proporcionan el acceso a una fuente de datos, como Microsoft SQL Server y Oracle. Cada fuente de datos tiene su propio conjunto de objetos del proveedor, pero cada uno tienen un conjunto común de clases de utilidad:

·   Connection: Proporciona una conexión usada para comunicarse con la fuente de datos. También actúa como Abstract Factory para los objetos command.
·   Command: Usado para realizar alguna acción en la fuente de datos, como lectura, actualización, o borrado de datos relacionales.
·    Parameter: Describe un simple parámetro para un command. Un ejemplo común es un parámetro para ser usado en un procedimiento almacenado.
·   DataAdapter: "Puente" utilizado para transferir data entre una fuente de datos y un objeto DataSet (ver abajo).
·  DataReader: Es una clase usada para procesar eficientemente una lista grande de resultados, un registro a la vez.

DataSets


Los objetos DataSets, son un grupo de clases que describen una simple base de datos relacional en memoria, fueron la estrella del show en el lanzamiento inicial (1.0) del Microsoft .NET Framework. Las clases forman una jerarquía de contención:

·  Un objeto DataSet representa un esquema (o una base de datos entera o un subconjunto de una). Puede contener las tablas y las relaciones entre esas tablas.
·  Un objeto DataTable representa una sola tabla en la base de datos. Tiene un nombre, filas, y columnas.
·   Un objeto DataView "se sienta sobre" un DataTable y ordena los datos (como una cláusula "order by" de SQL) y, si se activa un filtro, filtra los registros (como una cláusula "where" del SQL). Para facilitar estas operaciones se usa un índice en memoria. Todas las DataTables tienen un filtro por defecto, mientras que pueden ser definidos cualquier número de DataViews adicionales, reduciendo la interacción con la base de datos subyacente y mejorando así el desempeño.
·    Un DataColumn representa una columna de la tabla, incluyendo su nombre y tipo.
·   Un objeto DataRow representa una sola fila en la tabla, y permite leer y actualizar los valores en esa fila, así como la recuperación de cualquier fila que esté relacionada con ella a través de una relación de clave primaria - clave extranjera.
·   Un DataRowView representa una sola fila de un DataView, la diferencia entre un DataRow y el DataRowView es importante cuando se está interactuando sobre un resultset.
·   Un DataRelation es una relación entre las tablas, tales como una relación de clave primaria - clave ajena. Esto es útil para permitir la funcionalidad del DataRow de recuperar filas relacionadas.
·   Un Constraint describe una propiedad de la base de datos que se debe cumplir, como que los valores en una columna de clave primaria deben ser únicos. A medida que los datos son modificados cualquier violación que se presente causará excepciones.
Un DataSet es llenado desde una base de datos por un DataAdapter cuyas propiedades Connection y Command que han sido iniciados. Sin embargo, un DataSet puede guardar su contenido a XML (opcionalmente con un esquema XSD), o llenarse a sí mismo desde un XML, haciendo esto excepcionalmente útil para los servicios web, computación distribuida, y aplicaciones ocasionalmente conectadas desconectados.

Ø  DataSet


El DataSet de ADO.NET está expresamente diseñado para el acceso a datos independientemente de cualquier origen de datos. Como resultado, se puede utilizar con múltiples y distintos orígenes de datos, con datos XML o para administrar datos locales de la aplicación. DataSet contiene una colección de uno o más objetos DataTable formados por filas y columnas de datos, así como claves principales, claves externas, restricciones e información de la relación sobre los datos incluidos en los objetos DataTable. Para obtener más información, consulta DataSets, DataTables y DataViews.
En el diagrama siguiente se ilustra la relación entre un proveedor de datos .NET Framework y un DataSet.


 




Ø  Elegir un DataReader o un DataSet


A la hora de decidir si su aplicación debe utilizar un DataReader (vea Recuperar datos mediante DataReader) o un DataSet (vea DataSets, DataTables y DataViews), debe tener en cuenta el tipo de funcionalidad que su aplicación requiere. Use un DataSet para hacer lo siguiente:

· Almacene datos en la memoria caché de la aplicación para poder manipularlos. Si solamente necesita leer los resultados de una consulta, el DataReader es la mejor elección.
·   Utilizar datos de forma remota entre un nivel y otro o desde un servicio Web XML.
·   Interactuar con datos dinámicamente, por ejemplo, para enlazar con un control de Windows Forms o para combinar y relacionar datos procedentes de varios orígenes.
·  Realizar procesamientos exhaustivos de datos sin necesidad de tener una conexión abierta con el origen de datos, lo que libera la conexión para que la utilicen otros clientes.

Si no necesita la funcionalidad proporcionada por el DataSet, puede mejorar el rendimiento de su aplicación si utiliza el DataReader para devolver sus datos de solo avance y de solo lectura. Aunque DataAdapter utiliza DataReader para rellenar el contenido de un DataSet (vea Rellenar un conjunto de datos desde un objeto DataAdapter), al utilizar el DataReader puede mejorar el rendimiento porque no usará la memoria que utilizaría el DataSet, además de evitar el procesamiento necesario para crear y rellenar el contenido de DataSet.

Ø  Clases de ADO.NET

·  System.Data: clases genéricas de datos de ADO .NET, integra la gran mayoría de clases que habilitan el acceso a los datos de la arquitectura .NET.

· System.Data.SqlClient: clases del proveedor de datos de SQL Server, permiten el acceso a proveedores SQL Server en su versión 7.0 y superior.

·  System.Data.OleDb: clases del proveedor de datos de OleDB, permiten el acceso a proveedores .NET que trabajan directamente contra controladores basados en los ActiveX de Microsoft.

· System.Data.SqlTypes: definición de los tipos de datos de SQL Server, proporciona la encapsulación en clases de todos los tipos de datos nativos de SQL Server y sus funciones de manejo de errores, ajuste y conversión de tipos, etc.

·  System.Data.Common: clases base, reutilizables de ADO .NET, proporcionan la colección de clases necesarias para acceder a una fuente de datos (como por ejemplo una Base de Datos).

·  System.Data.Internal: integra el conjunto de clases internas de las que se componen los proveedores de datos.

  Dentro del espacio de nombres System.Data encontramos las clases compartidas que constituyen el eje central de ADO.NET, y son las siguientes:

·  DataSet: almacén de datos por excelencia en ADO .NET. Representa una base de datos desconectada del proveedor de datos. Almacena tablas y sus relaciones.

·  DataTable: un contenedor de datos. Estructurado como un conjunto de filas (DataRow) y columnas(DataColumn).

·  DataRow: registro que almacena n valores. Representación en ADO .NET de una fila de una tabla de la base de datos.

· DataColumn: contiene la definición de una columna. Metadatos y datos asociados a su dominio.

·    DataRelation: enlace entre dos o más columnas iguales de dos o más tablas.

·   Constraint: reglas de validación de las columnas de una tabla.

·  DataColumnMapping: vínculo lógico existente entre una columna de un objeto del DataSet y la columna física de la tabla de la base de datos.

·  DataTableMapping: vínculo lógico existente entre una tabla del DataSet y la tabla física de la base de datos.
Además de estas clases, existe otro grupo de clases, las clases específicas de un proveedor de datos. Estas clases forman parte de lo específico de un fabricante de proveedores de datos .NET. Tienen una sintaxis de la forma XxxClase donde "Xxx" es un prefijo que determina el tipo de plataforma de conexión a datos. Se definen en dos NameSpaces: System.Data.SqlClient y System.Data.OleDb.

SqlCommand Clases que representan un comando SQL contra un
OleDbCommand sistema gestor de datos.
SqlCommandBuilder Generador de comandos SQL de inserción, modificación y OleDbCommandBuilder borrado desde una consulta SQL de selección de datos.
SqlDataReader Un lector de datos de sólo avance, conectado a la base de OleDbDataReader datos.
SqlDataAdapter Clase adaptadora entre un objeto DataSet y sus OleDbDataAdapter operaciones físicas en la base de datos (select,insert,update y delete).
SqlParameter Define los parámetros empleados en la llamada a
OleDbParameter procedimientos almacenados.
SqlTransaction Gestión de las transacciones a realizar en la base de datos.

Ø  EJEMPLO DE ADO.NET

Ejemplos de Entity Framework

En los listados de código siguientes se muestra cómo recuperar los datos de un origen de datos consultando las entidades de un Entity Data Model (EDM). Estos ejemplos utilizan la modelo de Northwind. Para obtener más información, consulte Introducción a Entity Framework.

LINQ to Entities

El código de este ejemplo usa una consulta LINQ para devolver los datos como objetos Categorías, que se proyectan como un tipo anónimo que contiene solo las propiedades CategoryID y CategoryName. Para obtener más información, consulte LINQ to Entities información general sobre.

Option Explicit On  
Option Strict On  
  
Imports System  
Imports System.Linq  
Imports System.Data.Objects  
Imports NorthwindModel  
  
Class LinqSample  
    Public Shared Sub ExecuteQuery()  
        Using context As NorthwindEntities = New NorthwindEntities()  
            Try  
                Dim query = From category In context.Categories _  
                            Select New With _  
                            { _  
                                .categoryID = category.CategoryID, _  
                                .categoryName = category.CategoryName _  
                            }  
  
                For Each categoryInfo In query  
                    Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _  
                        categoryInfo.categoryID, categoryInfo.categoryName)  
                Next  
            Catch ex As Exception  
                Console.WriteLine(ex.Message)  
            End Try  
        End Using  
    End Sub  
End Class  
 

 

ObjectQuery con establecimiento de tipos


El código de este ejemplo utiliza un ObjectQuery<> </> > para devolver datos como objetos Categorías. Para obtener más información, consulte consultas de objeto.

Option Explicit On  
Option Strict On  
  
Imports System  
Imports System.Data.Objects  
Imports NorthwindModel  
  
Class ObjectQuerySample  
    Public Shared Sub ExecuteQuery()  
        Using context As NorthwindEntities = New NorthwindEntities()  
            Dim categoryQuery As ObjectQuery(Of Categories) = context.Categories  
  
            For Each category As Categories In _  
                categoryQuery.Execute(MergeOption.AppendOnly)  
                Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _  
                    category.CategoryID, category.CategoryName)  
            Next  
        End Using  
    End Sub  
End Class  
 

EntityClient


El código de este ejemplo utiliza un EntityCommand para ejecutar una consulta de Entity SQL. Esta consulta devuelve una lista de registros que representan instancias del tipo de entidad Categories. Un EntityDataReader se utiliza para tener acceso a registros de datos en el conjunto de resultados. Para obtener más información, consulte proveedor de EntityClient para Entity Framework.

Option Explicit On  
Option Strict On  
  
Imports System  
Imports System.Data  
Imports System.Data.Common  
Imports System.Data.EntityClient  
Imports NorthwindModel  
  
Class EntityClientSample  
    Public Shared Sub ExecuteQuery()  
        Dim queryString As String = _  
            "SELECT c.CategoryID, c.CategoryName " & _  
                "FROM NorthwindEntities.Categories AS c"  
  
        Using conn As EntityConnection = _  
            New EntityConnection("name=NorthwindEntities")  
  
            Try  
                conn.Open()  
                Using query As EntityCommand = _  
                New EntityCommand(queryString, conn)  
                    Using rdr As DbDataReader = _  
                        query.ExecuteReader(CommandBehavior.SequentialAccess)  
                        While rdr.Read()  
                            Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _  
                                              rdr(0), rdr(1))  
                        End While  
                    End Using  
                End Using  
            Catch ex As Exception  
                Console.WriteLine(ex.Message)  
            End Try  
        End Using   
    End Sub  
End Class  
 



2.  Resumen
ADO.NET es un conjunto de clases que exponen servicios de acceso a datos para programadores de .NET Framework. ADO.NET ofrece abundancia de componentes para la creación de aplicaciones de uso compartido de datos distribuidas.

Arquitectura
ADO.NET consiste en dos partes primarias:

·         Data provider

·         DataSets


    DATA SET

El DataSet de ADO.NET está expresamente diseñado para el acceso a datos independientemente de cualquier origen de datos. 
DataSet contiene una colección de uno o más objetos DataTable formados por filas y columnas de datos, así como claves principales, claves externas, restricciones e información de la relación sobre los datos incluidos en los objetos DataTable
   
    Clases de ADO.NET

·      System.Data
·      System.Data.SqlClient
·      System.Data.OleDb
·      System.Data.SqlTypes
·      System.Data.Common
·      System.Data.Internal
·      DataSet
·      DataTable
·      DataRow
·      DataColumn,etc.

3.  Summary
ADO.NET is a set of classes that expose data access services for .NET Framework programmers. ADO.NET offers an abundance of components for creating distributed data sharing applications.

Architecture

ADO.NET consists of two primary parts:
• Data provider
• DataSets

DATE SET

The ADO.NET DataSet is expressly designed for data access regardless of any data source.
DataSet contains a collection of one or more DataTable objects formed by rows and columns of data, as well as primary keys, foreign keys, constraints, and relationship information about the data included in DataTable objects.

ADO.NET Classes

• System.Data
• System.Data.SqlClient
• System.Data.OleDb
• System.Data.SqlTypes
• System.Data.Common
• System.Data.Internal
• DataSet
• DataTable
• DataRow
• DataColumn, etc.

4.  Recomendaciones

·    Para usar un conjunto de datos, se crea una instancia del mismo y, a continuación, se usa un adaptador de datos para rellenarlo desde el origen de datos. Posteriormente, se trabaja con los datos del conjunto de datos, por ejemplo, enlazando controles con los miembros de dicho conjunto.
·   Una estrategia alternativa consiste en realizar operaciones directamente en la base de datos. En este modelo, se usa una consulta de TableAdapter o un comando de datos que incluye una instrucción SQL o una referencia a un procedimiento almacenado.
·  En ADO.NET se supone que hay un modelo de acceso a datos en el que se puede abrir una conexión, obtener datos o realizar una operación y cerrar luego la conexión. ADO.NET proporciona dos estrategias básicas de trabajo con este modelo. Una de ellas consiste en almacenar datos en un conjunto de datos, que es una caché almacenada en memoria de los registros con los que se puede trabajar mientras se está desconectado del origen de datos.

5.  Conclusiones

·   ADO .NET ha permitido que el almacenaje y recuperación de información en bases de datos SQLServer sea sencillo, de forma que se pueda acceder a esta información previamente guardada sin necesidad de ejecutar la aplicación.
·  ADO .NET está diseñado para fundamentarse en la fuerza del modelo de programación de ADO, mientras que provee una evolución en la tecnología de acceso a datos para responder a las necesidades cambiantes del desarrollador. Está diseñado para fortalecer tus conocimientos de ADO, mientras que provee un control más fino sobre los componentes, recursos y comportamiento de tu aplicación cuando accede y trabaja con datos.
·  ADO .NET está diseñado para fundamentarse en la fuerza del modelo de programación de ADO, mientras que provee una evolución en la tecnología de acceso a datos para responder a las necesidades cambiantes del desarrollador. 
·  ADO.NET, es una base de datos versátil y eficiente de la tecnología de acceso a gerente. NET, que facilitan y maximizar el desarrollo de aplicaciones con acceso a bases de mucho más rápidamente y con mejor rendimiento.

6.  Apreciación del Equipo

·  ADO.NET proporciona acceso coherente a orígenes de datos como SQL Server y XML, así como a orígenes de datos expuestos mediante OLE DB y ODBC. Las aplicaciones de consumidor que comparten datos pueden utilizar ADO.NET para conectar a estos orígenes de datos y recuperar, controlar y actualizar los datos contenidos.
·   ADO.NET incluye proveedores de datos .NET Framework para conectarse a una base de datos, ejecutar comandos y recuperar resultados. Los resultados, o bien, se procesan directamente, o bien, se colocan en un objeto DataSet de ADO.NET con el fin de exponerlos al usuario para un propósito específico, combinados con datos de varios orígenes, o de pasarlos entre niveles.
·  ADO.NET separa el acceso de la manipulación de los datos en componentes discretos que se pueden utilizar por separado o conjuntamente. ADO.NET incluye proveedores de datos .NET. 
·  Las aplicaciones de desarrollo hoy, ya es normal que se conectará a una base de datos, ejemplos comerciales que tenemos en nuestras narices, especialmente en internet (Google, Facebook, correo electrónico, etc.), usan la base de datos de gran volumen. Por esta razón se considera importante tener desarrollo entorno como NET y por lo tanto, ADO.NET, que es una base de datos versátil y eficiente de la tecnología de acceso a gerente. NET, que facilitan y maximizar el desarrollo de aplicaciones con acceso a bases de mucho más rápidamente y con mejor rendimiento.

7.  Glosario de Términos

   Serialización: La serialización es el proceso de convertir un objeto en una secuencia de bytes para conservarlo en memoria, una base de datos o un archivo.
NET Framework:NET Framework es un componente integral de Windows que admite la compilación y la ejecución de la siguiente generación de aplicaciones y servicios Web.

La encapsulación: es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo en que el objeto se implementa, La definición más concreta de los metadatos es “datos acerca de los datos” y sirven para suministrar información sobre los datos producidos.

Encapsulamiento (informática): En programación modular, y más específicamente en programación orientada a objetos, se denomina encapsulamiento al ocultamiento del estado.

XML: es un Lenguaje de Etiquetado Extensible muy simple, pero estricto que juega un papel fundamental en el intercambio de una gran variedad de datos.

Open DataBase Connectivity (ODBC): es un estándar de acceso a las bases de datos desarrollado por SQL Access Group (SAG) en 1992. El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos.

OLE DB: (algunas veces escrito como OLEDB u OLE-DB) es la sigla de Object Linking and Embedding for Databases ("Enlace e incrustación de objetos para bases de datos") y es una tecnología desarrollada por Microsoft usada para tener acceso a diferentes fuentes de información, o bases de datos, de manera uniforme.

8.  Linkografías





 AQUÍ LES DEJO EL LINK DE LAS DIAPOSITIVAS




No hay comentarios:

Publicar un comentario