Arquitectura y funcionalidad de ADO .NET Fecha: 18/Mar/2005 (05/03/2005) |
Los objetivos concretos de este artículo son los siguientes:
- Conocer los distintos conceptos relacionados con la Arquitectura de ADO .NET.
- Usar algunos de los diferentes proveedores de datos .NET.
- Conocer la estructura del NameSpaces relativos a datos y XML.
- Aprender a usar los objetos: Connection, Command, DataReader, DataSet, DataAdapter.
- Trabajar en modo conectado y desconectado.
NOTA: Este artículo presenta información general de mucha importancia y omite algunos detalles para poder presentar de manera sencilla conceptos relacionados a la integración de datos de ADO .NET. En primer lugar empezamos haciendo un breve introducción al tema ;sin embargo, si usted ya conoce estos conceptos puede revisar el ejemplo que incluyo en este artículo para mostrar las diferentes utilidades de la arquitectura ADO .NET. En la parte final de este artículo se encuentra dicho ejemplo.
INTRODUCCIÓN
La mayoría de las aplicaciones escritas en Visual Basic y Visual C# giran en torno a la lectura y actualización de información de bases de datos. Para permitir la integración de datos en aplicaciones distribuidas y escalables, Visual Studio .NET es compatible con una nueva generación de tecnología de acceso a datos: ADO.NET.
El problema es comunicar un programa o aplicación con una base de datos y más que comunicar se pretende que el programa o aplicación realice una serie de procesos u operaciones con la base de datos o mejor aun con el conjunto de tablas que contiene una base de datos.
La primera nota a recordar es que una base de datos puede estar físicamente en el servidor y en algún fólder o directorio del disco duro de dicha maquina. Otra cosilla que debemos recordar es que así como existen servidores de paginas (Web Server), servidores de correo (Mail Server), servidores de ftp (ftp Server),..., también existen servidores de bases de datos (DataBase Server), los más comunes son el SqlServer de Microsoft, Oracle, MySql, y muchos más, estos servidores también pueden crear, administrar y procesar una base de datos.
El modo de comunicación entre nuestra aplicación y la base de datos implica que ambos manejen un lenguaje de programación común, es decir no se puede mandar una instrucción en csharp .net, o en visual Basic .net o en Basic o pascal...o en cualquier otro lenguaje, a la base de datos y además esperar que esta última la entienda. Para entender esto, una razón muy sencilla es que la base de datos tendría que conocer o comprender todos los lenguajes de programación, ahora dime, no sería más fácil que exista un lenguaje común...?, entonces para resolver este problema de comunicación es que se usa un lenguaje común de bases de datos que tanto los lenguajes de programación existentes como las bases de datos entienden, este lenguaje común de bases de datos es el SQL (Structured Query Languaje) o lenguaje estructurado de consultas.
La pregunta es ahora como mandamos las instrucciones SQL a la base de datos, la respuesta es mediante los OBJETOS ADO.NET, las cuales proporcionan acceso coherente a orígenes de datos como Microsoft SQL Server, así como a orígenes de datos expuestos mediante OLE DB y XML.
En la actualidad ADO .NET ya es parte del .NET Framework, esto quiere decir que es, de alguna manera, parte del sistema operativo y no más un redistribuible de 4 ó 5 MB que se necesita alojar junto al cliente o junto al instalador de una aplicación. Esto significa que nosotros, como desarrolladores, estaremos enfocados más al acceco a datos y a la lógica para manipular estos datos, y no tendremos porqué precuparnos en cómo a los clientes la librería.
La mayoría de las aplicaciones necesitan algún mecanismo de acceso a datos. Si está creando una aplicación nueva, dispone de tres opciones excelentes para obtener acceso a los datos: ADO.NET, ADO y OLE DB. Si necesita modificar el mecanismo de acceso a datos de una aplicación existente, debería seguir utilizando la tecnología actual de acceso a datos de la aplicación por cuestiones de mantenimiento.
Si usted prevé que la aplicación va a tener un ciclo de vida largo, entonces debe considerar la posibilidad de rediseñar la tecnología de acceso a datos de la aplicación y utilizar ADO.NET en aplicaciones administradas o ADO en aplicaciones nativas. A largo plazo, el uso de las tecnologías más modernas de acceso a datos reduce el tiempo de desarrollo, simplifica el código y proporciona un rendimiento excelente.
A continuación detallaré muchos conceptos importantes a cerca de ADO .NET
Acceso a datos con ADO.NET
- ADO.NET es una tecnología de acceso a datos que se basa en los objetos ADO (Objetos de Datos ActiveX) anteriores.
- Es una manera nueva de acceder a los datos construida sobre ADO. ADO.NET puede coexistir con ADO.
- También podemos decir que ADO.NET es un conjunto de clases que exponen servicios de acceso a datos al programador de .NET.
- ADO.NET proporciona un conjunto variado de componentes para crear aplicaciones distribuidas de uso compartido de datos. Forma parte integral de .NET Framework, y proporciona acceso a datos relacionales, datos XML y datos de aplicaciones.
- ADO.NET es compatible con diversas necesidades de programación, incluida la creación de clientes de bases de datos clientes y objetos empresariales de nivel medio utilizados por aplicaciones, herramientas, lenguajes o exploradores de Internet.
- ADO.NET utiliza un modelo de acceso pensado para entornos desconectados. Esto quiere decir que la aplicación se conecta al origen de datos, hace lo que tiene que hacer, por ejemplo seleccionar registros, los carga en memoria y se desconecta del origen de datos.
- ADO.NET es un conjunto de clases que usted utiliza para acceder y manipular orígenes de datos como por ejemplo, una base de datos en SQL Server o una planilla Excel.
- ADO.NET utiliza XML como el formato para transmitir datos desde y hacia su base de datos y su aplicación Web.
- Hay 3 espacios de nombres que se importará en un formulario Web o formulario windows si esta usando ADO.NET:
- System.Data.
- System.Data.SqlClient.
- System.Data.OleDb.
- El modelo de objetos ADO.NET provee una estructura de acceso a distintos orígenes de datos. Tiene 2 componentes principales: El Dataset y el proveedor de Datos .NET
Espacios de nombres para datos en el .NET Framework
Entre los espacios de nombres de .NET Framework relativos a datos y XML se incluyen:
System.Data: consiste en las clases que constituyen la arquitectura ADO.NET, que es el método primario para tener acceso a los datos de las aplicaciones administradas. La arquitectura ADO.NET permite crear componentes que administran eficientemente datos procedentes de múltiples orígenes. ADO.NET también proporciona las herramientas necesarias para solicitar, actualizar y reconciliar datos en aplicaciones distribuidas.
System.Data.Common: contiene las clases que comparten los proveedores de datos .NET Framework. Dichos proveedores describen una colección de clases que se utiliza para obtener acceso a un origen de datos, como una base de datos, en el espacio administrado.
System.Xml: clases que proporcionan funcionalidad basada en estándares para procesar código XML.
System.Data.OleDb: clases que componen el proveedor de datos de .NET Framework para orígenes de datos compatibles con OLE DB. Estas clases permiten conectarse a un origen de datos OLE DB, ejecutar comandos en el origen y leer los resultados.
System.Data.SqlClient: clases que conforman el proveedor de datos de .NET Framework para SQL Server, que permite conectarse a un origen de datos SQL Server 7.0, ejecutar comandos y leer los resultados. El espacio de nombres System.Data.SqlClient es similar al espacio de nombres System.Data.OleDb, pero optimizado para el acceso a SQL Server 7.0 y versiones posteriores.
System.Data.SqlTypes: proporciona clases para tipos de datos nativos de SQL Server. Estas clases ofrecen una alternativa más segura y más rápida a otros tipos de datos.
System.Data.OleDb: clases que componen el proveedor de datos de .NET Framework para OLE DB. Estas clases permiten el acceso a orígenes de datos ODBC en el espacio administrado.
System.Data.OracleClient: clases que componen el proveedor de datos de .NET Framework para Oracle. Estas clases permiten el acceso a orígenes de datos Oracle en el espacio administrado.