Les responderé de acuerdo a lo que leí y también mi experiencia personal, como deben saber los DataSet's almacenan los datos en memoria (en los DataReader's se tiene una tupla en memoria), este tipo de recurso en una aplicación web, se tiene que tener muy en cuenta a la hora de desarrollarla, ya que afectará el rendimiento y la escalabilidad de la misma, en .Net 2.0 se mejoran varios aspectos del DataSet en cuanto a rendimiento (
http://www.merill.net/PermaLink,guid...d0d61477d.aspx). Por otro lado en aplicaciones web el binding no es bidireccional, es sólo en un sentido.
Me parece que utilizando DataReaders se pueden hacer la mayoría de las cosas que se hacen con un DataSet, se puede asignar como fuente de datos a los controles web, esto gracias a que implementa la interfaz IEnumerable. Me imagino que varios no lo usan (yo tampoco lo hice) porque es tedioso tener que abrir y cerrar las conexiones para cada acción que se realize, un problema también es si por accidentalmente se deja abierto la conexión y ese tipo de cosas (esto se nota más en una aplicación en capas)
Ahora, en el mensaje anterior expresé una opinión mía y de seguro que hay muchos que no opinan lo mismo, me parece que este tema parte desde el diseño de la aplicación, es decir decidiendo el correcto acceso a datos, separando la aplicación en capas, utilizando el caching y es ahí donde justamente nos pueden ayudar los Application Blocks.
Les dejo unos links de referencia:
http://msdn.microsoft.com/library/de...netarch031.asp http://msdn.microsoft.com/library/de...plications.asp http://msdn.microsoft.com/library/de...netchapt06.asp http://www.dotnetspider.com/technolo...ages/1095.aspx
Saludos
PD. Disculpen por la demora.