Refrescar automáticamente

18/04/2005 - 18:04 por Jorge Eastman | Informe spam
Hola grupo.

Hasta ahora estoy estudiando C# con la finalidad de desarrollar aplicaciones
3-capas y tengo una pregunta:

Suponiendo que tengo una ventana (form) para que el usuario pueda registrar
clientes, en el mismo tengo un combo en el cual se debe seleccionar el tipo
de cliente.

Al momento en que le usuario va a cargar los datos de un cliente se entera
que no tiene en el combo el tipo deseado, abre la ventana de mantenimiento
de Tipos de Clientes, registra el nuevo tipo y regresa a la ventana de
clientes para continuar.

Tomando en cuenta que la lógica del negocio está en el servidor de
aplicaciones, como podemos hacer para que ese combo en la ventana de
clientes se actualice solo si efectivamente hay cambios como este o se ha
eliminado un tipo, incluso, aun cuando el cambio haya sido realizado por
otro usuario en otra estación de trabajo.

Este es un caso hipotético pero creo que muestra lo que busco.

A quien me pueda dar una pista de por donde puedo comenzar a buscar
información se lo agradezco.

Un saludo para todos.

Jorge Eastman

Preguntas similare

Leer las respuestas

#1 Anonimo
19/04/2005 - 10:01 | Informe spam
Que tal un ObserverPattern
Hola grupo.

Hasta ahora estoy estudiando C# con la finalidad de


desarrollar aplicaciones
3-capas y tengo una pregunta:

Suponiendo que tengo una ventana (form) para que el


usuario pueda registrar
clientes, en el mismo tengo un combo en el cual se debe


seleccionar el tipo
de cliente.

Al momento en que le usuario va a cargar los datos de un


cliente se entera
que no tiene en el combo el tipo deseado, abre la ventana


de mantenimiento
de Tipos de Clientes, registra el nuevo tipo y regresa a


la ventana de
clientes para continuar.

Tomando en cuenta que la lógica del negocio está en el


servidor de
aplicaciones, como podemos hacer para que ese combo en la


ventana de
clientes se actualice solo si efectivamente hay cambios


como este o se ha
eliminado un tipo, incluso, aun cuando el cambio haya


sido realizado por
otro usuario en otra estación de trabajo.

Este es un caso hipotético pero creo que muestra lo que


busco.

A quien me pueda dar una pista de por donde puedo


comenzar a buscar
información se lo agradezco.

Un saludo para todos.

Jorge Eastman



.

Respuesta Responder a este mensaje
#2 Anonimo
19/04/2005 - 10:51 | Informe spam
Como te han dicho antes, necesitas un patrón observador.

¿Y qué es esto? Pues bien, es un mecanismo que debes
montarte para que los formularios puedan hablar entre si.

En mi aplicación lo que tengo es lo siguiente:

FormularioPrincipal : FormularioGenerico

FormularioHijo : FormularioGenerico.


Cuando creo un formularioHijo (y cuando lo cierro) añado o
quito la referencia en FormularioPrincipal.

Ahora viene la parte interesante, dentro del código de
FormularioGenerico creo 2 métodos:

public heCambiado(object sender,string causa)

public virtual refrescar(object quienCambia,string causa)


Cuando un formularioGenerico cambia, avisa al
FormularioPrincipal de que ha cambiado. El
formularioPrincipal recorre la lista de formularios hijos
llamando a cada uno de ellos su método refrescar. (Un
simple foreach)
Lo que hagan los hijos en refrescar lo decides tu al
sobreescribir el método.
Hola grupo.

Hasta ahora estoy estudiando C# con la finalidad de


desarrollar aplicaciones
3-capas y tengo una pregunta:

Suponiendo que tengo una ventana (form) para que el


usuario pueda registrar
clientes, en el mismo tengo un combo en el cual se debe


seleccionar el tipo
de cliente.

Al momento en que le usuario va a cargar los datos de un


cliente se entera
que no tiene en el combo el tipo deseado, abre la ventana


de mantenimiento
de Tipos de Clientes, registra el nuevo tipo y regresa a


la ventana de
clientes para continuar.

Tomando en cuenta que la lógica del negocio está en el


servidor de
aplicaciones, como podemos hacer para que ese combo en la


ventana de
clientes se actualice solo si efectivamente hay cambios


como este o se ha
eliminado un tipo, incluso, aun cuando el cambio haya sido


realizado por
otro usuario en otra estación de trabajo.

Este es un caso hipotético pero creo que muestra lo que busco.

A quien me pueda dar una pista de por donde puedo comenzar


a buscar
información se lo agradezco.

Un saludo para todos.

Jorge Eastman



.

Respuesta Responder a este mensaje
#3 Jorge Eastman
20/04/2005 - 02:40 | Informe spam
Me parece muy bien y de hecho lo voy a probar, esto me soluciona el problema
cuando el cambio ha sido realizado dentro de la misma aplicación.

Ahora, que sucede si el cambio ha sido realizado desde otra aplicación?

Yo hice en VB6 una prueba con COM+ de la forma siguiente:

En el servidor de aplicaciones tenía un conectar para cada clase, en
realidad era una collection, las clases no podían ser instanciadas
públicamente:

Cuando el cliente se conectaba a la collection (conector) este revisaba, si
no existía una instancia la creaba, incrementaba un contador y retornaba una
refererncia al cliente del objeto.

El conector manejaba una interface para Callback, si alguien hacía una
modificación se hacía la llamada al Callback que debería estar implementada
en cada cliente, con lo cual estos conocían del cambio, en el caso de los
combo se hacía un refresh.

Mi deseo es ver una manera de hacer esto en C#, tomando en cuenta el
desarrollo en 3-capas y de una manera bastante obtima, es decir, sin mucho
consumo de resursos, ah, todo con Windows forms.

Gracias a todos, ojalá podamos manetener esta discución.

Jorge Eastman (jeastman)


escribió en el mensaje
news:1f9001c544bd$09eecd80$

Como te han dicho antes, necesitas un patrón observador.

¿Y qué es esto? Pues bien, es un mecanismo que debes
montarte para que los formularios puedan hablar entre si.

En mi aplicación lo que tengo es lo siguiente:

FormularioPrincipal : FormularioGenerico

FormularioHijo : FormularioGenerico.


Cuando creo un formularioHijo (y cuando lo cierro) añado o
quito la referencia en FormularioPrincipal.

Ahora viene la parte interesante, dentro del código de
FormularioGenerico creo 2 métodos:

public heCambiado(object sender,string causa)

public virtual refrescar(object quienCambia,string causa)


Cuando un formularioGenerico cambia, avisa al
FormularioPrincipal de que ha cambiado. El
formularioPrincipal recorre la lista de formularios hijos
llamando a cada uno de ellos su método refrescar. (Un
simple foreach)
Lo que hagan los hijos en refrescar lo decides tu al
sobreescribir el método.
Hola grupo.

Hasta ahora estoy estudiando C# con la finalidad de


desarrollar aplicaciones
3-capas y tengo una pregunta:

Suponiendo que tengo una ventana (form) para que el


usuario pueda registrar
clientes, en el mismo tengo un combo en el cual se debe


seleccionar el tipo
de cliente.

Al momento en que le usuario va a cargar los datos de un


cliente se entera
que no tiene en el combo el tipo deseado, abre la ventana


de mantenimiento
de Tipos de Clientes, registra el nuevo tipo y regresa a


la ventana de
clientes para continuar.

Tomando en cuenta que la lógica del negocio está en el


servidor de
aplicaciones, como podemos hacer para que ese combo en la


ventana de
clientes se actualice solo si efectivamente hay cambios


como este o se ha
eliminado un tipo, incluso, aun cuando el cambio haya sido


realizado por
otro usuario en otra estación de trabajo.

Este es un caso hipotético pero creo que muestra lo que busco.

A quien me pueda dar una pista de por donde puedo comenzar


a buscar
información se lo agradezco.

Un saludo para todos.

Jorge Eastman



.

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