坚持课堂模式的最佳实践

时间:2010-06-08 20:33:45

标签: xml serialization versioning

我的应用程序包含一组模型类。例如人,部门......

用户在UI中更改这些类的实例的值,并且这些类将持久保存到我的“项目”文件中。下次用户可以打开和编辑项目。

我的产品的下一个版本可能会彻底改变模型类。它仍然需要打开现有的项目文件(我将知道如何处理丢失的数据)。

如何将我的模型类持久化到项目文件中?

持久化类的最简单方法是数据合同序列化。然而,它会在破坏变化时失败(我希望有这样的变化)。如何处理?

  • 使用其他一些持久性,例如名称 - 值集合或更宽容的数据库
  • 发布“项目转换器”应用程序以迁移旧项目。这需要既可以使用新旧模型,也可以操作xml,这是最好的吗?

2 个答案:

答案 0 :(得分:0)

我建议在项目文件架构中包含版本号。然后提供XSLT以在项目模式的不同版本之间进行转换。打开文件时,首先以XML格式打开并检查版本。如果它不是最新版本,请进行上转换,然后正常处理。

答案 1 :(得分:0)

因为将来您需要支持当前应用程序创建的所有“项目”文件。在我看来,将当前数据迁移到新格式的应用程序是更好的解决方案。 这种方法可以使新代码保持干净,以便读取和写入新的数据格式。因此,如果旧格式这样做,那么逻辑就不会混杂在一起,如果新格式那样做的话。 此外,迁移应用程序将是独立的,可以轻松测试与不正确的数据转换相关的任何问题。