¿Cómo comunicar dos instancias de un mismo ejecutable en VB.NET? AYUDA ....!

Iniciado por knowledgeHunterX, 30 Mayo 2014, 03:05 AM

0 Miembros y 1 Visitante están viendo este tema.

knowledgeHunterX

Hola a todos, Bueno tengo les cuento, estoy desarrollando una aplicacion sencilla en VB.NET, que básicamente es un mantenimiento, mi duda es:

¿Cómo hago para que cuándo abra dos o más veces el mismo ejecutable de la aplicación y por ejemplo se agregue un nuevo usuario en el gridview1, se actualice en tiempo real en todas las demás instancias del mismo ejecutable que abrí anteriormente?

Osea lo que quiero que me ayuden es a sincronizar en tiempo real todas las instancias del mismo ejecutable que abra.

Por favor soy nuevo aquí, pero necesito mucho su ayuda, es muy urgente.

Gracias a todos de antemano.

Alguién tiene alguna idea??? , porque estoy con esto desde hace 3 días y no puedo resolverlo.

cuenta003

Hola.
No se mucho sobre threads pero cada instancia de la aplicación trabajara una porcion de memoria independiente una de la otra.
Lo que puedes hacer es tal vez escribir en un archivo; he visto por  ejemplo cuando usas varias instancias de un editor de texto y usas el mismo archivo cuando modificas este las demás instancias te preguntan si quieres recargar nuevamente el archivo porque sufrió modificaciones.
Ojalá encuentres la solución y puedas compartirla.
Saludos.

elezekiel

Van a trabajar en una lan o las aplicaciones deben comunicarse a traves de internet?

kub0x

IPC (Inter process communication) via shared memory (memoria compartida) o named pipes. De esta forma conectaras tus aplicaciones comodamente. Si entiendes de Sockets y aprender esto te supone un esfuerzo (nunca esta de más aprender...) pues hazlo con sockets, eso si, estas técnicas aquí descritas son más óptimas.

Un saludo!
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


knowledgeHunterX

Cita de: elezekiel en 30 Mayo 2014, 05:18 AM
Van a trabajar en una lan o las aplicaciones deben comunicarse a traves de internet?

La verdad es que primero quiero que me salga de manera local y ya luego implementarlo a nivel de red lan.

knowledgeHunterX

#5
Cita de: kub0x en 30 Mayo 2014, 13:33 PM
IPC (Inter process communication) via shared memory (memoria compartida) o named pipes. De esta forma conectaras tus aplicaciones comodamente. Si entiendes de Sockets y aprender esto te supone un esfuerzo (nunca esta de más aprender...) pues hazlo con sockets, eso si, estas técnicas aquí descritas son más óptimas.

Un saludo!

La verdad nosé mucho de sockets (sólo leí algo de teoría), pero por lo que he leído por ahí, los "SOCKETS" sólo funcionan para comunicar datos entre aplicaciones a nivel LOCAL o a nivel de una RED LAN, pero siempre y cuando sean "Formularios Distintos", osea por ejemplo, enviar datos del Form1 al Form2, pero no estoy seguro, pero creo que no se puede pasar informacion entre dos instancias ejecutadas del mismo formulario, osea al abrir el Form1 más de 2 veces y cuándo se agregue un nuevo usuario en el DataGridView1 se vea reflejado al instante en todas las demás instancias abiertas del mismo Form1.
Si estoy equivocado porfavor te pido que me corrigas y me digas como hacerlo con Sockets, si es que se puede claro.
Te pediría que me pases un ejemplo sencillo, aunque sea enviar un texto de un TextBox al otro del mismo formulario con Sockets, porfavor!

Gracias de antemano kub0x.
Saludos!

elezekiel

Si queres actualizar el grid en tiempo real, el mismo debe cargar su informacion partiendo de una base de datos única, a la cual accedan todas las aplicaciones, creo que seria lo mas sencillo.

Ya que si cargas desde la app1, la app3 si hace "refresh" cargara los datos de la base de datos y obtendra lo recien agregado desde la app 1, se entiende?

Tendrias que calibrar y ver el tema de permisos de edicion y demas pero creo que eso es lo podes dejar para despues.

Saluud


XresH

Cita de: elezekiel en 31 Mayo 2014, 00:32 AM
Si queres actualizar el grid en tiempo real, el mismo debe cargar su informacion partiendo de una base de datos única, a la cual accedan todas las aplicaciones, creo que seria lo mas sencillo.

Ya que si cargas desde la app1, la app3 si hace "refresh" cargara los datos de la base de datos y obtendra lo recien agregado desde la app 1, se entiende?

Tendrias que calibrar y ver el tema de permisos de edicion y demas pero creo que eso es lo podes dejar para despues.

Saluud



Lo hice pero era para una LAN, trabajando 7 aplicaciones a la vez y administrando los permisos que decis de edicion y lo demas.

Para internet si tiene que aplicar sockets, es otro trabajito pero es posible, no tiene otra.

Saludos gente.
[ - Si eres programador y quieres que tus proyectos esten en mi blog(con o sin source), consúltame! - ]
Entra A Mi Blog De Programación | | Dudas en este post :| | >>Clic para ir al Post<<

kub0x

Si la aplicación no sale de tu PC -> IPC
Si la aplicación la utilizas en un entorno de red (LAN/WAN) -> Sockets

Tendrás que implementar la arquitectura cliente/servidor para intercambiar información o actualizar todos los clientes en cascada.

Un saludo!
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


knowledgeHunterX

#9
Cita de: kub0x en 31 Mayo 2014, 14:57 PM
Si la aplicación no sale de tu PC -> IPC
Si la aplicación la utilizas en un entorno de red (LAN/WAN) -> Sockets

Tendrás que implementar la arquitectura cliente/servidor para intercambiar información o actualizar todos los clientes en cascada.

Un saludo!

Hola kub0x, te quería pedir porfavor si me puedes poner un ejemplo sencillo con CÓDIGO de IPC mediante el mecanismo "Shared Memory" para modo LOCAL y SOCKETS para modo de RED, te lo agradecería mucho!

Saludos.