1

私は .net c# 開発者で、現在 mongo db データベースとの統合を検討しています。このデータベースは、mvc データベースのバックエンドになります。

MVC アプリケーションから mongo db へのデータベースで CRUD 操作が実行され、xml ファイルを解析してデータベースを mongo db に挿入/更新する単純なコンソール アプリケーションからデータが挿入されます。

私は C Sharp Mongo Db ドライバーを見直していて、オブジェクトのシリアライズや強く型付けされたオブジェクトなどとの関係について質問があります。このオブジェクトは、mongo db ドキュメントにシリアル化されます。これに関して私が持っている質問は次のとおりです。

  • アプリケーションの新しいリリースがある場合、dll のバージョン番号が増加します。リリース後、元のデータを新しいバージョンのオブジェクトにシリアル化できますか? または、オブジェクトはバージョン トレラントである必要がありますか?
  • コンソール アプリケーションがデータを挿入し、mvc アプリケーションが同じ bson ドキュメントに対して CRUD 操作を実行する場合、両方のアプリケーション間で同じオブジェクトを共有する必要がありますか? 可能であればこの依存関係を避けたいので、これを処理する最善の方法は何ですか。
4

1 に答える 1

1

バージョニングに関連するシリアライゼーション チュートリアルのセクションは、http ://www.mongodb.org/display/DOCS/CSharp+Driver+Serialization+Tutorial#CSharpDriverSerializationTutorial-HandlingSchemaChanges で確認できます。

1) 最初の質問に答えるには、間違いなくバージョン トレラントである必要があります。

2) マッピングが同じである限り、同じオブジェクトを共有する必要はありません。これは、同じ構造、同じ属性、同じ規則を意味します。

そうは言っても、同じデータ オブジェクトを共有することは世界の終わりではありません。また、2 つのシステム間に依存関係を作成することもありません。代わりに、データを永続化するために必要なオブジェクトとコードを含む共有ライブラリを作成します。そうすれば、2 つの異なる媒体間でコードを複製する必要がなくなります。共有ライブラリを API と考えてください。

別の方法は、コンソール アプリケーションが MVC アプリケーションを呼び出してデータをアップロードすることです。MVC アプリは、ユーザーが対話するだけでなく、プログラムの API にもなります。繰り返しますが、ロジックは 1 か所にあります。

于 2013-01-03T14:45:10.827 に答える