XML作为数据源:阅读的最佳实践

XML作为数据源:阅读的最佳实践,xml,data-access-layer,Xml,Data Access Layer,我正在做一个小项目,我第一次想使用XML作为唯一的数据源……基于文件的存储适合项目的需要 在编写DAL时,我应该让所有get方法都是静态的吗?避免和“文件打开时读取”错误? 我应该在文件上使用CacheDependency吗 Thx我想你没有说得那么清楚。这些文件有多大?对于数据层来说,每次更新时总是将XmlDocument保存在内存中并转储到硬盘上是否有意义 更新的频率是多少,如果有的话?您将如何处理并发性?更新是否将跨多个xml文件进行事务性更新?您将如何处理一致性和事务完整性?如果没有更新

我正在做一个小项目,我第一次想使用XML作为唯一的数据源……基于文件的存储适合项目的需要

在编写DAL时,我应该让所有get方法都是静态的吗?避免和“文件打开时读取”错误? 我应该在文件上使用CacheDependency吗


Thx

我想你没有说得那么清楚。这些文件有多大?对于数据层来说,每次更新时总是将XmlDocument保存在内存中并转储到硬盘上是否有意义

更新的频率是多少,如果有的话?您将如何处理并发性?更新是否将跨多个xml文件进行事务性更新?您将如何处理一致性和事务完整性?如果没有更新,你的生活会简单得多

方法不必是静态的。要考虑的主要问题是,在将来,您可能希望将DAL提供程序从XML更改为DB。为此,DAL接口的具体实现应该与抽象数据提供者对话。对于您来说,最初它将是一个Xml提供程序,但您应该能够编写一个实现相同接口的Sql提供程序,并使用依赖项注入、配置文件或您拥有的其他工具轻松切换实现

只要有DAL实现的实例,就可以使用这些对象与数据层通信

希望这是一个好的开始。

好的

这些文件不太可能太大,我怀疑最大可达1-2MB

我让你知道DAL接口需要与DB交换,所以我需要仔细考虑我的接口

并发性,我很关心这一点,但不完全确定我应该如何处理它。我认为静态读写方法会有所帮助

XML将被更新,不会经常更新,可能一天更新一次,但可以随时更新,更新频率也可以更高

我使用CacheDependency仅在文件更改时从源获取

同时读取缓存时会遇到问题吗? 那么我如何处理并发性问题呢