2013-01-01 81 views
1

我是.net c#開發人員,我目前正在探索與mongo db數據庫的集成。這個數據庫將成爲mvc數據庫的後端。使用mongo db對象進行版本容錯序列化

CRUD操作將在數據庫上從MVC應用程序執行到mongo數據庫,並且數據將從一個簡單的控制檯應用程序插入到它中,該應用程序解析xml文件並將數據庫插入/更新到mongo數據庫中。

我一直在審查C夏普蒙戈Db驅動程序,並有圍繞對象serliazation和強類型對象的關係等問題。我不是很清楚如果我有一個對象來反映蒙戈的結構bson文件。這個對象被序列化到mongo數據庫文件中。我有這方面的問題是:

  • 如果我的應用程序有新的版本,增加了dll版本號,該怎麼辦?發佈之後,原始數據是否可以序列化爲新版本的對象?或者我的對象需要版本容忍?
  • 如果我的控制檯應用程序插入數據並且mvc應用程序在同一個bson文檔上執行CRUD操作,是否需要在兩個應用程序之間共享同一個對象?如果可能的話,我寧願避免這種依賴關係,那麼處理這個問題的最好方法是什麼。

回答

1

你可以在這裏看到序列化教程中與版本相關的部分:http://www.mongodb.org/display/DOCS/CSharp+Driver+Serialization+Tutorial#CSharpDriverSerializationTutorial-HandlingSchemaChanges

1)要回答你的第一個問題,你的對象肯定需要版本容忍。

2)只要映射相同,它們不需要共享同一個對象。這意味着相同的結構,相同的屬性和相同的約定。

這就是說,共享相同的數據對象不是世界末日。而且你不會在兩個系統之間創建依賴關係。相反,您將創建一個共享庫,其中包含對象和持久數據所需的代碼。然後,您不需要在兩種不同介質之間複製代碼。將共享庫視爲一個API。

另一種方法是控制檯應用程序調用MVC應用程序上傳數據。 MVC應用程序不僅可以讓用戶與應用程序進行交互,還可以用於程序。再一次,邏輯在一個地方。

相關問題