我正在创建一个C#ASP.NET Web应用程序。主要前提是从单个文本文件中读取数据并构建一组对象以创建监控仪表板。
对象包括MonitoringItem,Machine,System和最后的Dashboard。应用程序将读取文本文件并生成监视项目,然后将这些项目添加到列表中并存储在计算机中。这些机器被制成一个列表并存储在一个系统中。仪表板是不同系统的集合 - 稍后我将根据这些对象生成html内容。
我正在努力解决如何更新仪表板对象的问题。我正在考虑使用Global.application_start方法创建初始仪表板对象。然后在default.aspx.page_load上更新仪表板。
如何创建对Dashboard对象的全局引用,以便我可以在启动时创建它,每次页面加载时我都可以接受Dashboard的实例并更新它?
答案 0 :(得分:0)
您是否希望将这些对象作为静态类与 Update()方法一起使用?因此,您可以从任何类访问它们,并在加载页面时更新它们的信息。此外,我建议你考虑一下情况,当你的页面加载量超出预期时。也许你想添加一个缓存并每隔X秒或类似的东西更新它( - ;
<强> UPD:强> 顺便说一句,还有一种更好的方法,我意识到我今天应该只告诉你 - 让这个班级成为单身人士。它可能有点困难,但这种方法比使用静态类要好得多。只是google它,你几乎准备好了,这是最简单的设计模式。祝你好运! ;)
答案 1 :(得分:0)
由于可伸缩性,可扩展性,耦合,并发性,重启/崩溃恢复的原因,通常您会在Web应用程序中避免这种共享状态。
另一种方法是研究使用缓存或可能的数据库,这些数据库可以填充,然后只需在加载该页面时拉出每个页面所需的部分。
您应该仔细考虑应用程序的体系结构:https://msdn.microsoft.com/en-us/library/ff647792.aspx