2006/12/21, Diego Gomez Deck <[EMAIL PROTECTED]>:


> -Tenes pensado tener algun modo tipo "desconectado" hasta que se hace
> un submit? -
> -Tenes pensado dar soporte para transacciones y buffer de modelos?

La forma m s f cil (y creo, m s limpia) de hacer esto es instanciar OTRO
objeto.  Si es una modificaci n, se puede clonar el objeto original,
editar el clon, y actualizar el modelo (desde su clon) at micamente.

Lo bueno de esta forma es que tanto el objeto "InEdition" como el
original, son modelo completos... ergo se aplica toda la l gica del
modelo.


Si, es lo habitual pero no es tan facil de implementar para que funcione
bien en todos los casos sobre todo si estamos aprovechandonos de la
navegabilidad entre objetos que se conocen entre si y peor aun si se conocen
en forma global con lo cual un buffer se torna muy dificil de implementar.
Yo creo por ahora que la solucion de clonar el original es valida siempre y
cuando tratemos de que sea casi atomica para el objeto a editar en cuestion
y no se expanda a sus colecciones internas y en adelante. Ahi se vuelve mas
dificil de manejar el clon sobre todo por las relaciones que pueden existir
con otros objetos y empeorando si hay posibilidad de tener mas de una sesion
cliente viendo los mismos objetos.

Adicionalmente a esto estamos explorando la posibilidad de no manejar copias
y utilizar un mecanismo para revertir cambios reinstanciando el objeto desde
la copia en la base de datos, puede ser reinstanciando su contenido,
manteniendo la identidad o atreviendose a un #become:

�Alguna experiencia al respecto, consejos?

Cuando se crea un objeto nuevo, tambi n se instancia una versi n para
edici n... que no se ingresa al sistema hasta que est aceptado/validado.

En estos casos soy mas flexible, estoy de acuerdo con eso pero suelo
preferir que un #new me deje el objeto en un estado valido, creo que es mas
comodo y solo manejas la modalidad de edicion no? Ademas a veces para
resolver siertas validaciones te hace falta que el objeto ya est"enganchado" al sistema (ocurre muy pocas veces). Lamentablemente las reglas
de negocios suelen ser tan dispares que encontrar una unica solucion es
dificil.

Esto dispara otro hilo interesante, paralelo a este:

 >     -  C mo manipular los objetos con estados intermedios/inv lidos?
>      -  Se permite la instanciaci n de objetos inv lidos?
      -  C mo se refleja, en el modelo, que algunas partes de un
>      objeto son obligatorias?

Si les parece, podemos charlar un poco sobre esto.

Me encantaria

Saludos
 GallegO

--~--~---------~--~----~------------~-------~--~----~
 Ha recibido este mensaje porque est� suscrito a Grupo "clubSmalltalk" de 
Grupos de Google.
Si quieres publicar en este grupo, env�a un mensaje de correo electr�nico a [email protected]
Para anular la suscripci�n a este grupo, env�e un mensaje a [EMAIL PROTECTED]
Para obtener m�s opciones, visita este grupo en 
http://groups-beta.google.com/group/clubSmalltalk?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a