是否可以从Windows Phone 8应用程序访问MongoDB数据库服务器?
是否可以使用Native App,使用c#作为编程语言?
如果这是一个愚蠢的问题,请原谅。我是MongoDB的新手。
我希望通过手机执行CRUD操作。
官方C#驱动程序的目标是.Net Framework v3.5 我无法使用nugget在Windows phone项目上安装它。
错误 -
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 :(得分:3)
司机因多种原因无法工作。
最大的是当前的.NET驱动程序/源需要同步通信支持。 Windows Phone .NET库仅支持异步通信。因此,任何同步的东西都需要改变。
当前代码中有一行代码:
tcpClient.Connect(ipEndPoint);
最低限度,需要使用async
关键字将其更改为await
方法:
await tcpClient.ConnectAsync(ipEndPoint);
但是,它并不那么简单,因为ConnectAsync不支持使用async
关键字,因为它不使用Task
。相反,它具有不同的连接语法,其中方法需要一个对象,该对象具有在建立连接时调用的事件。而且,这只是一个例子。
我建议您使用Web服务器或服务来代理数据库通信,而不是直接连接到MongoDB。在那里,您可以使用REST API,并使用ASP.NET托管应用程序中的C#驱动程序(例如,使用ASP.NET Web API)。
答案 1 :(得分:1)
我建议您使用Sleepy Mongoose
这是HTTP
的完整MongoDB
界面。因此,您不需要任何驱动程序,只需执行一些HTTP
请求即可从您的移动应用程序应用CRUD
操作。
答案 2 :(得分:0)
npm module - express-restify-mongoose 对于使用 node.js 服务器的用户来说是个不错的选择。该库提供带有REST接口的 mongoose数据库模型。