-1

Web で大きなアプリケーションを開発することを計画しています。現在の計画は、ビジネス レイヤーの各クラスに WCF サービスを作成することです。これは効果的ですか?大規模な Web アプリケーションで WCF を使用できる場所と、それを使用する主な利点を知りたい

私たちはこれらのプロジェクトを持っています

1) MVC3 with Razor that handles UI 

2) Class Library Project that communicate with Database

3) WCF Project 

私たちが使用する方法

1)Creates UI and Model  in MVC 

2)Makes dll that communicate with UI (eg:Save function/Update function) using ClassLibrary Project

3)The Class Library Created is Added (Added to Bin) in WCF Project 

4) Builds the WCF and Host It in Server

5) The Hosted Service is Used in MVC Project for Communication with DB

当社のテクニカル リードは、軽量で安全性が高いと言っていますが、なぜ彼がWCFアプリケーション全体に使用すると言っているのか疑問に思っています。

4

3 に答える 3

2

最初にこの質問をします。別のアプリケーションで実現できるのに、なぜサービスレイヤーが必要なのですか。緩い結合だけでこれを達成したい場合、それは意味がありません。

私の意見では、サービスレイヤーは、ビジネスレイヤーではなく、データ(dalレイヤー)を公開するのに役立ちます。たとえば、Twitterを見てください。Twitterは、Webサービスを介してデータを公開します。あなたがデータで行うことは完全にあなたの解釈です。データは、HTTPを介して多くのアプリケーションによって消費される可能性があります。したがって、クライアントはリモートに配置でき、アプリケーションと同じサーバー上にある必要はありません。ビジネスレイヤーは、データの解釈に基づいて変更される可能性があります。消費者は、最新の変更と最新のDLLを含めることについて心配する必要があります。Webサービスを消費するだけです。また、サービスのモックアップは非常に簡単であり、ビジネスレイヤーでNUnitsテストを非常に簡単に作成できます。ASP.NetWebAPIもご覧になることをお勧めします、サービスとデータを公開するための安らかな方法を提供します(JSONとして公開する機能が組み込まれています)。RestFullサービスには、WSDLなどを気にする必要がないなど、WCFに比べて多くの利点があります。インターフェイスは常に同じです。RestFulサービスの利用は非常に簡単です。

ツイッターの例と同じように。Twitter APIを使用しているクライアントは、同じサーバー上にありません。したがって、HTTPを介して公開することは理にかなっています。ただし、そのような要件がない場合(クライアントがリモートに配置されていない場合)、Webサービスを介してデータを公開することは意味がありません。次に、別のアプリケーションで結合度が緩くなります。これで十分です。また、HTTPでデータを公開すると、パフォーマンスにも影響があります。

更新2

私はあなたが実装しようとしているシナリオを理解しており、それは完全に大丈夫だと思います。軽量とは、WCFサービスからデータベースとのやり取りを行い、要件に応じてアクションとコントローラーごとに軽量のDTOを送信することを意味します。したがって、基本的に、WCFはクラスライブラリからメソッドを呼び出すだけで、ビジネスオブジェクトをフェッチしてDTOに変換し直し(UIをレンダリングするアクションの必要に応じて)、コントローラーに送信します。

また、サービスに依存性注入を使用していることを確認してください。これにより、モックデータを使用してコントローラーのNUnitテストを記述できるため、NUnitを実行するためのデータベースの要件がなくなります。

于 2012-08-03T06:59:30.000 に答える
1

私の好みは、サービス レイヤーを、多くのアプリケーションで使用できる完全に独立したアプリケーションにすることです。これにより、単一の Web アプリケーション内にサービス レイヤーを作成する場合よりも、プロジェクト、特に大規模なプロジェクトのスケーリングがはるかに容易になります。

于 2012-08-03T06:53:16.470 に答える
-1

残念ながらお伝えします。WCF の使用はあまり効果的ではありません。WCF を使用する主な目的は、任意のクライアント アプリケーションでデータにアクセスできるようにすることです。Web アプリケーションだけではありません。Silverlight または winform を使用することもできます。WCF は "A BIG" Web アプリとは何の関係もありません。

于 2012-08-03T07:25:50.260 に答える