2009-08-20 10 views
7

私はVB.Net(Framework 3.5)にVB 6.0アプリケーションを移植する必要があります。アプリケーションは、MSMQを頻繁に使用します。私は良いole System.MessagingよりもWCFを使用する利点は何かを理解しようとしています。 System.Messagingと一緒に行くときに潜在的なショーストップがありますか?MSMQを使用する - System.MessagingとWCF

答えて

6

私は「Motley Queue」のウェブサイト(「ウェブ」!:優れたリンク)からのこの引用が考える最高のそれを合計:

* WCFプログラミングモデルは、業務の運用を中心とします。これにより、メッセージトランザクションの管理、メッセージプロパティの設定、キュー内のメッセージの検索、NACKSの確認、メッセージの再試行などを停止することができます。代わりに、ビジネスオペレーション(CreatePurchaseOrderなど)あなたのビジネスロジック上。 WCFに退屈なままにしておきます。 *

これは簡単に言えば、WCFが達成しようとしていることです。多くの配管と複雑さを軽減し、解決したいビジネス上の問題に集中できます。

私の投票はWCFです! :-)

マルク・

1

WCFを使用すると、明確なフォワードパスが得られます。 System.Messagingがどこに行っても疑問はありますが(System.Runtime.Remotingを参照)、WCFで新しい開発が行われ、発生したときに他のテクノロジに移行する機会が与えられます。特定のトランスポートの実装に束縛されないようにします。

WCFプログラミングモデルも非常にきれいで快適です。

+1

[System.Runtime.Remoting summary for MSDN](http://msdn.microsoft.com/en-us/library/system.runtime.remoting(v = VS.100).aspx)を確認しましたが、 System.Messagingへの参照はありません。私たちがRemotingで見たいと思っていたことをより具体的に教えてください。 –

+0

System.Remotingが去っていないのと同じように、System.Messagingは遠ざかっていません。どちらもかなり確立された技術なので、消える前に十分な警告を期待してください。 – Mark

3

あなたはMotley Queue website.をチェックアウトする必要があります。System.MessagingとWCFの良い比較があります。 WCFははるかにクリーンで使いやすくなるでしょう。

3

WCFがSystem.Messagingよりも簡単で清潔であるかどうかは、非常に単純なAPI(全体的な)を持ち、使用するのが比較的簡単です。しかし、WCFには素晴らしいことがいくつかありますが、それは決して単純ではありません。

問題があるかどうかは、VBアプリケーションが現在どのようにMSMQを使用しているか、送信しているデータの種類に大きく依存します。あなたはMsmqIntegrationBindingバインディングを使用していますが、VB AppがWCFでメッセージを送信できない場合にメッセージのシリアル化を成功させるためにいくつかのトリックを引き出す必要があります。

2

私は個人的にはMSMQが好きで、そのことに気づくでしょう。

私のための主な「つかの間」は、メッセージごとに4メガバイトに制限されていたということでした。ラージオブジェクトグラフをシリアル化する場合は問題ですが、最初にディスクにシリアル化してファイル名を送信するだけで問題を解決するのは簡単です。

MSMQは、他のポスターのコメントの1つとして「新機能」を得られないかもしれませんが、IMHOは安定しており、スケーラビリティが高く、必要な機能をすべて備えています。

0

MSMQとWCFバインディングNet.Msmqを使用すると、あなたが気にする必要はありません。その下に複雑の多くを解決します。

- 実装が簡単です(1回の設定が必要)。 WCF & Netを使用してMSMQをセットアップするプロセスを理解するには、このポストに従ってください。Msmqバインディング Setup MSMQ with WCF using Net.Msmq binding

-RetryおよびPoisonのキューは、構成の変更をほとんど行うことなく実装できます。 リトライとポイズンのキューを設定するには良い記事Poison and Retry message handling with MSMQ using WCF Net.Msmq binding

- サービスの加入者が複数いる場合、同じサービスを複数のプロトコルでホストすることができます。すなわち、http、net.Msmqの複数のエンドポイントを作成する。

関連する問題