【问题标题】:Best way to communicate with the server in Xamarin?在 Xamarin 中与服务器通信的最佳方式是什么?
【发布时间】:2016-09-04 17:44:12
【问题描述】:

我对 Xamarin 和移动开发完全陌生。我的第一个问题是架构方面的问题,使用现有的 Rest api 与移动客户端传输数据是否是一种好习惯。

我翻了谷歌,Xamarin Azure 云文档,但没有找到任何满意的文章。此外,我们还有一个使用 Azure 的 REST API 的 ember 前端应用程序。

如果这些信息不够,请向我询问,如果重复,请不要犹豫,使用正确的链接将其标记为重复。谢谢大家,请帮助并分享您的宝贵经验。

谢谢

我经过的几个链接

https://azure.microsoft.com/en-us/documentation/learning-paths/appservice-mobileapps/

http://www.davevoyles.com/asp-net-web-api-vs-azure-mobile-services/

https://azure.microsoft.com/en-us/blog/azure-mobile-services-why-should-asp-net-developers-care/

http://weblogs.asp.net/scottgu/azure-virtual-machine-machine-learning-iot-event-ingestion-mobile-sql-redis-sdk-improvements

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-value-prop/

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-ios-get-started/

https://azure.microsoft.com/en-us/documentation/articles/partner-xamarin-mobile-services-ios-get-started/

【问题讨论】:

  • 没有“最佳”,它取决于您的其他需求的上下文。 Xamarin 正在推动 Azure,这意味着您将在这条路线上获得良好的支持。肯定没有好的方法。至少可以说,在 iOS 上运行的 WCF 服务很有趣。
  • 视情况而定。如果您有一个带有 REST 服务的现有后端,那么显然 REST 客户端可能是有意义的。如果您有 WCF 服务,则 WCF 客户端是有意义的。如果您使用的是 Azure/Google/Amazon,那么使用适当的客户端库是有意义的。在许多情况下,一个简单的 HTTP 请求就足够了。这实际上取决于项目要求、您的 IT 基础架构等。没有单一的“最佳”方式。
  • 谢谢大家。我对此有点困惑。如果我想使用离线同步,我相信我需要使用 sdk 套件,不是吗。那么所有业务逻辑和数据库调用在哪里,如果我不使用rest apis会发生数据查询吗? (显然我相信它在移动应用程序中,我不想这样做。)根据您过去的经验,哪种方法可以提供最好的用户体验?我的意思是休息 API 或 Azure 应用服务方法?我的应用程序通过 API 进行少量数据交易。 .如果我在任何地方错了,请纠正我。谢谢

标签: azure xamarin xamarin.ios xamarin.forms xamarin-studio


【解决方案1】:

如果您只想使用您的现有服务器 REST API,显而易见的步骤是在 Xamarin 中构建一个 REST 客户端。忘记用于 Xamarin 的 Azure 移动服务客户端或任何相关内容,因为这需要更改您的服务器代码。

关于如何构建 REST 客户端,有多种选择,但我推荐 Refit 作为更简单快捷的方法。例如,您在一个简单的接口中声明您的 REST 方法:

public interface IGitHubApi
{
    [Get("/users/{user}")]
    Task<User> GetUser(string user);
}

神奇的是,所有必需的代码都将在编译时生成,因此您可以专注于 API 方法而不是实现本身,并在几分钟而不是几小时或几天内构建您的客户端。然后你可以像这样使用那个界面:

var gitHubApi = RestService.For<IGitHubApi>("https://api.github.com");
var octocat = await gitHubApi.GetUser("octocat");

不使用 Azure 移动服务客户端的缺点是,如果您需要任何离线/在线同步,您必须自己完成。但根据我的经验,客户端-服务器数据同步是一种极端情况,绝大多数应用都不需要。

【讨论】:

  • 酷感谢 xleon。这是我所期望的。严格回答为什么我必须使用或不使用移动服务。
猜你喜欢
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-19
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多