0

私は現在、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();

これはクールで非常にうまく機能しますが、これがサーバーのメモリとアプリケーションのパフォーマンスにどのような影響を与えるかはわかりません. 長期間使用されていない場合、ページ プロパティはクリーンアップされますか? 初期負荷が重すぎませんか?ビジネスレイヤー自体にコンストラクターを作成する方が良いですか、それともその部分はあまり重要ではありませんか?

4

1 に答える 1

0

それをMasterPageに入れるのはやり過ぎのようです。Pageから継承するクラスを作成し、データ層にアクセスする必要があるすべてのページをそのクラスから継承させるのはどうですか。

于 2014-04-29T11:56:30.703 に答える