4

我正在开始开发一个新的 iPhone 应用程序,该应用程序将要求该应用程序将其数据模型与 Web 应用程序同步。这是我第一次尝试这样的任务。

内部数据模型相当简单——少数实体具有一对多映射。

我一直在寻找处理服务器端的各种选项,但是我对 Windows Azure 和同步服务框架的调查让我抓狂。我希望有人可以帮助我解决问题。

1) 是否可以创建一个可扩展的 Web 应用程序,托管在 Windows Azure 上,集成 Microsoft 的同步服务?我对 Azure 可以提供的服务与您必须在自己的服务器上安装的服务感到困惑。谁能指出我正确的页面?目前我能找到的唯一同步服务需要我在 Windows 机器上安装同步服务,所以我很困惑。

2) 是否有 iOS SDK + 示例可以让我在 Azure 上设置 Web 服务并同步基本数据库(Core Data、SQLite 或其他)。

3) 假设上述情况是可能的,那么我需要做些什么来托管一个可以访问这些数据的 Web 应用程序。

最后,AWS 是否提供类似的服务。我发现了 SimpleDB 产品和示例 iOS 应用程序,但 SimpleDB 的未来看起来很模糊,我不想围绕它开发我的应用程序。

我还查看了 Google App Engine,但找不到任何同步框架来提供起点。作为一名独立开发者,我无法投入大量时间来扮演自己的角色。

谢谢,

蒂姆

4

1 回答 1

4

我最近使用 Windows Azure 和多平台客户端实现了一个同步系统:

  • 客户端是 WP7、iOS 和 Android
  • 数据存储在Windows Azure 表存储中
  • 使用ASP.NET Web API,我们公开了一个用于同步的通用 API(上传和下载更改、请求完全重置、身份验证……)
  • 所有客户端都使用 SQLite 进行本地持久性并使用 JSON 与 ASP.NET Web API 交互

我们决定不使用 Sync 框架,因为它似乎限制了我们同步系统的灵活性。因为我们支持数以百万计的设备,所以我们决定使用表存储的强大功能(例如每个用户的分区)进行自定义同步实现。

无论如何,随着 SDK 的新更新,创建 API(无论是使用 .NET 还是任何其他语言)并以可靠的执行方式(无论是表存储、MongoDB ......)保存您的数据都将变得很容易.

要回答你的第二个问题,我不知道是否有一个完整的例子可以做到这一点,但这可能会让你开始:

  1. iOS 上的 SQLite:http ://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_4_iPhone_Application
  2. iOS 中的 JSON:http: //stig.github.com/json-framework/
  3. ASP.NET Web API 和 iOS:http ://www.youtube.com/watch?v=_m9kEI3s3-k
  4. 表存储教程:https ://www.windowsazure.com/en-us/develop/net/how-to-guides/table-services/

要托管所有这些,您需要订阅 Windows Azure:

  • 您可以从一个简单的网站(目前免费)开始托管您的 API:https ://www.windowsazure.com/en-us/home/scenarios/web-sites/ (一旦您的服务变得流行,您将需要升级到 Web/Worker 角色)。
  • 一个存储帐户(您只需为使用的内容付费,尝试试用,为您提供 90 天的有限免费存储空间)。

如果您决定使用非 ASP.NET Web API 实现,您甚至可以在 Mac 上完成所有操作,这要归功于新功能:http: //blogs.msdn.com/b/interoperability/archive/2012/06/07 /windows-azure-command-line-tool-for-mac-and-linux.aspx

于 2012-06-08T12:44:04.017 回答