ADO .NET Alejandro Gassmann Equipo Danysoft Artículos Grupo Danysoft: ADO .NET Página 2 / 6 Artículos Grupo Danysoft: ADO .NET ADO.NET Posiblemente muchos de los webmasters que llevan un par de años en la creación de sitios web puedan sentirse algo desorientados al saber que Microsoft ha creado una nueva tecnología para el acceso a bases de datos. Al haberse familiarizado con la tecnología ActiveX Data Object (ADO), quizás lo menos que se espera es tener que aprender una nueva tecnología, con sus propiedades, métodos y características. En el caso de la nueva versión de ADO, denominada ADO.NET, el desarrollador no tiene de que preocuparse. ADO.NET es una tecnología mucho más sencilla de utilizar, con un modelo de objetos basado en XML, lo que permite una mejor interacción con la información desde y hacia las bases de datos. Beneficios de ADO.NET Independencia de la Fuente de Datos ADO.NET utiliza para el manejo de datos el objeto DataSet, el cual a diferencia de los que sucedía con ADO, es totalmente independiente del tipo de conexión que se utiliza para acceder a la base de datos. Rendimiento Toda la arquitectura de ADO.NET está basada en XML. Esto permite que el manejo de los datos a través de ADO.NET sea dramáticamente más eficiente que en ADO, en donde el modelo de acceso a las bases de datos estaba basado en COM. Escalabilidad Con la utilización del objeto DataSet, la conexión a la base de datos es utilizada por mucho menos tiempo de parte del servidor. La cantidad de conexiones a bases de datos en un servidor, resulta un actor fundamental en cuanto al rendimiento de dicho servidor. ASP.NET esta basado en disconnected data acces, por lo tanto se reduce el tiempo de uso de las conexiones, permitiendo un sistema mucho más escalable. Compatibilidad con Firewalls El uso de XML para el ma nejo de los datos en ADO.NET, permite una total compatibilidad con máquinas en donde esté instalado algún tipo de Firewalls. ADO.NET viene a solucionar los problemas de compatibilidad de ADO con respecto a este tipo de aplicaciones. La arquitectura de ADO.NET Como sucede en ASP.NET, los objetos se encuentran encapsulados en Namespaces Página 3 / 6 Artículos Grupo Danysoft: ADO .NET Cada vez que quieran utilizar los objetos de ADO.NET, se deberá declarar en la página aspx, el nombre del Namespace a utilizar. Declarar Namespaces en ADO.NET <%@ Import Namespace="System.Data" %> Todos los objetos y tipos de datos para ADO.NET <%@ Import Namespace="System.Data.ADO" %> Objetos para las conexiones mediante OLE-DB <%@ Import Namespace="System.Data.SQL" %> Objetos para las conexiones mediante SQL Server <%@ Import Namespace="System.Data.XML" %> Objetos XML <%@ Import Namespace="System.Data.SQLTypes" %> Tipos de datos SQL Manejo de datos con ADO.NET Los datos y la información sobre la base de datos en ADO.NET está almacenados en el Objeto DataSet, que pertenece al Namespace System.Data. La estructura de este namespace es la siguiente: DataSet Es el objeto principal en ADO.NET y contiene toda la información de la base de datos. DataTable Contiene la información de una tabla determinada DataRow Contiene la información de una fila, en una tabla determinada DataColumn Contiene la información de una columna, en una tabla determinada Página 4 / 6 Artículos Grupo Danysoft: ADO .NET DataRelation Contiene la información acerca de la relación entre dos columnas DataSetView Contiene los detalles acerca de la vista de una tabla Creando un DataSet <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.ADO" %> <script language="vb" runat="server"> Sub Page_Load(Source as Object, E as EventArgs) Dim strConnString as String strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _ "Initial Catalog=pubs; User ID=sa" Dim objConn as ADOConnection objConn = New ADOConnection(strConnString) objConn.Open() Dim strSQL as String = "SELECT * FROM authors" Dim objDSCommand as ADODatasetCommand Dim objDataset as Dataset objDSCommand = New ADODatasetCommand(strSQL, objConn) objConn.Close() objConn = Nothing objDataset = New Dataset objDSCommand.FillDataSet(objDataset, "Author Information") MyFirstDataGrid.DataSource = _ objDataset.Tables("Author Information").DefaultView MyFirstDataGrid.DataBind() End Sub </script> <asp:DataGrid id="MyFirstDataGrid" runat="server" /> </html> Este es el código necesario para importar los los objetos de los namespaces necesarios para el manejo y la conexión a la base de datos. <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.ADO" %> Página 5 / 6 Artículos Grupo Danysoft: ADO .NET Este código ejecuta el código, con el evento Page_Load <script language="vb" runat="server"> Sub Page_Load(Source as Object, E as EventArgs) Crea la variable que contendrá el String de la conexión y conecta la base de datos por default del server SQL Dim strConnString as String strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _ "Initial Catalog=pubs; User ID=sa" Este código crea el objeto conexión y utiliza el string strConnString para conectar con la base. Dim objConn as ADOConnection objConn = New ADOConnection(strConnString) objConn.Open() Se define el comando que se desea ejecutar objDSCommand = New ADODatasetCommand(strSQL, objConn) Se define el objeto Dataset y se ejecuta la intrucción SQL Dim strSQL as String = "SELECT * FROM authors" Dim objDSCommand as ADODatasetCommand Dim objDataset as Dataset Se cierra la conexión objConn.Close() objConn = Nothing Finalmente La llegada de ADO.NET es una gran noticia para los desarrolladores. Si bien no es un reemplazo completo de ADO, esta nueva tecnología permite crear servidores con acceso a grandes bases de datos mucho más escalables. A diferencia de lo que ocurría con ADO y su integración con COM, en ADO.NET es XML el lenguaje que maneja y mueve la información, por lo que todo el rendimiento en el servidor será superior. La independencia del Objeto DataSet hacia el tipo de conexión, también contribuye a la facilidad para mantener el código. Ya no será necesario modificar todo el String de conexión al cambiar la base de datos. Para más información, visitar: http://msdn.microsoft.com/vstudio/nextgen/technology/adoplusdefault.asp Página 6 / 6