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

时间:2008-10-08 06:49:19

标签: xml data-access-layer

我正在开发一个小项目,我第一次想要使用XML作为唯一的数据源......基于文件的商店适合项目的需要。

编写DAL时,我应该将所有get方法设为静态吗? aviod和“文件打开时读取”错误? 我应该在文件上使用CacheDependency吗?

THX

2 个答案:

答案 0 :(得分:2)

我认为你并不像你原来那么清楚。这些文件有多大?是否有意义的数据层始终将XmlDocument保留在内存中并在每次更新时转储到硬盘?

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

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

您拥有DAL实现的实例,您可以使用这些对象与数据层进行通信。

希望这对你来说是一个好的开始。

答案 1 :(得分:0)

行。

文件不太可能很大,我怀疑最大值达到1-2MB。

我告诉你DAL接口需要与DB互换,所以我需要仔细考虑我的接口。

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

XML将会更新,而不是经常更新,可能每天更新一次,但它可以随时更频繁地更新。

我正在使用CacheDependancy来仅在文件发生变化时从源获取。

我是否会遇到同时读取缓存的问题? 那我该如何处理并发问题呢?