2014-01-24 1 views
0

Возможно ли получить доступ к серверу базы данных MongoDB из приложения Windows Phone 8?mongoDb драйвер для windows phone

Возможно ли это сделать с помощью Native App, используя C# в качестве языка программирования?

Прошу извинить меня, если это глупый вопрос. Я новичок в MongoDB.

Я хочу выполнить операции CRUD с телефона.

Официальный C# Драйвер цели. Net Framework v3.5 Я не смог установить его в проекте телефона Windows, используя самородок.

error-

Install failed. Rolling back... 
Install-Package : Could not install package 'mongocsharpdriver 1.8.3'. You are trying to install this package into a project that targets 
'WindowsPhone,Version=v8.0', but the package does not contain any assembly references or content files that are compatible with that 
framework. For more information, contact the package author. 
At line:1 char:1 
+ Install-Package mongocsharpdriver 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Install-Package], InvalidOperationException 
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand 
+0

Есть драйвер MongoDB C#, но я боюсь, что он несовместим с Windows Phone. [Здесь] (http://docs.mongodb.org/ecosystem/drivers/csharp/) можно найти дополнительную информацию. Возможно, существует другой «не официальный» драйвер. – rubenfa

+0

Я попытаюсь скомпилировать его из источника. Скрещенные пальцы. – rahulroy9202

ответ

3

Водители не будут работать по многим причинам.

Самым большим является то, что текущие драйверы/источник .NET требуют поддержки синхронной связи. Библиотеки Windows Phone .NET поддерживают только асинхронную связь. Итак, все, что синхронно, нужно будет изменить.

Там есть строка кода, например, в текущем коде:

tcpClient.Connect(ipEndPoint); 

Минимально, это нужно будет изменить, чтобы быть в async методом с использованием await ключевого слова:

await tcpClient.ConnectAsync(ipEndPoint); 

Однако , это не так просто, поскольку ConnectAsync не поддерживает использование ключевого слова async, поскольку он не использует Task. Вместо этого он имеет другой синтаксис соединения, в котором метод ожидает объект, который имеет событие, которое вызывается, когда соединение установлено. И это всего лишь один пример.

Я бы предположил, что вместо прямого подключения к MongoDB вместо этого вы используете веб-сервер или службу для проксирования связи с базой данных. Например, вы можете использовать REST API, например, и использовать драйверы C# из размещенного приложения ASP.NET (например, используя веб-API ASP.NET).

1

Предлагаю вам Sleepy Mongoose который является полным интерфейсом HTTP для MongoDB. И, соответственно, вам не нужны никакие драйверы, вам просто нужно выполнить HTTP запросы на использование CRUD операций из вашего мобильного приложения.

0

Этого npm module - express-restify-mongoose является хорошим вариантом для людей, использующих сервера Node.js. Эта библиотека предоставляет модели базы данных mongoose с интерфейсом REST.