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

Div*_*Dan 5 mvvm xamarin.ios windows-phone-7 xamarin.android

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

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

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

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

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

它是否正确?

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

任何建议都会很棒.

谢谢你的时间

Stu*_*art 5

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

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

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