首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实际使用Azure移动服务(跨平台客户端)?

如何实际使用Azure移动服务(跨平台客户端)?
EN

Stack Overflow用户
提问于 2014-05-19 19:00:47
回答 2查看 400关注 0票数 0

Azure Mobile似乎非常有用,有内置的通用函数,所以我不需要自己实现它们。但我仍然不明白,如果我需要的不仅仅是ToDoItems的简单示例,我该如何使用它。首先,TableController看起来非常有用,因为它可以提供持久的服务器功能和客户端通知功能。另一方面,如果ToDoItem类位于后端程序集中(当然,我希望将其包含在移动应用程序中),我不能理解如何将该示例用于实际的移动设备。但是,如果我使用一些必须是可移植的共享程序集,如果它不在可移植的子集内,我如何实现ITableData呢?在一些实际项目中使用带有CollectionChanged事件的MobileServiceCollection的方法是什么?然后问题是如何实现逻辑层-使用DbContext的persitent模式很好,但有时我需要服务器上更多的逻辑功能,而不仅仅是存储。计划的作业似乎不适合,因为我需要通过客户端数据更新来调用一些数据处理,而不是按某个计划。

如果有人知道如何在实际项目中使用Azure移动服务,请给我一些示例/想法,移动应用程序的可移植服务层如何与Azure移动服务后端进行交互。对于客户端应用程序,我使用Xamarin工具。

EN

回答 2

Stack Overflow用户

发布于 2014-05-19 19:40:05

使用Xamarin意味着您可以完全在C#中工作,因此您可以重用在非移动平台上开发C#解决方案时了解到的许多概念。例如,您可以共享“DTO”,这意味着您可以在所有平台之间共享代码。请参阅:http://blog.siliconvalve.com/2013/08/16/portable-azure-mobile-services-dtos-when-using-xamarin-and-c/

我在去年的澳大利亚TechEd大会上介绍了这一点,示例代码也可以在Github上找到。演讲的视频和示例链接可以在这里找到:http://blog.siliconvalve.com/2013/09/08/teched-demo-video-available-online/

在发布时,移动服务利用Node.js实现服务器端功能(它仍然受支持),现在也可以使用C#开发服务器端脚本。这些并不局限于数据库交互(尽管这些往往是使用的示例)。如果您查看我的示例项目,您将看到我对入站数据进行了一些解析,以触发推送通知。

最终,除了开始使用代码之外,没有简单的答案(你可以在短时间内免费运行Azure试用版-足以熟悉环境)。

票数 1
EN

Stack Overflow用户

发布于 2017-02-15 05:56:32

TableController应该只为一种类型的实体提供REST API。从根本上讲,REST很简单。你有ToDoList,ToDoListItem,也许每个ToDoListItem都有多个ToDoListListItemDetail条目。这表示3个实体之间的一对多关系。

所以,虽然默认情况下你只能做GET /tables/ToDoListItem,它会给你所有的键,或者你可以做GET /tables/ ToDoListItem /{ ToDoListItems },它会给你一个与键匹配的特定ToDoListItem,但你不能得到一个与特定ToDoListItem匹配的ToDoList。

根据REST最佳实践,这种检索将使用GET /tables/ ToDoList /{ key }/ToDoListItem来完成,它将提供与由键标识的特定ToDoListItems相关联的所有ToDoList。现在,这在逻辑上属于ToDoListController,为了扩展控制器以获得它,您需要实现基于属性的路由。

代码语言:javascript
复制
[RoutePrefix("tables/todolist")]
public class ToDoListController : TableController<DataObjects.ToDoList>
{
   ...
   // extended endpoint
   // GET tables/todolist/{key}/todolistitem
   [Route("{id:guid}/todolistitem")]
   public IQueryable<DataObjects.ToDoListItem> GetAllToDoListItemsForToDoList(string id)
   {
      return from l in Context.ToDoLists 
      join li in Context.ToDoListItems on l.Id equals li.ToDoListId
      where l.Id.Equals(id)
      select li;
   }

所以现在使用这项技术,除了脚手架Table控制器提供的基本实体之外,您还可以查询任何您想要的东西。

您的Xamarin应用程序层也不必实现EntityData的所有数据元素--可能只需要Id和版本。

如果您需要调用与表存储无关的端点,您可以调用自定义,如本文的使用自定义API一节(https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-dotnet-how-to-use-client-library#work-with-tables)中所述。

我不确定我是否回答了您的一些问题,所以请提供更多细节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23736077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档