2009-08-20 8 views
7

Ich muss eine VB 6.0-Anwendung auf VB.Net (Framework 3.5) portieren. Die Anwendung verwendet MSMQ stark. Ich versuche herauszufinden, welche Vorteile WCF gegenüber gutem System.Messaging hat. Gibt es irgendwelche potenziellen Showstopper, wenn Sie mit System.Messaging arbeiten?Mit MSMQ - System.Messaging im Vergleich WCF

Antwort

6

Ich denke, dieses Zitat aus dem „Motley Queue“ Website („web“: hervorragende Link) bringt es auf den besten:

* Die WCF-Programmiermodell um Ihre Geschäftsabläufe zentriert ist. Sie können damit aufhören, Ihre Nachrichtentransaktionen zu verwalten, Nachrichteneigenschaften einzustellen, nach Nachrichten in einer Warteschlange zu suchen, nach NACKEN zu suchen, Nachrichten erneut zu versuchen usw. Stattdessen können Sie beginnen, über die Welt in Bezug auf Geschäftsvorgänge (z. B. CreatePurchaseOrder) und Fokus nachzudenken auf Ihrer Geschäftslogik. Lassen Sie die Langeweile WCF. *

Das ist kurz gesagt, was WCF zu erreichen versucht - Sie von vielen Klempnerarbeiten und Komplikationen befreien und sich auf Ihre Geschäftsprobleme konzentrieren, die Sie lösen möchten.

Meine Stimme ist für WCF! :-)

Marc

1

Mit WCF gehen gibt Ihnen einen klaren Weg nach vorne. Obwohl ich bezweifle, dass System.Messaging irgendwo hinführt (siehe System.Runtime.Remoting), wird in WCF eine neue Entwicklung stattfinden, und Sie haben die Möglichkeit, zu anderen Technologien zu migrieren, sobald sie auftreten. Es befreit Sie davon, an die spezifische Transportimplementierung gebunden zu sein.

Das WCF-Programmiermodell ist auch sehr sauber und ansprechend.

+1

Ich überprüfte die [System.Runtime.Remoting Zusammenfassung auf MSDN] (http://msdn.microsoft.com/en-us/library/system.runtime.remoting (v = VS.100) .aspx), aber Ich sehe keinen Hinweis auf System.Messaging. Könnten Sie bitte genauer erläutern, was Sie in Remoting sehen wollten? –

+0

System.Messaging geht nicht weg, genau wie System.Remoting nicht weggeht. Sie sind beide recht gut eingeführte Technologien, also erwarten Sie viele Warnungen, bevor sie verschwinden. – Mark

3

Sie sollten die Motley Queue website. überprüfen Es gibt einen guten Vergleich auf System.Messaging vs WCF. WCF wird viel sauberer und einfacher zu benutzen sein.

3

Ich bin irgendwie nicht einverstanden, ob WCF ist einfacher/sauberer als System.Messaging, die, lass uns ehrlich sein, hat eine ziemlich einfache API (insgesamt) und ist relativ einfach zu bedienen, wenn das ist alles, was Sie interessiert. Allerdings hat WCF einige nette Dinge, aber es ist keineswegs einfach.

Ob Sie irgendwelche Probleme finden, naja ... das hängt sehr davon ab, wie Ihre VB-Anwendung gerade MSMQ verwendet und welche Art von Daten es sendet. Sie werden die MsmqIntegrationBinding-Bindung verwenden, die etwas hilft, aber Sie müssen möglicherweise einige Tricks anwenden, um die Deserialisierung von Nachrichten erfolgreich zu handhaben, wenn Ihre VB-Anwendung keine Nachrichten in einem Format sendet, mit dem WCF auspacken kann.

2

Ich persönlich liebe MSMQ, und würde damit gehen.

Das Haupt 'Gotcha' für mich war, dass Sie auf 4meg pro Nachricht beschränkt sind. Wenn Sie ein großes Objektdiagramm serialisieren, handelt es sich um ein Problem, das jedoch nur durch einfaches Serialisieren auf Festplatte und Senden des Dateinamens behoben werden kann.

MSMQ möglicherweise nicht "neue Features", wie einer der anderen Plakate kommentiert, aber IMHO, es ist stabil, sehr skalierbar und verfügt über alle Funktionen, die ich brauche wie sie ist.

0

WCF mit MSMQ unter Verwendung löst, unter dem viele Komplexitäten net.msmq Bindung brauchen Sie nicht zu kümmern.

-Es ist einfacher zu implementieren (nur eine einmalige Konfiguration erforderlich). Folgen Sie diesem Beitrag, um den Prozess zum Einrichten von WCF & MSMQ mit Net zu verstehen.Msmq-Bindung Setup MSMQ with WCF using Net.Msmq binding

-Retry- und Poison-Warteschlangen können implementiert werden, indem nur wenige Änderungen in der Konfiguration vorgenommen werden. Nice Artikel zum Einrichten von Wiederholungs- und Poison-Warteschlangen Poison and Retry message handling with MSMQ using WCF Net.Msmq binding

-In dem Fall, dass Sie mehrere Abonnenten des Dienstes haben, kann der gleiche Dienst über mehrere Protokolle gehostet werden. d. h. Erstellen mehrerer Endpunkte für http, net.Msmq.

Verwandte Themen