1

SQL データベースへのクライアント呼び出しの代わりに WCF サービスを使用するように win フォーム アプリケーションを変換中です。

何がベスト プラクティスなのかはわかりませんが、約 600 のデータベースで同一のデータベース スキーマを使用しています。

ここで、winformアプリケーションの起動時に、このデータベースを使用するWCFサービスを宣言する解決策を見つけたいと思っていました。現在、すべてのメソッドで、使用する接続文字列のパラメーターを渡すことを避けようとしています。

私はWCFについてある程度理解していますが、「パブリック宣言」と接続コンテキストについてはほとんど知らず、シナリオの良い例を見つけていません.

これは可能ですか?

誰かが私を正しい方向に導くか、サンプルコードを手渡してくれるなら、それは大歓迎です! :)

前もって感謝します

4

2 に答える 2

1

WCF はセッションをサポートしています。したがって、最初の呼び出しで使用するデータベースを渡すことができ、他のすべての呼び出しはセッションで値を使用します。

参照: http://msdn.microsoft.com/en-us/library/ms733040.aspx

于 2011-01-31T15:45:45.840 に答える
1

WCF は奇妙な API です。最初の 1 か月はまったく取得できず、次の数か月はどうして取得できなかったのか不思議に思うでしょう。私はあなたの質問のいくつかに答えることができます.

  1. 私が知っている最良のリソースは Juval Lowry の本ですが、Bustamante の本も非常に優れていると聞いています。

  2. フォームを実行する前に、Main() で WCF サービスをスピンアップできます。

  3. あなたが話している設計では、おそらくサービス用のデフォルト以外のコンストラクターが必要になるでしょう。これは少し面倒ですが、Lowry の本がそれを扱っていると思います。IInstanceProvider と IEndPointBehavior を見ていない場合

そうは言っても、WCF がこの設計スキームにどのように適合するかはよくわかりません。それは本当にクライアントとサーバー間の通信用です。SOA タイプの設計に使用することを計画している場合は、よりクリーンで軽量な他の方法があります。依存性注入など。おそらくやりたいことのより簡単な例を挙げていただけますか? WCF の代わりに DB 情報を必要とするすべてのオブジェクトに渡すデータベースを単純にラップするクラスをお勧めします。

于 2011-01-31T16:03:43.840 に答える