2012-02-01 2 views
0

私はMongoDBデータベースと通信する必要のある小さなアプリケーションを構築しています。もちろん、DBの前にWebサービスがあり、私はではなく、であり、silverlightからDBに直接アクセスしようとしています。最初に、私はこのサービスがクライアントにそれらを管理させるためにBSONオブジェクトを返すことを考えました。BSONをSilverlightクライアントに渡す?

これも可能ですか? BSONドライバのdllをSilverlightアプリケーションに追加することもできないようです(Silverlightとの互換性がないと思われる参照の追加ダイアログを閉じた直後に参照から消えます)。

多分私は完全に失われて、それをすべて誤解しましたか?それは私の最初のMongoDbの試みです...

ありがとう!!

答えて

0

なぜクライアント上でBSONオブジェクトを操作したいのですか?

私はこう言っています。mongodbドライバがBSONを処理し、データをより使いやすい形式(JSON/XMLなど)に変換し、Silverlightクライアントに渡します。クライアントは、基礎となるデータベースについて知らない

  1. :ので

    これは良いです。 BSON形式がアップグレードされたらどうなりますか?すべてのクライアントを再コンパイルして展開する必要があります。

  2. クライアントは、基礎となるデータベースについて認識していません。独自のJSON(XML)ベースのプロトコルを使用してサーバーと通信します。 DBをMySQLに切り替えることさえできるかもしれません。クライアントは気付かないでしょう。

+0

はい、それは私が取ったルートです。私の推論は、私は潜在的に多くのデータを持っている可能性があり、私はBSON形式からインターチェンジ形式(JSON)への変換、そしてこの形式から最終的なクライアント処理可能形式への二重変換と見ています。ちょうど2回、1回はサーバー上で、もう1回はクライアントでの操作を望んでいませんでした。 – Palantir

+0

@Palantir:それはマイクロ最適化です。私はあなたが心配するべきより大きな事を持っていると確信しています: –

+0

@SergioTulentsevを最大限尊重して、これは警官です。私が取り組むアプリは、多数のクライアントに少量のデータを転送します。 BSONシリアル化オプションを追加し、文字列フィールド名から共有ルックアップテーブルを持つ整数に切り替えました。新しいフォーマットはJSONデータの約50%(プロトコルバッファに似ています)であり、解析するのが1/3速くなっています。帯域幅コストを大幅に節約できます。私たちは.NETサーバーをiOSクライアントに使用しましたが、Silverlight用にこのlibを試すことができます:http://code.google.com/p/mongodb-silverlight-driver/ YMMV。 –

関連する問題