2012-02-01 6 views
0

Я создаю небольшое приложение, которое должно связываться с базой данных MongoDB. Конечно, перед БД есть веб-сервис, и я получаю , а не, пытающийся получить доступ к базе данных непосредственно из silverlight. Сначала я думал, что эта служба возвращает объекты BSON, чтобы клиент мог их управлять.Передача BSON клиенту Silverlight?

Возможно ли это? Похоже, что я даже не могу добавить DLL драйвера BSON в приложение Silverlight (они исчезают из «Ссылки» сразу после закрытия диалогового окна «Добавить ссылку», что, по-видимому, указывает, что они не совместимы с Silverlight).

Или, может быть, я полностью потерял и неправильно понял все это? Это моя первая попытка с MongoDb ...

Спасибо!

ответ

0

Почему вы хотите манипулировать объектами BSON на клиенте?

Я бы сказал: пусть драйвер mongodb имеет дело с BSON, а затем конвертирует данные в более удобный формат (JSON/XML или аналогичный) и передает его клиенту silverlight.

Это лучше, потому что:

  1. Клиент не знает об основной базе данных. Что делать, если формат BSON обновился? Вам придется перекомпилировать и развернуть всех клиентов.

  2. Клиент не знает о базовой базе данных. Он взаимодействует с сервером с использованием собственного протокола JSON (XML). Возможно, вы сможете даже переключить DB на MySQL, и клиенты не заметят.

+0

Да, это маршрут, который я совершил. Мое рассуждение состояло в том, что у меня потенциально будет много данных, и я рассматриваю это как двойное преобразование, одно из формата BSON в формат обмена (скажем, JSON), а затем из этого формата в окончательный, обрабатываемый клиентом формат. Просто не хотел делать что-то дважды, один раз на сервере и один раз на клиенте ... – Palantir

+0

@Palantir: это микро-оптимизация. Я уверен, что у вас есть больше вещей, о которых можно беспокоиться :-) –

+0

С величайшим уважением к @SergioTulentsev, это выезд. Приложение, в котором я работаю, переносит данные в небольших количествах на большое количество клиентов. Мы добавили параметр сериализации BSON и переключились с имен строковых полей на целые числа с общей таблицей поиска. Новый формат составляет около 50% от размера данных JSON (аналогично протокольным буферам), а также 1/3 быстрее для синтаксического анализа. Это позволит нам значительно снизить затраты на пропускную способность в совокупности. Мы использовали .NET-сервер для iOS-клиента, но вы можете попробовать эту библиотеку для Silverlight: http://code.google.com/p/mongodb-silverlight-driver/. YMMV. –

Смежные вопросы