【发布时间】:2008-10-08 06:49:18
【问题描述】:
我正在做一个小项目,我第一次想使用 XML 作为唯一的数据源...基于文件的存储适合项目的需要。
在编写 DAL 时,我应该将所有 get 方法都设为静态吗?避免和“文件打开时读取”错误? 我应该对文件使用 CacheDependency 吗?
谢谢
【问题讨论】:
标签: xml data-access-layer
我正在做一个小项目,我第一次想使用 XML 作为唯一的数据源...基于文件的存储适合项目的需要。
在编写 DAL 时,我应该将所有 get 方法都设为静态吗?避免和“文件打开时读取”错误? 我应该对文件使用 CacheDependency 吗?
谢谢
【问题讨论】:
标签: xml data-access-layer
我认为您并没有像以前那样清楚。这些文件有多大?数据层始终将 XmlDocument 保存在内存中并在每次更新时转储到硬盘是否有意义?
如果有更新,多久会发生一次?你将如何处理并发?更新是否会跨多个 xml 文件进行事务处理?您将如何处理一致性和事务完整性?如果没有更新,你的生活会简单很多。
方法不必是静态的。要考虑的主要事项是,将来您可能希望将 DAL 提供程序从 XML 更改为 DB。为此,DAL 接口的具体实现应与抽象数据提供者对话。对你来说,它最初是一个 Xml 提供程序,但你应该能够编写一个实现相同接口的 Sql 提供程序,并使用依赖注入、配置文件或你有什么来轻松切换实现。
如果您有 DAL 实现的实例,您可以使用这些对象与数据层对话。
希望这对你来说是一个好的开始。
【讨论】:
好的。
文件不可能很大,我怀疑最大会达到 1-2MB。
我告诉你 DAL 接口需要与数据库互换,所以我需要仔细考虑我的接口。
并发,嗯,我很担心,但不完全确定我应该如何处理它。我在想静态读写方法会有所帮助。
XML 会更新,不是那么频繁,可能一天一次,但可能随时更新。
我使用 CacheDependancy 仅在文件更改时从源获取。
我会在同时读取缓存时遇到问题吗? 那么如何处理并发问题呢?
【讨论】: