1

我将为网络(asp.net mvc)和移动(iOS 和 Android)构建应用程序。并且它们三个都必须进行通信(共享数据、用户授权等)。最好的方法是什么?使用 asp.net web api 或 azure 移动服务?

编辑

我还想知道这样的场景的最佳实践是什么:我在一个项目中有数据库和业务逻辑,需要使用服务与 Web 和移动设备进行通信。那么哪种技术最适合开发这项服务 Azure 或 web api 或 smth。别的 ?

4

1 回答 1

2

你的问题很笼统。

ASP.NET Web API只是一个构建 RESTful Web 服务的框架,您可以在任何地方托管它。它不能帮助您完成“交流(共享数据、用户授权等)”的任务。

Azure 移动服务是一个 Azure 托管的 PaaS,它实际上提供了你需要的一切,甚至更多。它还为您提供了现成的 RESTful Web 服务,您也可以使用 ASP.NET Web API 实现这些服务,但除此之外,它还提供对联合身份、数据共享等的支持。

所以,我想说,既然你似乎对这个领域有些陌生,你应该尝试移动服务,因为它们有很好的文档记录,并且有很多适合初学者的不错的教程,是我最喜欢的一个。

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

更新:

让我们通过 Azure 提供的不同解决方案的一些虚构场景来解决您的问题:

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

Azure 网站是在 IIS 中托管您的代码的方式,通常是一个网页,但也没有什么能阻碍您在这里托管您的 Web 服务(基于 Web API 甚至是成熟的 WCF)。Azure 网站易于部署,这是托管 Web 服务的一种相当便宜的解决方案,前提是您允许其他 IIS 应用程序(来自其他用户)也可以在此处运行(共享实例),但您也可以优先考虑您的应用程序一个保留的 IIS 实例(并支付更多费用)。当然,您可以在此处重用大部分(几乎全部)现有业务逻辑(除非您需要一些无法在 IIS 中本地托管的特殊功能,例如互操作或 shell 访问)。此解决方案的缺点是您的逻辑将在 Web 服务的上下文中运行,对于长时间运行的处理,这可能不是最佳解决方案。

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

于 2013-05-06T19:19:29.593 回答