2010-01-17 23 views
15

Tengo dos programas C# y deseo enviar algunos datos entre ellos. (Y compruebe si los datos llegaron a la otra aplicación.) Los dos programas siempre se ejecutarán en la misma computadora, por lo que no se requiere capacidad de red. Ya he leído algunas preguntas con temas similares aquí, pero no estoy del todo seguro de cuál es el método correcto para mí. (WCF, Remoting, etc.)Comunicación entre aplicaciones C#: la manera fácil

Lo que quiero saber, ¿cuál es el más fácil de implementar para un principiante en C#? (no quiero que se vuelva demasiado complicado de todos modos, son sólo unos pocos enteros y texto que quiero enviar)

Si no hay una diferencia real en la dificultad, ¿qué ventajas tiene uno sobre ¿el otro?

Realmente agradecería algún código de ejemplo simple.

Gracias de antemano.

+2

Nada que agregar a las recomendaciones de WCF, pero aléjate de Remoting. La mensajería a la WCF es muy preferible a la manipulación íntima de objetos de otras aplicaciones a la Remoting. – itowlson

Respuesta

11

WCF esencialmente empaqueta los diversos métodos de comunicación entre aplicaciones (servicios web, comunicación remota, MSMQ, etc.) en un solo paquete, de modo que sean programáticamente iguales en la forma en que se usan, y el detalle de qué método se utiliza se deja para la configuración de la unión entre. Una ligera simplificación tal vez, pero esencialmente de lo que se trata.

Vale la pena entrar en WCF si necesita comunicación entre procesos, y este sería sin duda mi consejo en cuanto a la forma de hacerlo. Vale la pena mirar IDesign, que produce una serie de artículos sobre el tema, así como algunas bibliotecas de códigos reutilizables, que pueden serle útiles. Su Juval Lowy también ha escrito un excellent book sobre el tema,

+0

Gracias por el resumen rápido y los enlaces, realmente ayudó a obtener una buena visión general de WCF. –

13

Puede usar Pipes para enviar datos entre las diferentes instancias de su aplicación. Si solo necesita decirle a la otra instancia que ha sucedido algo, puede enviar mensajes de una aplicación a otra utilizando la API SendMessage.

+3

La mejor sugerencia, simple y confiable. Olvídate de WCF, es ridículamente sobrediseñado. – dpurrington

+0

Tenga en cuenta que [msdn] (https://msdn.microsoft.com/en-us/library/system.io.pipes.anonymouspipeserverstream (v = vs.110) .aspx) dice que las tuberías anónimas se definen como una: camino. –

+0

Desearía poder votar dos veces. WCF es un cerdo. Preferiría utilizar archivos para la comunicación de aplicaciones si esas fueran mis únicas opciones. –

5

Otro buen punto acerca de WCF es que si sus requisitos cambian alguna vez y de repente tiene que mover una de las aplicaciones a una máquina diferente, necesitando ahora la capacidad de red, solo necesitará cambiar la configuración en ambos lados, en lugar de tener que recodificar

Plus, ad David dijo, WCF es una buena herramienta para tener en su bolso.

Cheers, Wagner.

2

Encontré que MSMQ es fácil de implementar.

Cuestiones relacionadas