none
Comunicar dos aplicaciones independientes. RRS feed

  • Pregunta

  • Hola.

    Necesito saber como comunicar dos aplicaciones desarrollladas en visual studio 2008.

    Tengo una aplicacion que es un addin de outlook.

    Lo que necesito es que se comunique con otra aplicacion que se ejecutara como proceso de sistema.

    Necesito que el addin mande cuando sea necesario a la otra aplicacion unos datos referentes a contactos para actualizarlos en una base de datos comun.

    Esta aplicacion externa se comunica con una base de datos sqlserver.

    Si teneis alguna idea seria de gran ayuda.

    viernes, 18 de junio de 2010 16:28

Respuestas

Todas las respuestas

  • hola

    estas dos aplicaciones se ejecutan en la misma PC, imagino que si porque dices "otra aplicacion que se ejecutara como proceso de sistema.", pero para confirmar ?

    igualmente la solucion que se me ocurre es que uses WCF

    con este podrias hacer que tu aplicacion (que sua la db) exponga servicio con funcionalidad

    y que el AddIn acceda a este como cliente y utilice esto como medio de comunicacion

    Windows Communication Foundation
    Ejemplos de tecnolog í a b á sica de Windows Communication Foundation

    si tu aplicacion "proceso de sistema" es que corre como Servicio de Windows, esta podria hostear ella misma la funcionalidad, en los links lo explica, pero como todo nuevo seguro algo de tiempo te lleve aprender a usar WCF, este tiene algunos conceptos que hay que aprender

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 18 de junio de 2010 16:35
  • Gracias, voy a informarme sobre esto que comentas a ver si me sirve.

    Si hay alguna otra opcion y la posteais ...

    Por cierto, si que es en la misma maquina, y que se ejecute como proceso de sistema es secundario.

    Lo principal seria como conseguir comunicar dos ejecutables de c# independientes bilateralmente.

    lunes, 21 de junio de 2010 7:35
  • Por lo que veo, este servicio se usa para aplicaciones servidor cliente a traves de internet sobre todo. Yo realmente tengo las dos aplicaciones dentro de la misma maquina, no me hace falta que la comunicacion tenga salida a la red. Simplemente haria falta algun modo de comunicarlas entre ellas pasando cadenas de texto. Veo que con esto lo podria desarrollar, pero no se si hay algo mas simple.
    lunes, 21 de junio de 2010 15:07
  • hola

    WCF no es solo para comunicar aplciaciones en internet, o en la red local, lo que intenta reemplzxar es la programacion por socket y lo complejo que son desarrollarlas

    el tema es que aunque tus aplicaciones estan en la misma pc son independientes, corren en distintos procesos, se puede programar procesos y acceder de uno a otro, pero puedo asegurar que es muchisimo mas complejo que usas WCF, es por eso que lo recomendaba

    mas alla que esten locales puede hacer que escuchen en un puerto local de la mism pc y se comuniquen localmente, no necesariamente tienen que estar en internet o expuestas a la red para trabajar con esta tecnologia, aunque es a donde apuntas

    sino la otras alternativas podrian ser programar socket o sino usar Hook de procesos, pero esto ya involucra usar el api de Windows, que es muy complejo

    Using Hooks from C#

    Managing Low-Level Keyboard Hooks in VB .NET

    A Simple C# Global Low Level Keyboard Hook

    de esta forma desde una aplciacion podrias controlar otra

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 21 de junio de 2010 15:17
  • Muchas gracias por tu ayuda.

    Voy a intentar hacerlo con wcf. Si tengo alguna duda o problema o con lo que consigua os informo.

    lunes, 21 de junio de 2010 15:52
  • Leyendome la documentacion, me ha surgido una duda.

    Una vez creada la aplicacion y el servicio y cliente wcf, ¿Tendre muchos problemas para instalarlo en otras maquinas?

    Necesito tener un instalador unico que instale la aplicacion completa en cualquier otro equipo.

    Ahora tengo uno en mi aplicacion actual que ya instala prerequisitos y crea claves de registro necesarias para el addin y su clave.

    He visto que para instalar los ejemplos hay que seguir unos cuantos pasos escribiendo cosas incluso en la consola del visual studio.

     

     

    martes, 22 de junio de 2010 9:28
  • Hola,

     

    porqué no pruebas con programacion con sockets, realizas la comunicaion entre las aplicaciones en el mismo equipo y si es necesario en diferentes equipos. o lo he probado con addin pero si con muchas otras aplicaciones.

     

    saludos,

     

    Luis Goico

    sábado, 20 de agosto de 2011 14:43
  • Leyendome la documentacion, me ha surgido una duda.

    Una vez creada la aplicacion y el servicio y cliente wcf, ¿Tendre muchos problemas para instalarlo en otras maquinas?

    Necesito tener un instalador unico que instale la aplicacion completa en cualquier otro equipo.

    Ahora tengo uno en mi aplicacion actual que ya instala prerequisitos y crea claves de registro necesarias para el addin y su clave.

    He visto que para instalar los ejemplos hay que seguir unos cuantos pasos escribiendo cosas incluso en la consola del visual studio.

     

     

    Tu cliente y servidor de WCF deberian ser tus dos aplicaciones ya existentes, que se comunicarian utilizando pipes, asi que no haría falta instalar nada más.
    Vicente Cartas Espinel - MVP XNA/DirectX

    Twitter - VicenteCartas

    Blog about C# and XNA Development

    Blog about Role Playing Games

    sábado, 20 de agosto de 2011 16:26