【问题标题】:Best way to expose services from .net to be used by mobile apps从 .net 公开服务以供移动应用程序使用的最佳方式
【发布时间】:2014-12-31 14:30:57
【问题描述】:

我将创建一个适用于 iOS、Android 和 Windows Phone 的应用程序,该应用程序将提供与我们网站目前正在重新开发的相同功能,其中一个主要功能是搜索功能。该网站以及所有层都是使用 .net (4.5.2) 和 sql server 构建的,我们需要公开所有要由移动应用程序使用的服务。好消息是由我决定应该如何公开它们,但我不确定什么是最好的技术/协议。我被告知它应该满足的是性能/响应能力。我曾考虑将服务公开为 WebAPI 层,但我不确定这是否是实现此类要求的最佳方式。

你会推荐什么?有没有人经历过这样的情况?

【问题讨论】:

    标签: android ios .net performance windows-phone


    【解决方案1】:

    向现有 Web 应用程序添加 api 层非常简单,我认为非常适合您的需求。这样,您基本上可以使用 api 包装现有功能。

    看到这个link

    【讨论】:

      【解决方案2】:

      由于您正在重新开发服务器端,我会仔细查看Azure Mobile Services。如果这对您不起作用,并且您需要更多自定义开发,我仍然会考虑使用 Web API 层进行 Azure 托管 - Web API 绝对是您的最佳选择,因为它提供了简单的方法在您的服务上使用一个薄层交换适合移动设备的 JSON。

      顺便说一句,对于任何新的.NET开发,我会选择ASP.NET vNEXT

      【讨论】:

      • vNext 不是还在预览版中,因为它是与 VS2015 一起打包的吗?我以为微软推荐它没有“准备好生产”?
      • 这将是真的,直到它不是的那一刻(很快就会)
      【解决方案3】:

      由于您的目标是多个客户端,您应该将您的业务公开为以JSON 返回数据的宁静服务,我还建议使用OData(开放数据协议),这是一个OASIS 标准,定义了最佳构建和使用RESTFul API 的实践。

      OData 还提供有用的查询技术,例如以下URL 将返回系统中的前 2 个人,他们至少注册了一次花费超过 3000 的旅行,并且只显示他们的名字和姓氏

      http://services.odata.org/v4/TripPinServiceRW/People?$top=2&$select=FirstName,LastName&$filter=Trips/any(d:d/Budget gt 3000)

      有关OData的更多信息,请查看http://www.odata.org/

      【讨论】:

      • 这就是 Web API……它实现了 OData!
      • @GregEnnis Web API 与 OData 不是一对一的,但是您可以使用 Web API 来公开 OData 服务,即我可以在不应用 OData 的情况下使用 Web API
      猜你喜欢
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 2015-11-07
      • 1970-01-01
      相关资源
      最近更新 更多