使用mongo db对象进行版本容错序列化

时间:2013-01-01 21:54:38

标签: asp.net-mvc mongodb serialization bson

我是.net c#开发人员,我目前正在探索与mongo db数据库的集成。该数据库将是mvc数据库的后端。

CRUD操作将在数据库中从MVC应用程序执行到mongo db,并且数据将从一个简单的控制台应用程序插入到其中,该应用程序解析xml文件并将数据库插入/更新到mongo db。

我一直在审查C Sharp Mongo Db驱动程序并且有一个关于对象serliazation和强类型对象的关系等问题。我不是很清楚我是否有一个对象来反映mongo bson的结构文献。此对象被序列化到mongo db文档中。我对此有疑问:

  • 如果有我的应用程序的新版本,dll版本号的增量怎么办?发布后,原始数据是否可以序列化到对象的新版本中?或者我的对象是否需要版本容忍?
  • 如果我的控制台应用程序插入数据并且mvc应用程序在同一个bson文档上执行CRUD操作,它是否需要在两个应用程序之间共享同一个对象?如果可能的话,我宁愿避免这种依赖,那么处理这种情况的最佳方法是什么。

1 个答案:

答案 0 :(得分:1)

您可以在此处查看序列化教程中与版本控制相关的部分:http://www.mongodb.org/display/DOCS/CSharp+Driver+Serialization+Tutorial#CSharpDriverSerializationTutorial-HandlingSchemaChanges

1)要回答你的第一个问题,你的对象肯定需要版本容忍。

2)只要映射相同,它们就不需要共享同一个对象。这意味着相同的结构,相同的属性和相同的约定。

话虽这么说,共享相同的数据对象并不是世界末日。而且你不会在两个系统之间创建依赖关系。相反,您将创建一个共享库,其中包含持久保存数据所需的对象和代码。然后,您不需要在两种不同的介质之间复制代码。将共享库视为API。

另一种方法是让控制台应用程序调用MVC应用程序来上传数据。 MVC应用程序不仅成为用户与之交互的API,也成为程序的API。再次,逻辑在一个地方。

相关问题