Encapsulamiento de datarows

13/04/2006 - 23:09 por msnews.com | Informe spam
Hola a todos
Tengo una aplicacion OO que utiliza typed dataset para almacenar las
entidades, pero me gustaria encapsularlas en clases para que no se viera que
son datasets y lo primero que se me ocurrio fue heredar un typed datarow,
pero al momento de querer asignar la instancia hacia mi clase, me marca
error "System.InvalidCastException"
Return DirectCast(drCliente, Cliente)

Existe alguna manera facil de encapsular la informacion sin tener que hacer
mucho retrabajo a mano?

Me estoy complicando las cosas y me recomendarian dejar las entidades como
typed datarows?

Si hago esto ultimo, como asignarle comportamiento especifico a las
entidades? Se puede heredar en especializaciones? Como agregar un campo que
sea de un tipo definido en el sistema?

Saludos y gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua
16/04/2006 - 06:48 | Informe spam
"msnews.com" escribió en el mensaje
news:
Hola a todos
Tengo una aplicacion OO que utiliza typed dataset para almacenar las
entidades, pero me gustaria encapsularlas en clases para que no se viera
que son datasets y lo primero que se me ocurrio fue heredar un typed
datarow, pero al momento de querer asignar la instancia hacia mi clase, me
marca error "System.InvalidCastException"
Return DirectCast(drCliente, Cliente)

Existe alguna manera facil de encapsular la informacion sin tener que
hacer mucho retrabajo a mano?

Me estoy complicando las cosas y me recomendarian dejar las entidades como
typed datarows?

Si hago esto ultimo, como asignarle comportamiento especifico a las
entidades? Se puede heredar en especializaciones? Como agregar un campo
que sea de un tipo definido en el sistema?



Hola, "mvazlop"

Cuando dices "encapsular un datarow" describes exactamente un método
bastante comun y eficaz.

Pero la herencia no es la manera correcta de encapsular. La herencia se
utiliza para obtener un objeto especializado a partir de un objeto más
general. Y un cliente no *es* un data row: de ahi tus inconvenientes.

Dentro de la implementacion de la clase Cliente puedes utilizar un datarow
para contener los datos que describen sus atributos y estados en un momento
dado, tal vez como una variable privada, a cuyas columnas accedes mediante
propiedades.

Desafortunadamente, este metodo requiere de un esfuerzo considerable de
escritura. La parte buena es que esta tarea de escritura es tan facil que la
tarea de generar automaticamente el codigo a partir de las definiciones es
casi trivial (tan facil como una tarea de primer semestre). Hace poco habia
una herramienta gratuita llamda CodeSmith, que te permite generar codigo a
partir de plantillas definidas en un lenguaje tipo ASP. Es decir, todavia
existe, pero ya no es gratis.

Mira el hilo titulado "Problemas con ua Clase Heredada", del 23 de marzo, en
el que se discute una inquietud parecida a la tuya.

Salud!
Respuesta Responder a este mensaje
#2 Jesús López
20/04/2006 - 12:56 | Informe spam
¿Qué problema hay en que se vea que son datasets?

¿Es que los datasets están mal vistos o algo parecido :-)?

Saludos:

Jesús López
Solid Quality Learning
www.solidqualitylearning.com



"msnews.com" escribió:

Hola a todos
Tengo una aplicacion OO que utiliza typed dataset para almacenar las
entidades, pero me gustaria encapsularlas en clases para que no se viera que
son datasets y lo primero que se me ocurrio fue heredar un typed datarow,
pero al momento de querer asignar la instancia hacia mi clase, me marca
error "System.InvalidCastException"
Return DirectCast(drCliente, Cliente)

Existe alguna manera facil de encapsular la informacion sin tener que hacer
mucho retrabajo a mano?

Me estoy complicando las cosas y me recomendarian dejar las entidades como
typed datarows?

Si hago esto ultimo, como asignarle comportamiento especifico a las
entidades? Se puede heredar en especializaciones? Como agregar un campo que
sea de un tipo definido en el sistema?

Saludos y gracias de antemano.



Respuesta Responder a este mensaje
#3 miguel
24/04/2006 - 21:28 | Informe spam
Realmente, ese no es el problema principal.
Lo que realmente necesito es poder ponerle una propiedad a la entidad, de un
tipo definido en el sistema. Esto con los datarows o datasets no se si se
pueda, pero no lo he podido hacer.


"Jesús López" escribió en el mensaje
news:
¿Qué problema hay en que se vea que son datasets?

¿Es que los datasets están mal vistos o algo parecido :-)?

Saludos:

Jesús López
Solid Quality Learning
www.solidqualitylearning.com



"msnews.com" escribió:

Hola a todos
Tengo una aplicacion OO que utiliza typed dataset para almacenar las
entidades, pero me gustaria encapsularlas en clases para que no se viera
que
son datasets y lo primero que se me ocurrio fue heredar un typed datarow,
pero al momento de querer asignar la instancia hacia mi clase, me marca
error "System.InvalidCastException"
Return DirectCast(drCliente, Cliente)

Existe alguna manera facil de encapsular la informacion sin tener que
hacer
mucho retrabajo a mano?

Me estoy complicando las cosas y me recomendarian dejar las entidades
como
typed datarows?

Si hago esto ultimo, como asignarle comportamiento especifico a las
entidades? Se puede heredar en especializaciones? Como agregar un campo
que
sea de un tipo definido en el sistema?

Saludos y gracias de antemano.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida