mongodb + silverlight - PullRequest
       9

mongodb + silverlight

4 голосов
/ 13 мая 2011

Кто-нибудь работал с mongodb из Silverlight?Какой драйвер вы использовали?Silverlight поддерживает только асинхронные сокеты;но похоже, что доступные драйверы C # являются синхронными.

Ответы [ 3 ]

4 голосов
/ 13 мая 2011

Верьте или нет, мой первый проект с MongoDB был в Silverlight. IronPython, немного C #. Это было в 2009 году, и мы выпустили что-то вроде 0,8 или 0,9 из MongoDB ... так что прошло какое-то время.

Это был, я думаю, 2.x Silverlight, поэтому было труднее выполнять такие вещи, как прямые подключения к базе данных. Тем не менее, я бы порекомендовал по-прежнему идти по маршруту, который я пошел в то время.

Используйте API-интерфейс REST + JSON на стороне сервера и попросите клиента обмениваться данными через него. Мы сделали это в Python, но в наши дни есть несколько потрясающих готовых интерфейсов Mongo REST, таких как Sleepy Mongoose , если вы не хотите создавать свои собственные.

Самым большим преимуществом этого является вопрос безопасности: при прямом соединении базы данных от клиента к серверу даже при аутентификации вы рискуете попасть в вашу базу данных ... в этот момент они могут делать все, что захотят, как Аутентификация MongoDB ограничивает доступ на уровне БД, но не то, что люди могут видеть или удалять. Это даже не требует дизассемблирования кода в некоторых случаях, так как, насколько я помню, есть плагины для браузеров разработки, которые позволяют создавать сценарии работающего приложения Silverlight из IronPython и IronRuby.

Существуют и другие причины, в том числе синхронный вопрос, но в целом я думаю, что серверный интерфейс с Mongo с чистым, защищенным фасадом, который общается с Silverlight, поможет вам лучше.

2 голосов
/ 19 мая 2011

Вероятно, было бы лучше использовать официальный драйвер 10gen MongoDB C # на сервере с легким веб-API, расположенным над ним, который может использоваться вашим приложением Silverlight с WCF, SOAP, REST и т. Д. .

1 голос
/ 20 мая 2011

Это не очень хорошая практика для доступа к mongoDB из silverlight.

Я предлагаю вам обернуть все ваши команды в чистый сервис WCF (может быть, в службу данных) и полностью абстрагироваться от монго-сантехники.

это позволит вам точно контролировать, какую операцию можно выполнить, кто может выполнить команду и с помощью эволюционного протокола.

...