框架建议用于开发分布式iPhone / iPad应用程序

时间:2010-09-14 22:15:42

标签: iphone ipad ios4 xamarin.ios distributed-apps

是否有支持iPhone / iPad的分布式应用程序框架(广告也可以)?

我在框架中寻找的是什么:

  • 允许我专注于应用程序逻辑
  • 我不需要编写“低级”网络编程代码(我已经完成了太多次,我不想再做一次= p)
  • 应该积极维护(受欢迎会很好)

基本上,我可以更快地发展。

我们计划开发一个软实时TCP / IP客户端/服务器应用程序,其中有许多iPhone / iPad客户端(30+)通过LAN连接到单个服务器。服务器很可能会运行Windows(除非框架不支持它)。

我一直在四处寻找,我看到了:

我仍在决定是使用Objective-C还是MonoTouch,而是倾向于使用MonoTouch,因为我们将获得.NET框架,而不是仅限于Mac世界。

如果我添加了与我的问题无关的任何内容,请随时发表评论---我是iPhone / iPad世界的新手。

4 个答案:

答案 0 :(得分:2)

您需要更明确地了解您的要求。如果您只需要通过REST API进行对象序列化(脱水/水合),那么任何支持POX或JSON的东西都可以正常工作。但是,如果您需要RPC样式的方法调用,包括身份验证,加密/数字签名,事务等,那么您需要上面列出的那些框架之一。

如果您需要一个框架,我个人会倾向于使用MonoTouch WCF,因为它使您能够在以后将客户端移动到其他平台(例如Windows Phone 7)。然后,正如你所说,现在它有点粗糙,如果Mono团队在未来决定他们没有资源投资维护它,你可能最终不得不转向另一个框架。当然,还有一个缺点是您需要将MonoTouch用于您的应用程序,并且不能使用Objective-C。当然,随着iOS开发者协议最近的变化,这不是一个问题,但仍然需要牢记。

(免责声明:我曾经在微软的WCF团队工作,所以我对产品本身有偏见)

我想要的另一个选择是Cocoa Distributed Objects。但是,如果服务器也在OS X上运行,那将是我的选择。我知道有适用于Windows的Bonjour,但我怀疑它是针对服务器场景进行了优化的,而且我也不知道Apple的RPC实现有多丰富对于Windows平台。因此,只有在我专门为Apple的平台构建时,我才能继续使用Apple的技术。

请注意,WCF和分布式对象将为您提供RPC样式的功能,但它们无法帮助您处理任何特定方案。如果您需要/想要更高级别的抽象,例如您需要在线信息或多用户聊天,您仍需要自己实现这些。在这一点上,可能值得研究为您提供这些功能的框架。一个例子是RakNet(您在上面列出),它抽象了远程处理级别并在其上构建了其他功能。

答案 1 :(得分:2)

我们使用WCF / Monotouch取得了巨大的成功 - f / work的某些区域并非100%,但在大多数情况下,您应该会发现使用WCF进行单点操作变得轻而易举。

在monodroid和monotouch以及wm7之间共享我们所有数据同步,模型,测试等的能力非常酷(有些工作 - 这很容易 - 你需要管理多个prj文件)。

小心正确管理对wcf服务的调用,将它们保持在最低限度,保持原型简单。我们最终得到了一个相当复杂的dto来最小化对wcf服务的调用以同步数据 - 这非常值得,因为从头开始同步设备所需的时间现在只是它的一小部分。

使用SSL与服务器通信是一个PITA,但我认为这更像是苹果公司管理它的方式。

答案 2 :(得分:1)

您可以使用Google协议缓冲区来实施RPC,但无论如何您都需要执行一些网络编程来传输邮件。它支持C ++,Java,Python和Objective-C和.NET的界面生成,因此您可以创建一组RPC消息,并获得几乎适用于任何移动平台的代码。移动平台上的传输层,您必须自己实现。

http:// code.google.com/apis/protocolbuffers/ - 主要Protobuf页面(C ++,Java,Python) http:// code.google.com/p/protobuf-net/ - 其中一条评论中提到的Protobuf .NET http:// code.google.com/p/metasyntactic/wiki/ProtocolBuffers - Obj-C的Protobuf

答案 3 :(得分:1)

您可以使用JSON Touch + Vitche PHP Emission Framework,它提供您需要的所有服务器端。您还可以使用该框架访问现有的SOAP(WCF,Axis等)服务。