Qué tecnologías están disponibles para una publicación/suscripción modelo de uso .NETA?

StackOverflow https://stackoverflow.com/questions/1876605

  •  18-09-2019
  •  | 
  •  

Pregunta

Actualmente estoy trabajando en una aplicación en la que uno de los componentes de la aplicación que necesita para interactuar con varios otros componentes del sistema basado en ciertos eventos.Estos eventos se producen basa en muchos factores diferentes...algunos eventos son causados por una acción del usuario, donde otros usuarios deban ser notificados, algunos eventos se basan en el tiempo, y otros eventos se basa en un cambio en el estado del objeto.

Basado en lo que he visto hasta el momento, parece que la forma más limpia para separar los componentes de la aplicación es establecer un modelo publicación/suscripción donde mis objetos en el componente de publicar los eventos que otras personas interesadas en la aplicación de los componentes puede suscribirse.

He visto nServiceBus, y por "el proveedor" lock-in" razones que no puedo usar .Los Servicios de la RED en Azure.Existen otras tecnologías disponibles?Hay un enfoque diferente de la que se debería considerar?

Editar - para ser claros, este es un basado en la web de alto volumen de aplicación.La aplicación es ASP.NET MVC y el MVC aplicación se comunica con múltiples servicios WCF para sus datos.

¿Fue útil?

Solución

WCF definitivamente es capaz de manejar pub/sub escenarios - y será mucho más una vez .NET 4 con el nuevo WCF Azure relé de enlaces está fuera.

Por ahora, echa un vistazo a estos artículos sobre el tema:

Para el futuro Azure basado pub/sub mensajería con el .RED de Bus de Servicio, consulte los siguientes artículos aquí:

Otros consejos

También hay MassTransit.Utilizado nunca, pero es comúnmente mencionado en la misma conversación como nServiceBus.

Dependiendo exactamente lo que estamos tratando de hacer, también existe la Managed Extensibility Framework.No es realmente una publicación/suscripción marco, pero no es algo para ser conscientes de que si no estaban ya.

Udi (el creador de nServiceBus) tiene una versión simplificada de su concepto de Dominio de los Eventos en su blog

Hemos utilizado esto como una base para desarrollar una sencilla aplicación como nServiceBus que podríamos usar en nuestra solución.

Para implementar un clásico de publicación/suscripción modelo con .neta, me gustaría utilizar ActiveMQ.Es muy fácil de entender y si usted sabe ya JMS, la curva de aprendizaje es realmente plana.

WCF

Google WCF Publicar Subscríbete modelo.Creo que el Anexo de la parte de la Programación de WCF por Juval Lowy tenido una excelente explicación de cómo hacerlo.

EDITAR http://idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11
Buscar Publicar-Suscribir Marco

Prisma viene con un EventAggregator que proporciona débilmente acoplados eventos.

Las respuestas son buenas, suponiendo que tiene un multi-proceso o arquitectura SOA.

Si se trata de una simple aplicación independiente, tal vez el construido en C# de eventos de modelo funciona bien en su caso.Alternativamente, también se puede utilizar delegados o una interfaz para pasar al servidor/publisher.

Este patrón observer enlace puede ser útil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top