构建应用程序以满足WP7,Iphone和& Android的

时间:2011-03-22 22:49:05

标签: mvvm windows-phone-7 xamarin.ios xamarin.android

我即将开始构建一个将在所有平台上使用的应用程序。我会使用monotouch和monodriod所以我可以把东西放在.net

我有点懒,所以我希望能够尽可能多地重用代码。

假设我想创建一个存储联系信息的应用程序。例如姓名&电话号码

我的应用程序需要能够从Web服务检索数据并在本地存储数据。

MVVM模式看起来像是要走的路,但我不确定下面的方法是100%正确

这是对的吗?

  1. 包含我的模型的项目
  2. 包含我的视图,本地存储方法以及我将视图绑定到的模型的项目。在这种情况下,将有3个基于3 os的
  3. 的不同项目
  4. 用于绑定服务和本地数据存储的数据访问层项目
  5. 任何建议都会很棒。

    感谢您的时间

4 个答案:

答案 0 :(得分:5)

没有具体回答你的问题,但这里有一些懒惰的指示......

  • 你绝对可以在所有3个平台上重复使用大量代码(加上MonoWebOS?!)
  • 重用代码非常简单,但是你需要为每个平台上的每个库维护单独的项目文件(这可能是一件苦差事)
  • MVVM肯定适用于WP7。它在MonoTouch和MonoDroid中的表现并不是很好。
  • 您需要为每个设备单独编码的一些主要区域是:
    • UI抽象 - 每个平台都有自己的“标签”,“列表”,“敬酒”等概念
    • 网络运营 - 每个
    • 的System.Net功能略有不同
    • file IO
    • 多任务处理能力
    • 设备互动(例如,位置,拨打电话等)
  • 接口抽象和IoC(Ninject?)可以帮助解决所有这些问题。
  • 相同的单元测试应该能够运行所有3个平台吗?

更新 - 我简直无法相信我偶然发现了自己的答案...... :)除了这个答案之外,你可能还想看看MonoCross和MvvmCross--毫无疑问,其他很多混合平台都在路上:

答案 1 :(得分:2)

Jonas Follesoe's cross platform development talk:目前必须是最全面的资源。他谈到如何最好地共享代码和资源,抽象出大部分UI和UX差异,展示跨平台的MVVM可行的可重用使用以及用于组合几乎自动化构建的好技术。 (是的,这包括一种在Visual Studio上编译单一内容的方法)

最重要的是,他有成品的可用源代码,以及单独放置在自己的车间项目中的一些主要组件,以及50 +页的pdf,详细说明了这样做的步骤。FlightsNorway on github

IMO唯一缺少的是如何最好地处理所有平台上的本地数据存储。在这种情况下,我会引导你Vici Cool Storage一个可以使用WP7,MonoTouch和(虽然没有得到官方支持)MonoDroid的ORM。

*免责声明*网站文档不是最新的,但源代码可用。 (因为许多程序员的文档都是Kriptonite)

答案 2 :(得分:1)

我认为编写代码一次并让它在所有三个平台上运行的最简单方法可能是基于Web的应用程序。例如,请查看Untappd

答案 3 :(得分:1)

您可以先看看Robert Kozak的MonoTouch MVVM框架。这只是一个开始。

MonoTouch MVVM