Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net n层架构中的SqlCacheDependency_Asp.net_Caching_N Tier Architecture_Sqldependency - Fatal编程技术网

Asp.net n层架构中的SqlCacheDependency

Asp.net n层架构中的SqlCacheDependency,asp.net,caching,n-tier-architecture,sqldependency,Asp.net,Caching,N Tier Architecture,Sqldependency,我读了一些关于SqlCacheDependency的文章。我认为这是一种更新缓存的非常酷的方法,但如果我的应用程序是一个n层架构,我不确定如何处理这种技术 如果我的程序是一个小型Web应用程序,这是否有用?或者是否还有一种方法可用于大型n层架构?在这种情况下,您需要让DAL返回一个从CacheDependency抽象类派生的对象,该类将执行与SqlCacheDependency相同的操作,但针对DAL进行了优化 当然,这是关注点分离的失败,但是如果您需要依赖项,这是最好的方法。您可以创建自己的I

我读了一些关于SqlCacheDependency的文章。我认为这是一种更新缓存的非常酷的方法,但如果我的应用程序是一个n层架构,我不确定如何处理这种技术


如果我的程序是一个小型Web应用程序,这是否有用?或者是否还有一种方法可用于大型n层架构?

在这种情况下,您需要让DAL返回一个从CacheDependency抽象类派生的对象,该类将执行与SqlCacheDependency相同的操作,但针对DAL进行了优化


当然,这是关注点分离的失败,但是如果您需要依赖项,这是最好的方法。

您可以创建自己的ICacheDependency接口,并使用factory类为您提供适当的对象。这样,DAL或BL都不需要引用System.Web命名空间。您可以将这个工厂类放在一个公共层中,并在UI层中引用它


MS Petshop 4使用了类似的东西,您可能希望遵循它。

您的意思是您的应用程序分布在多个服务器上吗?尤其是数据库层?是的,我们项目中的DAL被几个不同的应用程序使用。从WebFarm中的ASP.Net应用程序到带有BizTalk的逻辑服务器。您认为在n层体系结构的DAL中使用此类是一种“好风格”吗?像你一样,我不这么认为。结论:我很喜欢这个类,但只适用于小应用。是的,我认为微软没有定义一个ICacheDependency接口是很不幸的,从DAL公开这个接口可能还可以。我不喜欢使用System.Web的DAL。