在asp.net mvc和移动应用程序通信中的Web应用程序

问题描述:

我要为web(asp.net mvc)和mobile(iOS和Android)构建应用程序。他们三人必须交流(分享数据,用户授权等)。什么是最好的办法呢?使用asp.net web api或azure移动服务?在asp.net mvc和移动应用程序通信中的Web应用程序

编辑

我也想知道究竟是什么样这种情况下最好的做法:我有一个需要沟通白衣网络和移动使用服务的一个工程项目数据库和业务逻辑。那么,哪种技术最适合开发Azure或web api或smth服务。别的?

你的问题很一般。

ASP.NET Web API只是一个构建REST风格的Web服务的框架,您可以在其他地方主机。它不会帮助你完成“沟通(共享数据,用户授权等)”任务。

Azure Mobile Services是一个Azure托管的PaaS,它实际上提供了您需要的一切,甚至更多。它还为您提供您可能使用ASP.NET Web API实现的随时可用的RESTful Web服务,但除此之外,它还提供对联合身份验证,数据共享等的支持。

因此,我会说,因为你似乎对这个领域有点新鲜感,你应该尝试移动服务,因为他们有很好的文档记录,并有很多适合初学者的漂亮的教程,here是我最喜欢的一个。

您也可以在建立自己的移动服务并扩展它之后下载适用于Android和iOS的项目模板。这对于初学者和业余爱好者来说确实是一个很好的帮助。

UPDATE:

让我们接近你的问题与湛蓝提供不同的解决方案,一些虚构的场景:

Azure Mobile Services盖,你必须运行需要偶尔连接的应用程序的多个(移动)设备的情况下通过云同步他们的内容。 AMS为您提供了实现数据请求和更新的自定义处理逻辑的可能性;它隐藏了实施和托管Web服务的负担。 大约90%的逻辑是直接在管理门户中设置或写入的,其余的仅仅是客户端逻辑。 该服务的主要目的是数据同步(这是核心功能),所有其他服务(身份验证,日志记录,调度程序)只是辅助功能。 用于开发的语言是JavaScript,整个开发类似于使用框架如Node.js的服务器端开发。

Azure Web Sites是在IIS中托管代码的方式,通常是网页,但在这里托管Web服务(基于Web API或甚至成熟的WCF)也不会妨碍您。如果允许其他IIS应用程序(来自其他用户)也可以在此运行(共享实例),则Azure网站易于部署,并且这是一种用于托管Web服务的相当便宜的解决方案,但您也可以通过执行一个保留的IIS实例(并支付更多)。当然,您可以在这里重用大部分(几乎全部)现有的业务逻辑(除非您需要像本地无法在IIS中托管的interop或shell访问等异类)。这种解决方案的缺点是,你的逻辑将运行在你的Web服务的上下文中,并且对于长时间运行的处理,这可能是一个非优化的解决方案。

Azure Cloud Services允许您推迟逻辑规则的处理并将逻辑与服务输入分离。在这种情况下,您可以拥有两种角色,通常称为Web角色和辅助角色。 Web角色为您的服务提供端点并对请求进行排队,辅助角色读取队列并进行处理。这使您可以微调负载平衡和容量规划,增加具有Web角色和辅助角色的并行实例的数量。

+0

感谢您的回答,我知道我的问题是非常笼统的,但我想知道这样的场景的最佳做法是什么:我在一个项目中需要使用服务来交流网页和移动设备的数据库和业务逻辑。那么,哪种技术最适合开发Azure或web api或smth服务。否则 – hyperN 2013-05-06 23:11:01

+1

您能否请更新您的原始问题?答案太长,无法评论。 – 2013-05-07 06:32:20

+0

我已更新原有问题 – hyperN 2013-05-07 07:15:09