私は現在、ASP.Net C# アプリケーションで作業しており、データセットとビジネス レイヤーで DAL デザイン パターンを使用しています。
通常、C# コードでデータを要求するときは、ビジネス レイヤー オブジェクトを作成します。
BLLAccount oblAccount = new BLLAccount();
次に、BLLAccount で宣言した関数を呼び出すことで、それを操作できます。oblAccount.GetAccounts();
このルーチンは、すべてのページで、すべてのイベント スコープ内のすべてのデータ要求で繰り返されます。これはすぐに面倒になることを理解できるので、毎回同じオブジェクトを再作成する必要がないように、ページ プロパティを宣言しました。
private BLLAccount m_BLLAccount = null;
public BLLAccount oblAccount
{
get
{
if (m_BLLAccount == null)
{
m_BLLAccount = new BLLAccount();
}
return m_BLLAccount;
}
}
このように、オブジェクトは必要なときにのみ作成され、すべてのイベント スコープで再利用できます。これはページで便利ですが、今は多くのページを作成しており、このソリューションでさえ面倒です。私が最初に考えたのは、現在マスターページと子ページを使用しているので、ページ プロパティをマスターページに配置して、この小さなスニペットを使用して aspx のマスターページを参照してみませんか?
<%@ MasterType VirtualPath="~/Master.master" %>
私のコードでは、次のように参照します。
Master.oblAccount.GetAccounts();
これはクールで非常にうまく機能しますが、これがサーバーのメモリとアプリケーションのパフォーマンスにどのような影響を与えるかはわかりません. 長期間使用されていない場合、ページ プロパティはクリーンアップされますか? 初期負荷が重すぎませんか?ビジネスレイヤー自体にコンストラクターを作成する方が良いですか、それともその部分はあまり重要ではありませんか?