我需要构建一个MVC站点,其中数据模型似乎不适合数据库,当然不能在每个会话中重建。有没有办法在MVC网站中有效地创建一个静态类,该网站被网站的所有用户/会话使用......一次数周?
详情: 我有一个C#类,它从提供原始套接字源的控制器中提取状态(想想RS232)。该控制器的数据速率很慢,并且构建适当的类,需要提取状态,每个项目的字符串名称等。这需要30秒。设备类中有大约2个对象,所以它不是一个简单的对象。这就是为什么我建议序列化到SQL不太合适。
使用桌面应用程序术语...加载应用程序时会初始化其静态类。静态类的构造函数将运行一次并获取当前状态。它还会注册一个aw套接字处理程序来持续维护类模型的活动状态。然后,当用户请求网页时,该网站可以使用此共享数据模型。
这里更简单,因为我不是全职开发人员。例如:我不想构建一个完整的Web服务,然后必须为设备类中的大约二十几个对象编组JSON中的所有数据。
答案 0 :(得分:0)
这似乎是一个非常糟糕的主意,但您可以使用HttpApplication对象,该对象由所有用户共享,并且只要应用程序存在就会存在。
除此之外,没有什么可以做的,以使它比应用程序更长。当应用程序死亡(例如20分钟不活动,或者站点重新启动,......)时,所有内存都被释放,因此除了持久性机制(例如数据库)之外,没有其他地方可以存储它。
如果您发现将该模型映射到关系数据库的工作量太大,您可能需要查看NoSQL解决方案,例如MongoDB,Riak,......您所做的基本上是将其序列化为JSON并保存整个图形。然后,您可以通过反序列化来检索它。