Welche Technologien sind verfügbar für ein publish/subscribe-Modell verwenden .NET?
Zur Zeit arbeite ich an einer Anwendung, bei der eine der Komponenten der Anwendung interagiert mit mehreren anderen system-Komponenten, die basierend auf bestimmte Ereignisse. Diese Ereignisse auftreten, aufgrund von vielen verschiedenen Triggern... einige Ereignisse verursacht werden, durch einen Benutzer handeln, wo andere Benutzer benachrichtigt werden müssen, einige Veranstaltungen sind Zeit -, und andere Veranstaltungen beruhen auf einer änderung in dem Zustand des Objekts.
Basierend auf dem, was ich sah, so weit, es klingt wie der sauberste Weg zur Entkopplung der Anwendungskomponenten ist die Einrichtung eines publish/subscribe-Modell, wo meine Objekte in der Komponente veröffentlichen Ereignisse, die anderen interessiert Komponenten der Anwendung abonnieren können.
Ich habe gesehen, nServiceBus, und für die "vendor-lock-in" - Gründen, die ich nicht nutzen kann .NET-Services in Azure. Gibt es andere Technologien zur Verfügung stehen? Gibt es einen anderen Ansatz, ich sollte in Betracht ziehen?
Bearbeiten - klar zu sein, dies ist eine web-basierte high-volume-Anwendung. Die Anwendung ist ASP.NET MVC das MVC-Anwendung ist die Kommunikation mit mehreren WCF-Dienste für seine Daten.
- Ich bin nicht ein .Net-Experte. Jedoch, dachte ich .Net Message queueing (System.Messaging) wurde für dieses spezielle problem.
- Vor allem die service-Busse basieren auf der windows-Meldung, que.
Du musst angemeldet sein, um einen Kommentar abzugeben.
WCF ist definitiv in der Lage Umgang mit pub/sub-Szenarien - und werden viel mehr einmal .NET 4 mit dem neuen WCF, Azure relay-Bindungen aus.
Für jetzt, schauen Sie sich diese Artikel auf das Thema:
Für die Zukunft Azure-basierten pub/sub-messaging mit dem .NET Service Bus, siehe diesen Artikel hier:
Gibt es auch MassTransit. Nie benutzt, aber es ist Häufig erwähnt in dem gleichen Gespräch wie nServiceBus.
Je nach genau das, was Sie zu tun versuchen, gibt es auch die Managed Extensibility Framework. Nicht wirklich ein publish/subscribe-framework, aber es ist etwas zu beachten, wenn Sie nicht bereits.
Udi (der Schöpfer von nServiceBus) hat eine abgespeckte version seines Begriffs der Domain Ereignisse auf seine blog
Wir verwendeten diese als Basis zu entwickeln, die eine einfachere Umsetzung wie nServiceBus, dass wir in unserer Lösung.
Zur Umsetzung einer klassischen publish/subscribe-Modell mit .net, das ich verwenden würde,ActiveMQ. Es ist sehr einfach zu verstehen und wenn Sie bereits wissen, JMS, die Lernkurve ist sehr flach.
WCF
Google WCF Veröffentlichen-Abonnieren-Modell. Ich denke, der Anhang Teil der Programmierung WCF von Juval LÖWY hatte eine hervorragende Erklärung, wie es zu tun.
BEARBEITEN
http://idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11
Suchen Sie für Publish-Subscribe-Framework
PRISMA kommt mit einen EventAggregator bietet lose gekoppelte Ereignisse.
Die Antworten bisher sind gut, diejenigen angenommen, Sie haben ein multi-Prozess-oder SOA-Architektur.
Wenn es ist ein einfaches, eigenständige Anwendung, die vielleicht gebaut in C# event-Modell funktioniert gut in Ihrem Fall. Alternativ kann man auch einen Delegierten oder eine Schnittstelle an den server übergeben/publisher.
Diese observer-Muster link kann hilfreich sein.
Hier ist ALSO die Frage "nServiceBus, Rhino Service Bus, MassTransit - Videos, Demos Lernmaterialien" mit einigen guten Antworten.