2009-11-20 24 views
14

私はVistaのことを知っています.C#ではUIフォームを直接Windowsサービスにフックできません。これはマイクロソフトのサイトに記載されています。GUIとWindowsサービスの通信

私の質問は次のとおりです。「UIからサービスへの最適な通信方法は何ですか?」

Remoting、Webサービス、およびDirect TCPについて聞いたことがあります。他の方法はありますか?以前に言及した方法とはどのようにランク付けされていますか?実装するにはどれほど複雑ですか?

私のアプリケーションはインターネットではなく、イントラネット用です。マイクロソフトのプラットフォームは両面にあるため、相互運用性は重要な要素ではありませんが、スピードは重要です。つまり、ネットワーク上で可能な限り小さなパケットを取得したいということです。

TIA

答えて

22

.NETで開発する場合は、プロセス間通信にWCFを使用してください。 WCFは、特定の通信メカニズム(例えば、ソケット、パイプなど)に関連する複雑さが統一プログラミングモデルの背後で抽象化されるため、開発を大幅に単純化する。したがって、トランスポートメカニズムにhttp、tcp、または名前付きパイプを使用するかどうかは関係ありません。プログラミングモデルは同じです。

私は、Juval Lowyの本Programming WCF ServicesをすべてWCF用に強くお勧めします。彼のウェブサイト、IDesign.netに無料のWCFコードサンプルがあります。

WCFの概要については、videoをdnrTVでご覧ください。これは、WCFの目的をカバーし、いくつかの簡単な例を通してWCFプログラミングを示しています。

Windowsサービスをまだ作成していないが、C#でこれを行う予定がある場合は、ステップバイステップhereに従うことができます。

1

プロセス間の通信には、多くの方法があります - 名前付きパイプ、メールスロットは、メモリはちょうど少数を示すために、ファイル、ソケット、ActiveXの/ COMオブジェクトをマッピングされました。それはあなたが使い慣れていて/快適である技術に本当に沸騰します。