我们有一个Webforms应用程序,它存储了整个应用程序中使用的一堆设置和术语映射(数百个)。
http://www.dotnetperls.com/global-variables-aspnet提出了这些断言:
Application []集合....可能会更慢,更难处理。
Application []对象在ASP.NET中效率低下。
这是推荐的吗?是的,而不仅仅是本文的作者。 Apress的专业ASP.NET和互联网上的许多网站都有这一点。效果很好
所以我想知道这些陈述是否属实。任何人都可以详细说明为什么使用Application会更慢或者如果你使用Application会出现什么样的问题?我有点假设任何问题或减速可能只会在生产负荷下出现,所以这就是为什么我要求的是真实的世界经验,而不仅仅是自我标杆。
我知道缓存有许多替代方法(HttpRuntime.Cache,memcached等),但我特别想知道是否需要返回并重写使用Application []的遗留代码。特别是如果我以任何方式招致性能损失,我会想要摆脱它。
答案 0 :(得分:0)
如何保存这些设置?我会推荐web.config
如果您使用web.config来存储这些设置(如果它们是可以启动的固定位置的应用程序变量),那么就不需要Application变量。
我试图避开应用程序级变量,因为它们比Session变量更昂贵。
此外,web.config / app.config文件中的变量可以更改,而无需更改代码和/或重新编译项目。
应用程序类(全局变量)仅存在于ASP.NET中以帮助向后兼容经典ASP,您可以说它已被弃用。
您可以研究的另一件事是缓存您的设置,因此您并不总是从磁盘读取。