81 votos

¿Cuál es la mejor opción para la comunicación entre procesos .NET?

¿Debo usar canalizaciones con nombre, o .NET Remoting para comunicarse con un proceso en ejecución en mi máquina?

58voto

spoon16 Puntos 17694

WCF es la mejor opción. Soporta un número de diferentes mecanismos de transporte (incluyendo el Nombre de Tuberías) y puede ser completamente configuración de motor. Yo recomendaría altamente que usted echa un vistazo a WCF.

Aquí hay un blog que hace un WCF vs Remoting comparación de rendimiento.

Una cita del blog:

El WCF y .NET Remoting son realmente comparables en el rendimiento. Las diferencias son tan pequeñas (medición de la latencia de cliente) que no importa que uno es un poco más rápido. WCF pesar de que tiene mucho mejor rendimiento del servidor de .NET Remoting. Si me gustaría empezar completamente de nuevo proyecto que hubiera escogido el WCF. De todos modos el WCF hace mucho más que Remoting y por todas esas características, me encanta.

MSDN Sección de WCF

15voto

Mark Cidade Puntos 53945

Si es en una sola máquina, canalizaciones con nombre le da mejor rendimiento y se puede implementar con la infraestructura de comunicación remota , así como de WCF. O se puede utilizar directamente System.IO.Pipes.

5voto

Dario Solera Puntos 2804

Si te refieres a la comunicación entre procesos, usé .NET Remoting sin ningún problema hasta ahora. Si los dos procesos están en la misma máquina, la comunicación es bastante rápida.

Canalizaciones son definitivamente más eficientes, pero que requieren el diseño de al menos un protocolo de aplicación básica, que puede no ser factible. Comunicación remota le permite invocar métodos remotos con facilidad.

3voto

Jason Olson Puntos 2752

Si usted está usando el .NET Framework 3.0 o superior, me gustaría utilizar WCF. Con WCF, puede utilizar diferentes enlaces depeneding en el trade-off entre rendimiento/interop/etc. que usted necesita.

Si el rendimiento no es crítica y necesita de interoperabilidad con otras tecnologías de Servicios Web, usted tendrá que usar el WS-HTTP vinculante. Para su caso, puede utilizar WCF con una red tcp de enlace, o un nombre-de la tubería de unión. Ya sea que debe trabajar.

Mi opinión personal es que el WCF enfoque es el más limpio de como se puede hacer Contrato de servicios orientados y centrarse en los mensajes, no los objetos (estoy haciendo una generalización que aquí se basan en el valor predeterminado de los modelos de programación de WCF.NET Remoting). No me gusta el envío de los objetos a través del cable debido a que una gran cantidad de información semántica se pierde o no es claro. Cuando todo lo que estamos haciendo es enviar un mensaje de como eres con WCF, resulta más fácil separar de sus preocupaciones entre la comunicación y las clases y la infraestructura que un único nodo se compone de.

3voto

icelava Puntos 5655

Comunicación remota de .NET Framework 2.0 proporciona el canal IPC para comunicación entre procesos dentro de la misma máquina.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X