1

システムをバージョン 2.0 に移行しています。エスカレートしているので、 を構築したいと思いWCFます。WCF を使用するのはこれが初めてなので、基本的なことかもしれませんが、ご意見をお聞かせください。

既存のシステムは 3 層のプロセスで構成されています。

  1. Web フォームに基づく UI。
  2. ビジネス層。
  3. ダル。

この 2.0 バージョンで達成したいことは、Web フォームを残して、より mvc 指向のインターフェイスに移行することです。そして、既に述べたように、何らかの Web サービスを使用して、自分の db ソースに接続する必要があります。

質問は次のとおりです。私は調査して読んwcf/restfulでおり、Iservice.csでインターフェイスとDataContractそのDataMembers. 頭を悩ませているのは、他のレイヤーでクラスが既に定義されていることです。それで、それは何をすることを意味するのですか?クラスもWCF1つずつ定義する必要がありますか?自分のDAL/Objectレイヤーを参照して、そこで利用可能なリソースを使用することはできませんか? 既存の VS2010 ソリューションに別のプロジェクトを追加する必要がありますか、それとも wcf をそのままにしておく必要がありますか?

よろしければ、ベスト プラクティスについてもご意見をいただければ幸いです。

4

2 に答える 2

2

REST が本当に求めているものである場合は、WCF 以外にも選択肢があります。一般に、WCF はほとんどのシナリオでやり過ぎなので、次のことを検討することを検討してください。

  1. ASP.NET Web API
  2. ServiceStack

どちらのオプションも ASP.NET MVC と ASP.NET WebForms で機能しますが、ほとんどのASP.NET Web API例は ASP.NET MVC で使用されます。

ASP.NET Web API または ServiceStack をアーキテクチャ内の別のレイヤーとして扱い、ソリューション内の個別のプロジェクトとして、ビジネス レイヤーやデータ アクセス レイヤーと同じように参照することができます。

于 2013-11-05T12:38:24.577 に答える
1

より良い方法は、WCF サービス用に別の別のレイヤーを追加して、DAL 参照を提供すると同時に、DAL 参照を BAL に提供することです。また、WCF プロジェクトを RESTFULL にしたいので (つまり、HTTP や ftp のようなプロトコルを介してのみアクセスできるようにするため)、WCF プロジェクトへの参照を与えないでください。

ここで、Iservice.cs は、メソッドを外界に公開する単なるインターフェイスであり、どのデータが、どのような形式で、どこにあるかを示します。そのインターフェイスを WCF プロジェクトの任意のリポジトリ クラスに実装するだけで、さらに DAL からデータを取得できます。ビジネス層は、サービス層と対話する唯一の層です。

BAL への DAL 参照の追加は、エンティティのメタデータ専用です。

私が間違っていた場合は、親切に元に戻してください。

于 2013-11-05T12:38:09.387 に答える