3

多くのサイトが同じ MVC アプリケーションを実行するポータルを作成しています。HttpRuntime.Cache に保存されているサイトのリストがあります。静的メソッドを介してキャッシュにアクセスするのは間違っていますか? 代わりにこれをビューデータに渡す必要がありますか?

たとえば、ビューでこれは間違っていますか:

SiteHelper のコードは次のとおりです。

public class SiteHelper {
private static object @lock = new object();
private const string siteKey = "FelixSites";

public static Site CurrentSite {
    get {
        var context = HttpContext.Current.Wrap();
        var sites = context.Cache[siteKey] as Site[];
        if (sites == null) {
            lock (@lock) {
                if (sites == null) {
                    sites = SiteService.GetSites();
                    context.Cache[siteKey] = sites;
                }
            }
        }
        return sites.Single(s => s.Domain == context.Request.UrlReferrer.AbsoluteUri);
    }
}

}

4

1 に答える 1

2

静的プロパティを使用するのが悪い唯一の理由は、ビューとモデルの間の関心の分離を壊すことです。モデルは、同じアプリケーション ドメインにあるオブジェクトからであっても、データの取得方法に関係する唯一のモデルである必要があります。

このデータをビューに表示するのはやり過ぎに思えるかもしれませViewDataんが、関心の分離が維持されるため、実際にはベスト プラクティスです。この分離を積極的に維持すればするほど、アプリケーションは今後のリファクタリングとバグ修正をより適切に処理できます。

于 2009-01-22T18:10:52.613 に答える