0

我研究了 Azure 移动服务,发现它很棒,但没有给我想要的灵活性(Node.js 也让我对 C# 产生了不好的印象)。

我在 Windows 8 中使用定期更新通知,并且已经有一个 ASP.NET Web API 项目提供平铺图像和平铺 xml 内容。我希望将 Azure Worker Role 与 Azure 存储表一起用于 Windows 8 和 Windows Phone 的推送通知。

我找到了这个例子,但它似乎是针对 VS2012 Release Preview 的。我找不到更新版本或任何其他可使用的示例。特别是我希望我的服务同时支持 Windows 8 和 Windows Phone。

http://watwindows8.codeplex.com/wikipage?title=Push%20Notification%20Worker%20Sample

如果有人可以概述我需要的参考/nuget 包。这将是一个很大的帮助。

编辑:

Jim O'Neil 的博客是一个很好的起点。我需要使用 Azure Worker Role,因为我想定期发送通知。

我还找到了用于从服务器发送推送通知的 WnsRecipe NuGet 包。Jim O'Neil 的解决方案同样出色。

最后,为了节省一点时间,我希望避免编写用于将应用程序通道 ID 注册到服务器上的表的数据访问代码。Azure 移动服务 MobileServiceClient 类是一个很好的解决方案,因为它允许您使用几行代码完成所有这些工作。该表可通过 REST 服务获得。然而,问题仍然存在:

  1. 我可以继续将移动服务表存储 MobileServiceClient 与我的应用程序和 Azure 工作者角色一起使用,还是必须使用 Azure 表存储?
  2. 如果我可以使用 MobileServiceClient,我如何从我的 Azure 辅助角色访问表?
  3. 如果我必须使用同样免费提供 REST 服务的 Azure 表存储,我如何从我的 Windows 8 应用程序访问该表?
4

3 回答 3

1

当您使用 MobileServiceClient 在移动服务中存储数据时,您实际上是将数据存储在 SQL Azure 数据库中。从您的工作角色访问这些数据时,您有多种选择。

  • 使用 SQL 客户端直接连接。这可能是实体框架、不同的 ORM,甚至是原始 ADO.NET。您可以通过在 Azure 门户中选择它来获取数据库的连接字符串。在仪表板选项卡上有一个显示连接字符串的选项。
  • 使用客户端库通过移动服务访问数据。不幸的是,我们还没有可以从工作角色使用的官方 SDK,但好消息是NuGet 上有一个非官方的
  • 通过移动服务通过发出 HTTP 请求提供的 HTTP 端点直接访问数据。API 记录在这里
于 2013-01-17T18:09:02.257 回答
1

Windows Azure 服务总线刚刚发布了一项新功能,允许从 C# 后端(很快也从移动服务)推送 Windows 8(和 iOS)通知,根本不需要顶部句柄 ChannelURI。

看看:http ://channel9.msdn.com/Shows/Cloud+Cover/Episode-100-Introduction-to-the-Windows-Azure-Service-Bus-Notification-Hubs

Windows 8 代码演练:http ://channel9.msdn.com/Blogs/Subscribe/Service-Bus-Notification-Hubs-Code-Walkthrough-Windows-8-Edition

如果你尝试一下,让我知道你的想法!

于 2013-02-14T22:05:30.110 回答
1

严格来说,不需要 NuGet 包,它们只是功能的包装器(所有内容都是 REST/OAuth),让您的生活更轻松。正如您所观察到的,用于 Windows 8和 Windows Phone 的 Windows Azure 工具包在某种程度上已被Windows Azure 移动服务所取代。

如果您想自己完成这一切,您可以查看我撰写的关于使用 Azure 网站进行推送通知的三部分博客系列。它是网站,而不是 Web 角色,但那部分是可以互换的;不过,我想说的是,除非您已经实现了正在使用的服务,否则网站将是一个更经济的选择。

我没有将 Windows Phone 整合到该系列中,而且 Windows Phone 确实使用了与 Windows 8 略有不同的通知机制,但这在我的待办事项清单上,希望有什么能让你朝着正确的方向前进。

于 2013-01-16T15:44:39.020 回答