现在,我正在为一个简单的跨平台移动应用程序选择技术。目标系统基本上是iOS、Windows 7.5和Windows8。在第一步,它将是一个本地无线局域网应用程序。
有一些现有的服务器(使用.net / WCF)拥有我想要显示的所有数据。该应用程序将每隔几秒钟轮询一次,并对数据进行实时查看。我不会直接访问数据服务器,但必须在两者之间创建自己的应用服务器。
对于客户机,我选择了HTML5、CSS、JavaScript (JQuery)方法来使其在任何现代浏览器中运行。所以我得通过http联系。
我的问题是,我的应用程序的服务器端使用哪种技术。我必须接收http请求,从另一个服务器获取数据(最多是通过WCF),并以xml或html的形式发送给客户端。(我不太确定服务器或客户端是否必须将xml数据转换为html)
在网上搜索,我想出了两种可能的方法:
查看一些ASP.net文档和示例,我得到的印象是,它的工作方式就像我从PHP中了解到的那样.(客户端发送请求,服务器运行脚本/程序,服务器发送响应,程序终止)我不能将对象保存在内存中,并运行独立于客户端请求的代码。或者至少它不是设计成那样的。对吗?
这将迫使我构建我自己的非常简单的服务器,它可以响应一些特定的http请求。
所以我的问题是:
提前谢谢..。
发布于 2012-04-12 11:34:41
有无数的网络技术可以做到这一点,但对我来说最突出的是:
有一些现有的服务器(使用.net / WCF)拥有我想要显示的所有数据。
因此,您已经有了.net,我不禁认为,从.net/WCF服务器获取数据的最快方法是使用.net/WCF客户端。
仅出于这个原因,我就会使用asp.net MVC。为您提供了一条快速、简便的获取数据的途径,同时在处理"V“部分(直接的HTML页面、带有xml数据的ajax或json等)方面给您留下了很大的灵活性。
就在上个月,Apache2.0开源许可下发布了asp.net mvc。
对于您的用例,我将远离asp.net webform和asp.net ajax。
编辑:
我不能将对象保存在内存中,不能独立于客户端请求运行代码。或者至少它不是设计成那样的。对吗?
ASP.net (就像许多应用服务器一样)具有可以存储数据的会话和应用程序范围。您还可以创建后台线程来执行标准请求->响应生命周期之外的工作。
发布于 2012-04-12 08:45:45
您可以查看Ajax推送引擎,因为应用程序需要轮询。它建立在javascript的基础上,其功能类似于Comet服务器。
或者,您也可以使用其中一个付费服务进行推送(这样您就不必为服务器技术操心太多了)。
1) 推手
( pusher主页: Pusher是一个托管API,用于快速、方便和安全地向web和移动应用程序添加可伸缩的实时功能。)
2) UrbanAirship
正如@Fabio所提到的,Python旋风也可以作为轮询使用。它是一个彗星服务器,许多实时web应用程序都建立在此基础上。在使用NodeJs进行轮询时,有许多教程可用。一个简单的google搜索让我找到了这个文章。
发布于 2012-04-12 11:48:20
通过移动设备访问数据的代价将很高。因此,我更愿意使用JSON / XML通过有线方式发送数据。将与RESTful方法一起使用WCF Restful服务 / ASP.NET网络API检索.NET堆栈中的数据。此外,如果您要考虑电池的使用,您应该避免轮询,应该使用信令框架。在.NET堆栈中,我们有SignalR来完成这个任务。这将在新数据可用时通知客户端,客户端将启动一个新请求来获取数据。
如果您想尝试新技术,我建议在服务器端使用node.js和socket.io从客户端进行通信以实现信令逻辑。此外,我更喜欢使用phone gap & javascript编写客户机应用程序,这样就可以轻松地将其移植到各种平台上。
https://stackoverflow.com/questions/9615569
复制相似问题