我认为保存应用程序状态的最佳方式是使用传统的关系型数据库,因为大多数情况下其表结构基本上代表了我们系统的数据模型+元数据。
然而,我的团队中的其他人认为,今天将整个对象图序列化为二进制或XML文件是最好的方法。
不需要说(但我还是要说)我们之间已经打起了世界大战,我希望听听您对这个问题的看法。
就个人而言,我讨厌序列化,因为:
- 所保存的数据仅适用于您的开发平台(在我的情况下是C#)。没有其他平台如Java或C++可以使用这些数据。
- 保存了整个对象图(包括所有继承链),而不仅仅是我们需要的数据。
- 更改数据模型可能会导致严重的向后兼容性问题,当尝试加载旧状态时。
- 在应用程序之间共享数据的部分是有问题的。
我想听听您对此的看法。