2014-01-24 61 views
0

是否可以从Windows Phone 8应用程序访问MongoDB数据库服务器?用于Windows Phone的mongoDb驱动程序

使用本机应用程序,使用c#作为编程语言,可以这样做吗?

请原谅,如果这是一个愚蠢的问题。我是MongoDB的新手。

我希望通过手机执行CRUD操作。

官方的C#驱动程序目标.Net框架v3.5 我没有安装它在使用金块的Windows手机项目。

无差错

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不兼容。 [Here](http://docs.mongodb.org/ecosystem/drivers/csharp/)可以找到更多信息。也许其他“非官方”的驱动程序存在。 – rubenfa

+0

我会尝试从源代码编译它。手指交叉。 – rahulroy9202

回答

3

司机不会有很多原因的工作。

最大的问题是当前的.NET驱动程序/源代码需要同步通信支持。 Windows Phone .NET库仅支持异步通信。所以,任何同步的东西都需要改变。

有例如一行代码在当前代码:

tcpClient.Connect(ipEndPoint); 

最低限度地,这将需要改变使用await关键字为处于async方法:

await tcpClient.ConnectAsync(ipEndPoint); 

然而,它不那么简单,因为ConnectAsync不支持使用async关键字,因为它不使用Task s。相反,它具有不同的连接语法,其中方法需要一个对象,该对象具有建立连接时调用的事件。而且,这只是一个例子。

我建议不是直接连接到MongoDB,而是使用Web服务器或服务来代理数据库通信。在那里,您可以使用REST API并使用ASP.NET托管应用程序中的C#驱动程序(例如,使用ASP.NET Web API)。

1

我建议你使用Sleepy Mongoose 这是一个完整的HTTP接口为MongoDB。因此,您不需要任何驱动程序,只需执行一些HTTP请求即可从您的移动应用程序中应用CRUD操作。

相关问题