私は数週間前に書き始めたクライアント/サーバーアプリケーションの最後にあります。私はWCFを.netの&サーバに使用しました。
しかし、サーバーはTCP/IP上のASCIIだけを理解していたネットワーク上のデバイスにも接続する必要がありました。
通信ビットを抽象化しましたか?
はい。私は推測する。私はあなたの質問を100%理解しているかどうか分からない。サードパーティのデバイスへの私のTCP接続では、私が書いたクラスの背後にあるTCP接続と通信の詳細が隠されていました。問題のデバイスは、ASCIIコマンドをIR信号に変換して、衛星放送の料理やDVDプレーヤーなどを制御します。エンティティはあなたが思いついたのは何クラス
_irService.SendCommand(someAsciiCommand);
:私は私のサーバーがしなければならなかったすべては次のように電話をかけることであるクラスにTCP通信を抽象化?
私のドメインに基づいています。あなたのドメインは、あなたのドメインが何であるかに基づいていなければなりません。私はそのことを理解しているかどうか分からない。あなたのドメインはあなたのオブジェクトを指示するでしょう。
私のドメインでは、VLCを利用したUDP上でのマルチキャストブロードキャストのスケジューリングと再生を担当するサーバーアプリケーションを扱っていました。これらのマルチキャストブロードキャストは、あらゆる面で設定可能でなければなりません。
ドメインを分析したところ、ブロードキャスト、チャネル、デバイス、ブロードキャストプロセス(vlc.exeプロセスの開始とそのライフサイクルの維持を担当するクラス)で構成されたモデルが登場しました。
ドメインは、ネットワーキング技術にほとんど影響を与えませんでした。私はドメインを操作することを可能にするWCFのいくつかの二重の "サービス"で終わった。しかし、ネットワーキングの選択肢はドメインによって決定されていませんでした。自分のオブジェクトのバイナリシリアル化によるTCP接続が欲しかったので、私のクライアントがコールバックを介してリアルタイムの更新を得ることができるように、サーバーとの双方向通信が必要でした。これらのオプションは、私のドメインがどのように見えるかにかかわらず私に利用可能でした。