2

.NET アプリケーションを作成するときはいつでも、データ アクセス レイヤー (DAL) やビジネス レイヤー (BL) などのいくつかのアーキテクチャを検討します。これらのレイヤーでは、通常、データベースと対話するコードを記述します。したがって、これらのレイヤーに記述されたこれらのメソッドとやり取りするには、いくつかのオプションがあります。ここでは、プロジェクト リファレンスとサービス リファレンスに焦点を当てます。

1 つ目は - プロジェクトを右クリック << 参照の追加 << [プロジェクト] タブでプロジェクトを選択 2 つ目は、プロジェクトでそれらをホストする asmx/wcf サービスを作成することです。プロジェクトを右クリック << サービス参照の追加 << 対話する目的のサービスを選択します。

パフォーマンスやその他のパラメータに関して、これらのオプションの違いは何ですか?

4

1 に答える 1

2

パフォーマンスに関しては、違いは異なりますが、原則として、サービスと直接プロジェクト参照の両方が同等に比較可能なシステムでまったく同じ計算を実行する場合、プロジェクト参照によるパフォーマンスへの影響は少なくなります。

ここでは、リンゴとリンゴを実際に比較しているわけではありません。

プロジェクトへの参照により、Visual Studioは参照されたプロジェクトをコンパイルし、出力(通常は.dll)をメインプロジェクトに含めます。これは、コンパイルされた(とにかくバイトコード化された)コードがアプリケーションに適切に存在することを意味します。プロジェクトを参照することは、アプリケーション内に存在するコードのビットへの参照になってしまうという点で、。dllまたはcomコンポーネントを直接参照することに似ています。発生する処理はすべて、コードと同じマシンで発生しています。

サービスへの参照により、Visual Studioは、ネットワーク経由でサービスを呼び出すプロキシクライアントクラスを生成します(サービスの構成方法に応じて、HTTP、TCP、またはその他の有効なメソッドを介して)。サービスはマシン上に存在する場合があります。 、またはそれは世界中の半分のサーバーに存在する可能性があります。サービス内で実行される処理は、そのマシンで実行されています。

まったく同じ計算を実行する場合、サービス参照よりもプロジェクト参照の方がパフォーマンスが優れていると先に述べた理由は、サービスが計算を実行し、ネットワーク接続の確立、ネットワークトラフィックの処理などのオーバーヘッドがあるためです。

もちろん、他の要因がパフォーマンスに影響を与える可能性があります。サービスは、パフォーマンスの問題がある古い古いマシンでホストされている可能性があります。その場合、サービスシナリオではパフォーマンスがさらに低下します。

一方、プログラムが低速のPCで実行されているが、SERVICEが過給されたサーバーで実行されている場合、処理が高速のサーバーで実行されているという事実は、ネットワークトラフィックのパフォーマンスへの影響を上回る可能性があります。

ちなみに、サービスの使用(サービス参照を追加したときに得られるもの)は、SOA(サービス指向アーキテクチャー)の信条です。基本的な説明、利点、および使用法については、ウィキペディア( http://en.wikipedia.org/wiki/Service-oriented_architecture )で説明されています。それは他のどこよりも良い出発点です。詳細を知る必要がある場合は、Webサービス(SOAPおよびRESTの種類-VisualStudioはSOAPWebサービスを適切に処理します)を調べてから、SOAの世界でMicrosoftが提供する新しい製品であるWCFを調べることができます。

于 2011-09-07T19:12:09.757 に答える