3.10 Conectividad entre el servidor Web y el servidor de base de datos

ADO.NET está diseñado para cargar datos desde una fuente de datos y trabajar con esos datos en modo desconectado. Este estado de  desconexión permite al  formulario  Web  Form  operar  de  forma semi- independiente de las  fuentes  de  datos, reduciendo así el  tráfico de  red. ADO.NET  utiliza  Extensible Markup  Language  (XML)  como formato  universal  de  transmisión  de datos, lo  cual  garantiza la interoperabilidad con cualquier plataforma donde esté disponible un parser XML.

Los objetos DataSet y DataReader son comúnmente utilizados para acceder a datos. Los  objetos  DataSet son  objetos  complejos  que nos  permiten  almacenar  múltiples  tablas  de  datos  DataTables desde una fuente de datos, los objetos DataSet son como una base de datos virtual ubicada dentro de una aplicación Web, los objetos DataSet también pueden contener relaciones entre los datos de las DataTables, y pueden utilizar esas relaciones para recuperar datos.

Los objetos DataReader son objetos ligeros que se utilizan para leer datos desde una fuente de datos; los objetos DataReader proporcionan acceso sólo hacia delante (forward-only) y de sólo lectura (read-only) a los datos de una base de datos.

La elección entre utilizar objetos  DataSet u objetos DataReader debería basarse en el uso previsto para los datos, normalmente, los objetos DataReader se utilizan para leer datos en situaciones en las que es necesario  el  acceso una única vez, y  de  solo lectura, como cuando accedemos  a una  contraseña almacenada, o se cumplimenta un  control  enlazado  a una lista,  los  objetos  DataSet se utilizan  para un acceso a datos más complejo, como el acceso a todo el historial de pedidos de un cliente. Algunos de los aspectos relativos al acceso a datos que se deben tener en cuenta  a la hora de decidir entre objetos DataSet y DataReader incluyen:

  • Acceso a datos. si nuestra intención es leer y escribir a nuestra fuente de datos, debemos utilizar un  objeto  DataSet, los  objetos  DataReader son  conexiones  de  sólo  lectura y  deberían utilizarse únicamente cuando los datos vayan a utilizarse en una situación de sólo lectura.
  • Acceso a múltiples bases de datos. Si nuestra intención es combinar tablas de una o más bases de  datos,  debemos  utilizar  un  objeto  DataSet, los  objetos  DataReader se basan  en  una única instrucción SQL de una sola base de datos.
  • Enlace a controles. Si nuestra intención es enlazar los datos a más de un control, debemos utilizar un objeto DataSet, los objetos DataReader sólo pueden vincularse a un único control.
  • Modo  conexión. Si  nuestra  intención  es  trabajar en  un modo desconectado, debemos  utilizar  un objeto DataSet, los objetos DataReader deben ejecutarse en modo conectado.
  • Búsqueda de datos. Si nuestra intención es buscar los datos hacia atrás y hacia delante, debemos utilizar un objeto DataSet, los objetos DataReader buscan hacia adelante a medida que los datos fluyen desde la base de datos.
  • Velocidad  de acceso. Si  necesitamos  acceso de  alta velocidad a nuestra fuente de  datos, utilizaremos  un  objeto  DataReader, los  objetos  DataSet son  más  lentos  que los  objetos DataReader en el acceso a una base de datos, debido a que los objetos DataSet almacenan los datos  en un objeto del  servidor Web, también  la sobrecarga es  mayor en  la  creación del  objeto DataSet debido a la capacidad de leer y escribir datos y búsqueda hacia delante y hacia atrás, los objetos DataReader son más rápidos debido a la naturaleza del objeto más ligera, hay muy poca sobrecarga para el objeto DataReader, ya que éste trabaja sólo hacia delante y sólo de lectura.
  • Soporte de herramientas. Si nuestra intención es utilizar Microsoft Visual Studio® .NET para crear la conexión a datos, utilizaremos objeto  DataSet, con los objetos  DataSet, podemos elegir entre escribir nuestro propio código o utilizar el código máquina de Visual Studio .NET, con los objetos DataReader, debemos escribir todo el código de soporte.

Deja un comentario