0

私は Microsoft WCF の世界に比較的慣れていません。私のニーズに対応する 1 つまたは複数のサービスを実装するために使用する最適な設計パターン/方法について、いくつか質問があります。

1 つ以上の WCF サービスにプッシュしたい既存の DataLayer があります。バックエンド データベースは ORACLE です (そして、正しいバージョンの ODAC と通信するデータ アクセス レイヤー全体があります)。

既存のデータレイヤーを見ると、(多かれ少なかれ) 複数のデータ オブジェクト (クラス) をサポートしています。

  • ユーザー情報
  • ユーザー活動履歴監査
  • 評価
  • EvaluationWorkFlowAndReview
  • 評価レポート

これを WCF に実装する最良の方法に関するいくつかの質問があります。

  1. これを 1 つのサービスまたは複数のサービス (各データ クラス/機能と一致するもの) として実装するのが最善ですか?

  2. 最後に、ORACLE ODAC ライブラリと通信する基盤となるデータ アクセス レイヤーを共有したいと思います。これを共有ライブラリ、アセンブリに埋め込むのが最善ですか?

  3. 複数のサービスを使用する場合、それらすべてを同じエンドポイントから切り離した方がクリーンですか?

これを設計する際に使用する最善の戦略は何ですか?

ありがとう、ジョンB

4

4 に答える 4

0

多くの場合、ビジネスレイヤーもサーバーに実装されます。このような場合は、ビジネスレイヤーをラップするだけです。サーバー側にビジネスレイヤーがない場合は、同じ概念に基づいてサービスをモデル化します。特定のコンシューマー(または一連のコンシューマー)をターゲットとする一連の機能を公開しています。通常、各コンシューマー(または一連のコンシューマー)に提示するサービスは1つです。そうは言っても、潜在的なニーズをすべてカバーするためだけに1つの大規模なモノリシックサービスは必要ありません。それを論理的な領域に分解します。

ほとんどの場合、単一のデータレイヤーオブジェクトをラップするには小さすぎて、それ自体でラップすることはできません。例外は、データを一般的にすべての人にサービスするだけの場合です(RESTおよびODATAサービスでは非常に一般的です)。

===========================

  1. 消費ニーズに基づいてサービスをモデル化します。消費者セットごとに1つのサービス。
  2. 異なるバイナリの複数のビジネスレイヤー間でデータレイヤーを共有する場合、データレイヤーは独自のスタンドアロンライブラリに存在し、共有されている必要があります。
  3. 一貫性がある限り、サービスのエンドポイントレイアウトは一般的に重要ではありません。一日の終わりに、あなたの消費者はあなたが提供するエンドポイントを単にコピー/貼り付けするでしょう。
于 2012-08-20T20:34:16.517 に答える
0

Factory and Repository パターンの使用を検討しましたか? このようなもの。

`public interface IEmployee
{
    // define your model here (properties, for example)
    string FirstName {get; set;}
    string LastName {get; set;}
}

public interface IEmployeeBizFactory
{
    IEmployee CreateEmployee();
}

public class CustomEmployee : IEmployee
{
    // Implementation here
}

public class CustomEmployeeBizFactory : IEmployeeBizFactory
{
    public IEmployee CreateEmployee()
    {
        return new CustomEmployee();
    }
}`

于 2016-06-28T12:39:20.587 に答える
0

最善の方法は、WCF データ サービス (OData) である 1 つのサービスを使用することです。サンプルは http://code.msdn.microsoft.com/WCF-Data-Service-OData-ebb4214a からダウンロードできます。

于 2012-08-20T20:36:58.817 に答える
-1

データ オブジェクトごとにデータ コントラクトを検討する

データ コントラクトの使用

于 2012-08-20T21:19:30.770 に答える