8
votes

Quelles technologies sont disponibles pour un modèle de publication / abonnement utilisant .NET?

Je travaille actuellement sur une application où une composante de l'application doit interagir avec plusieurs autres composants du système en fonction de certains événements. Ces événements se produisent sur la base de nombreux déclencheurs différents ... Certains événements sont causés par une action d'un utilisateur dans lequel d'autres utilisateurs doivent être notifiés, certains événements sont basés sur le temps et d'autres événements sont basés sur une modification de l'état de l'objet. < / p>

Sur la base de ce que j'ai regardé jusqu'à présent, cela ressemble au moyen le plus propre de découpler les composants de l'application consiste à configurer un modèle de publication / abonnement où mes objets dans le composant publient des événements que d'autres composants d'applications intéressés peuvent abonner à .

J'ai vu nservicebus, et pour des raisons "Vendor-Lock-in", je ne peux pas utiliser Services .NET à Azure. Y a-t-il d'autres technologies disponibles? Y a-t-il une approche différente que je devrais envisager?

edit - Pour être clair, il s'agit d'une application de volume élevée basée sur le Web. L'application est ASP.NET MVC et l'application MVC communiquent avec plusieurs services de WCF pour ses données.


2 commentaires

Je ne suis pas un expert .NET. Cependant, je pensais que la file d'attente des messages (System.Messer) était pour ce problème particulier.


La plupart de tous les bus de service sont construits sur Windows Message Que.


8 Réponses :


0
votes

wcf

Google WCF publie souscrire le modèle. Je pense que la partie de la programmation de la programmation par Juval Lowy avait une excellente explication de la façon de le faire.

éditer http://idesign.net/idesign/desktopdefault.aspx?tabindex=5&tabid= 11
Recherchez le cadre de publication-abonnement


0 commentaires

0
votes

Prism est livré avec un éparggregator qui fournit des événements couplés de manière lâche.


0 commentaires

3
votes

Il y a aussi Masstransit . Jamais utilisé, mais il est généralement mentionné dans la même conversation que NSERVICEBUS.

Selon exactement ce que vous essayez de faire, il y a aussi le cadre d'extensibilité géré . Pas vraiment un cadre de publication / abonnement, mais c'est quelque chose à conscience de si vous n'étiez pas déjà.


1 commentaires

Je ne pense pas que le MEF est tout à fait raison pour ce que j'essaie de faire. +1 pour le Masstransit rec ...



7
votes

wcf est définitivement capable de gérer le pub / sous scénarios - et sera beaucoup plus une fois .NET 4 avec les nouvelles liaisons de relais d'azur de WCF est sortie.

Pour l'instant, consultez ces articles sur le sujet:


1 commentaires

Cela semble être l'option qui a la documentation la plus complète et semble être plus facile de passer au bus de service .NET sur la route, c'est pourquoi j'accepte cette réponse.



2
votes

UDI (le Créateur de Nservicebus) a une version rationalisée de son concept d'événements de domaine sur son Blog

Nous avons utilisé cela comme une base pour développer une implémentation plus simple comme NSERVICEBUS que nous pourrions utiliser dans notre solution.


0 commentaires

0
votes

Les réponses jusqu'à présent sont de bonnes supposant que vous ayez une architecture multi-processus ou SOA.

Si c'est une application autonome simple, le modèle d'événement C # intégré fonctionne bien dans votre cas. Alternativement, on peut également utiliser des délégués ou une interface pour passer au serveur / éditeur.

Ce Lien de motif d'observateur peut être utile.


0 commentaires

0
votes

0 commentaires

1
votes

Pour mettre en place un modèle classique de publication / abonnement avec .NET, j'utiliserais Activemq . Il est très facile de comprendre et si vous connaissez déjà JMS, la courbe d'apprentissage est vraiment plate.


0 commentaires