DataSet vs Entidades personalizadas

10/07/2005 - 20:44 por ErickGB | Informe spam
Me gustaria saber la opinion de la comunidad sobre que
consideran mejor, la utilizacion de DataSet vs las
entidades personalizadas.

Comenzare aportando el primer comentario:
Despues de leer el articulo de Karl Seguin (1)
creo correta la afirmaciòn a la cual hace referencia
sobre los DataSet, que son un recipiente de datos y que
no representan un objeto de dominio realmente. Pues no es
posible agregar funcionalidad dentro de ella, por ejemplo
un metodo de calculo de salario para una persona en
particular. No hay objeto que represente univocamete a
esa persona pues esta está contentidad como un DataRow en
en el "objeto" DataSet.
Yo nunca he trabajado con entidades personalizadas pero
el trabajo que hay que hacer para utilizarlas me parace
bastante grande y lo cierto es que los DataSet nos
facilitan el trabajo con sus metodos y el manejo de
estado de la fila en comparaciòn con las entidades
personalizadas o eso no es tan cierto??? que opinan?

(1).http://www.microsoft.com/spanish/ms...los/archiv
o/030505/voices/CustEntCls.asp

Preguntas similare

Leer las respuestas

#1 Alfredo Novoa
11/07/2005 - 00:56 | Informe spam
On Sun, 10 Jul 2005 11:44:27 -0700, "ErickGB"
wrote:

Me gustaria saber la opinion de la comunidad sobre que
consideran mejor, la utilizacion de DataSet vs las
entidades personalizadas.



Querrás decir DataSet vs clases personalizadas, o mejor aun: clases de
propósito específico.

La palabra entidad se suele usar para referirse a entidades del mundo
real, no para abstracciones informáticas.

Comenzare aportando el primer comentario:
Despues de leer el articulo de Karl Seguin (1)
creo correta la afirmaciòn a la cual hace referencia
sobre los DataSet, que son un recipiente de datos y que
no representan un objeto de dominio realmente.



Esta frase no tiene ningún sentido.

Un DataSet es un contenedor de datos que nos ayuda a presentar una
base de datos a los usuarios y a recoger las peticiones de
actualización que estos hacen. Un DataSet sirve como puente entre los
usuarios y el SGBD. No es más que una especie de caché poco
inteligente, pero su planteamiento básico es correcto, por que lo que
tienen que hacer las aplicaciones es servir de puente entre el SGBD y
los usuarios.

El que se debe encargar de garantizar la lógica de negocio (integridad
de los datos e inferencia de nuevos datos), es el SGBD.

, por ejemplo
un metodo de calculo de salario para una persona en
particular.



Es que ese tipo de cálculo no debe de hacerse en las aplicaciones,
para eso están los SGBD. Además tampoco debe de calcularse de forma
procedimental, es mucho mejor definir (declarar) lo que es un salario
y dejar que el SGBD sea el que busque automáticamente la mejor forma
de calcularlo en cada ocasión (crear un plan de ejecución, o lo que es
lo mismo: un programa).

No hay objeto que represente univocamete a
esa persona pues esta está contentidad como un DataRow en
en el "objeto" DataSet.



Si llamamos objeto a una tupla de la base de datos entonces si hay un
objeto que la representa, aunque normalmente una persona se representa
por un conjunto de tuplas de varias tablas, y no una sola.

Lo que pasa es que los lenguajes OO normalmente no soportan tuplas ni
relaciones. Esto se suele conocer como "impedance mismatch". Los
lenguajes OO no soportan los tipos de datos fundamentales de las bases
de datos relacionales. Esto causa muchas incomodidades, y lo que es
peor: muchas formas disparatadas de intentar resolver el problema.

Yo nunca he trabajado con entidades personalizadas pero
el trabajo que hay que hacer para utilizarlas me parace
bastante grande



Yo lo probé hace tiempo, y en efecto, el trabajo es enorme para no
ganar nada.

y lo cierto es que los DataSet nos
facilitan el trabajo con sus metodos y el manejo de
estado de la fila en comparaciòn con las entidades
personalizadas o eso no es tan cierto??? que opinan?

(1).http://www.microsoft.com/spanish/ms...los/archiv
o/030505/voices/CustEntCls.asp



Pues que el que escribió esto no tiene ni idea. Lo mejor es no hacer
ni caso a este tipo de artículillos sin ninguna garantía de calidad y
acudir a fuentes serias que tengan el visto bueno de la comunidad
científica.

Para aclarar los conceptos fundamentales de la gestión de bases de
datos te recomiendo este libro que es el más usado en las
universidades de todo el mundo y que está escrito por el que es
probablemente el mayor experto mundial en la materia.

http://www.mailxmail.com/tienda/articulo774



Saludos
Respuesta Responder a este mensaje
#2 ErickGB
11/07/2005 - 17:26 | Informe spam
Querrás decir DataSet vs clases personalizadas, o mejor


aun: clases de
propósito específico.



Es correcto, tal vez la palabra entidad fue mal empleada,
gracias por la corrección.

Ya he leído varios de tus mensajes en la comunidad y tus
planteamientos siempre son un poco controversiales, hasta
radicales en algunos casos. Apuestas mucho a la
utilización de los SGBD para resolver los problemas.

Mi pregunta sobre los dataset no intenta decir si son
estos almacenes de datos temporales o no, lo son, el
problema es ¿donde estan los objetos?. Un dataSet es una
colleccion de tuplas de la base de datos, esto no es un
objeto.

Como representas univocamente una entidad del mundo real
en una clase con los dataset de por medio. ¿Como
representas a "juan" a "pedro" con todas las propiedades
y MÉTODOS que los caracterizan.

, por ejemplo
un metodo de calculo de salario para una persona en
particular.



Es que ese tipo de cálculo no debe de hacerse en las


aplicaciones,

Que colocas en tu capa de logica de negocio??

http://www.mailxmail.com/tienda/articulo774


Es link no existe, prodias colocarme un valido, por favor.

Por último, siempre expones mucha teoría en tus mensajes,
por que no colocas algo práctico... cual fue la solución
a la cual llegaste para resolver este problema..

saludos..

ErickGB
Microsoft Certified Professional



On Sun, 10 Jul 2005 11:44:27 -0700, "ErickGB"
wrote:

Me gustaria saber la opinion de la comunidad sobre que
consideran mejor, la utilizacion de DataSet vs las
entidades personalizadas.



Querrás decir DataSet vs clases personalizadas, o mejor


aun: clases de
propósito específico.

La palabra entidad se suele usar para referirse a


entidades del mundo
real, no para abstracciones informáticas.

Comenzare aportando el primer comentario:
Despues de leer el articulo de Karl Seguin (1)
creo correta la afirmaciòn a la cual hace referencia
sobre los DataSet, que son un recipiente de datos y que
no representan un objeto de dominio realmente.



Esta frase no tiene ningún sentido.

Un DataSet es un contenedor de datos que nos ayuda a


presentar una
base de datos a los usuarios y a recoger las peticiones


de
actualización que estos hacen. Un DataSet sirve como


puente entre los
usuarios y el SGBD. No es más que una especie de caché


poco
inteligente, pero su planteamiento básico es correcto,


por que lo que
tienen que hacer las aplicaciones es servir de puente


entre el SGBD y
los usuarios.

El que se debe encargar de garantizar la lógica de


negocio (integridad
de los datos e inferencia de nuevos datos), es el SGBD.

, por ejemplo
un metodo de calculo de salario para una persona en
particular.



Es que ese tipo de cálculo no debe de hacerse en las


aplicaciones,
para eso están los SGBD. Además tampoco debe de


calcularse de forma
procedimental, es mucho mejor definir (declarar) lo que


es un salario
y dejar que el SGBD sea el que busque automáticamente la


mejor forma
de calcularlo en cada ocasión (crear un plan de


ejecución, o lo que es
lo mismo: un programa).

No hay objeto que represente univocamete a
esa persona pues esta está contentidad como un DataRow




en
en el "objeto" DataSet.



Si llamamos objeto a una tupla de la base de datos


entonces si hay un
objeto que la representa, aunque normalmente una persona


se representa
por un conjunto de tuplas de varias tablas, y no una


sola.

Lo que pasa es que los lenguajes OO normalmente no


soportan tuplas ni
relaciones. Esto se suele conocer como "impedance


mismatch". Los
lenguajes OO no soportan los tipos de datos


fundamentales de las bases
de datos relacionales. Esto causa muchas incomodidades,


y lo que es
peor: muchas formas disparatadas de intentar resolver el


problema.

Yo nunca he trabajado con entidades personalizadas pero
el trabajo que hay que hacer para utilizarlas me parace
bastante grande



Yo lo probé hace tiempo, y en efecto, el trabajo es


enorme para no
ganar nada.

y lo cierto es que los DataSet nos
facilitan el trabajo con sus metodos y el manejo de
estado de la fila en comparaciòn con las entidades
personalizadas o eso no es tan cierto??? que opinan?






(1).http://www.microsoft.com/spanish/ms...los/archiv
o/030505/voices/CustEntCls.asp



Pues que el que escribió esto no tiene ni idea. Lo mejor


es no hacer
ni caso a este tipo de artículillos sin ninguna garantía


de calidad y
acudir a fuentes serias que tengan el visto bueno de la


comunidad
científica.

Para aclarar los conceptos fundamentales de la gestión


de bases de
datos te recomiendo este libro que es el más usado en las
universidades de todo el mundo y que está escrito por el


que es
probablemente el mayor experto mundial en la materia.

http://www.mailxmail.com/tienda/articulo774



Saludos

.

Respuesta Responder a este mensaje
#3 Alfredo Novoa
11/07/2005 - 18:09 | Informe spam
On Mon, 11 Jul 2005 08:26:07 -0700, "ErickGB"
wrote:

Ya he leído varios de tus mensajes en la comunidad y tus
planteamientos siempre son un poco controversiales, hasta
radicales en algunos casos.



Lo son en un foro de programadores, pero en un foro de DBAs mis
planteamientos son muy ortodoxos.

Todo lo que digo lo puedes comprobar en cualquier texto universitario
de introducción a las bases de datos.

Apuestas mucho a la
utilización de los SGBD para resolver los problemas.



Apuesto mucho por los Sistemas de Gestión de Bases de Datos para
gestionar bases de datos.

Yo no lo veo tan raro :)

Mi pregunta sobre los dataset no intenta decir si son
estos almacenes de datos temporales o no, lo son



La pregunta era reemplazar los datasets por clases personalizadas o
no, y la respuesta es: rotundamente NO.

, el
problema es ¿donde estan los objetos?.



Los objetos están dentro de las tablas. La intersección entre una fila
y una columna es un objeto.

Un dataSet es una
colleccion de tuplas de la base de datos, esto no es un
objeto.



Un datasSet también es un objeto por que pertenece a la aplicación y
los lenguajes OO solo soportan objetos, no tablas ni tuplas.

Como representas univocamente una entidad del mundo real
en una clase con los dataset de por medio.



Pues en el caso de entidades como Persona, Artículo, etc, no se
representan como clases, se representan como tuplas en tablas.

Una entidad como una dirección se puede representar como un objeto de
tipo cadena y un salario como un objeto de tipo numérico.

¿Como
representas a "juan" a "pedro" con todas las propiedades
y MÉTODOS que los caracterizan.



A las personas no las caracteriza ningún método (procedimiento), y a
Juan y a Pedro los represento como tuplas en tablas y su
comportamiento se define mediante restricciones, vistas y
procedimientos almacenados, que son lo mismo que los métodos.

, por ejemplo
un metodo de calculo de salario para una persona en
particular.



Es que ese tipo de cálculo no debe de hacerse en las


aplicaciones,

Que colocas en tu capa de logica de negocio??



Pues todas las reglas de negocio. La capa de lógica de negocio está
con el SGBD y la capa de presentación con la aplicación.


http://www.mailxmail.com/tienda/articulo774


Es link no existe, prodias colocarme un valido, por favor.



A mi me funciona perfectamente.

El libro se llama:

"Introducción a los sistemas de Bases de Datos"
Autor: C. J. Date
ISBN: 968-444-419-2
Editorial: Pearson Educación

Por último, siempre expones mucha teoría en tus mensajes,
por que no colocas algo práctico... cual fue la solución
a la cual llegaste para resolver este problema..



En este caso la solución práctica es seguir con los DataSet y no hacer
caso a lo que dice ese artículo.


Saludos
Respuesta Responder a este mensaje
#4 ErickGB
11/07/2005 - 22:02 | Informe spam
Apuesto mucho por los Sistemas de Gestión de Bases de


Datos para
gestionar bases de datos.

Yo no lo veo tan raro :)



no digo que sea raro, sino que es tu postura.

eres programador .net o dba?

Pues en el caso de entidades como Persona, Artículo,


etc, no se
representan como clases, se representan como tuplas en


tablas.

En tu aplicación como representas estos objetos...?

Pues todas las reglas de negocio. La capa de lógica de


negocio está
con el SGBD y la capa de presentación con la aplicación.




Quiere decir que tus aplicaciones solo tienen una capa,
la de presentación.


On Mon, 11 Jul 2005 08:26:07 -0700, "ErickGB"
wrote:

Ya he leído varios de tus mensajes en la comunidad y




tus
planteamientos siempre son un poco controversiales,




hasta
radicales en algunos casos.



Lo son en un foro de programadores, pero en un foro de


DBAs mis
planteamientos son muy ortodoxos.

Todo lo que digo lo puedes comprobar en cualquier texto


universitario
de introducción a las bases de datos.

Apuestas mucho a la
utilización de los SGBD para resolver los problemas.



Apuesto mucho por los Sistemas de Gestión de Bases de


Datos para
gestionar bases de datos.

Yo no lo veo tan raro :)

Mi pregunta sobre los dataset no intenta decir si son
estos almacenes de datos temporales o no, lo son



La pregunta era reemplazar los datasets por clases


personalizadas o
no, y la respuesta es: rotundamente NO.

, el
problema es ¿donde estan los objetos?.



Los objetos están dentro de las tablas. La intersección


entre una fila
y una columna es un objeto.

Un dataSet es una
colleccion de tuplas de la base de datos, esto no es un
objeto.



Un datasSet también es un objeto por que pertenece a la


aplicación y
los lenguajes OO solo soportan objetos, no tablas ni


tuplas.

Como representas univocamente una entidad del mundo




real
en una clase con los dataset de por medio.



Pues en el caso de entidades como Persona, Artículo,


etc, no se
representan como clases, se representan como tuplas en


tablas.

Una entidad como una dirección se puede representar como


un objeto de
tipo cadena y un salario como un objeto de tipo numérico.

¿Como
representas a "juan" a "pedro" con todas las




propiedades
y MÉTODOS que los caracterizan.



A las personas no las caracteriza ningún método


(procedimiento), y a
Juan y a Pedro los represento como tuplas en tablas y su
comportamiento se define mediante restricciones, vistas y
procedimientos almacenados, que son lo mismo que los


métodos.

, por ejemplo
un metodo de calculo de salario para una persona en
particular.



Es que ese tipo de cálculo no debe de hacerse en las


aplicaciones,

Que colocas en tu capa de logica de negocio??



Pues todas las reglas de negocio. La capa de lógica de


negocio está
con el SGBD y la capa de presentación con la aplicación.


http://www.mailxmail.com/tienda/articulo774


Es link no existe, prodias colocarme un valido, por




favor.

A mi me funciona perfectamente.

El libro se llama:

"Introducción a los sistemas de Bases de Datos"
Autor: C. J. Date
ISBN: 968-444-419-2
Editorial: Pearson Educación

Por último, siempre expones mucha teoría en tus




mensajes,
por que no colocas algo práctico... cual fue la




solución
a la cual llegaste para resolver este problema..



En este caso la solución práctica es seguir con los


DataSet y no hacer
caso a lo que dice ese artículo.


Saludos
.

Respuesta Responder a este mensaje
#5 Alfredo Novoa
11/07/2005 - 23:08 | Informe spam
On Mon, 11 Jul 2005 13:02:04 -0700, "ErickGB"
wrote:

eres programador .net o dba?



Se hacer las dos cosas, no es tan dificil.

Pues en el caso de entidades como Persona, Artículo,


etc, no se
representan como clases, se representan como tuplas en


tablas.

En tu aplicación como representas estos objetos...?



Pues usando grids, edits, comboboxes, radiobuttons, etc.

Pues todas las reglas de negocio. La capa de lógica de


negocio está
con el SGBD y la capa de presentación con la aplicación.



Quiere decir que tus aplicaciones solo tienen una capa,
la de presentación.



No, lo que quiere decir es que en mis Sistemas de Información, las
aplicaciones SON la capa de presentación.

No es suficiente poner la lógica de negocio en una capa separada pero
dentro de las aplicaciones (sigue siendo un sistema monolítico), la
lógica de negocio hay que sacarla fuera de las aplicaciones. Esto es
algo muy elemental.

Parece que hay mucha gente que confunde los Sistemas de Información
con las aplicaciones. Las aplicaciones son solo una parte de un
Sistema de Información: la capa de presentación y comunicación con los
usuarios.

Para crear un Sistema de Información además de programadores se
necesitan expertos en bases de datos, pero desgraciadamente en la
práctica muchas veces solo hay programadores, y así pasa lo que pasa.


Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida