mvvm - 构建适用于 WP7、Iphone 和 Android 的应用程序

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

我即将开始构建一个将在所有平台上使用的应用程序。我将使用 monotouch 和 monodriod,这样我就可以将东西保存在 .net 中

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

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

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

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

它是否正确?

  • 包含我的模型的项目
  • 一个包含我的 View 、本地存储方法以及我将 View 绑定(bind)到的 View 模型的项目。在这种情况下,基于 3 个操作系统的
  • 将有 3 个不同的项目。
  • 用于绑定(bind)服务和本地数据存储的数据访问层项目

  • 任何建议都会很棒。

    谢谢你的时间

    最佳答案

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

  • 您绝对可以在所有 3 个平台上重用大量代码(加上 MonoWebOS?!)
  • 重用代码很容易,但是您需要为每个平台上的每个库维护单独的项目文件(这可能是一件苦差事)
  • MVVM 当然适用于 WP7。它在 MonoTouch 和 MonoDroid 中没有得到很好的满足
  • 您需要为每个设备单独编码的一些主要领域是:
  • UI 抽象 - 每个平台都有自己的“标签”、“列表”、“toast”等概念
  • 网络操作 - System.Net 功能在每个
  • 上略有不同
  • 文件 IO
  • 多任务处理能力
  • 设备交互(例如位置、调用电话等)
  • 接口(interface)抽象和 IoC(Ninject?)可以帮助所有这些
  • 相同的单元测试应该能够运行所有 3 个平台吗?


  • 更新 - 我不敢相信我只是偶然发现了自己的答案...... :) 除了这个答案,您可能还想看看 MonoCross 和 MvvmCross - 毫无疑问还有很多其他混合平台:
  • https://github.com/slodge/MvvmCross
  • http://monocross.net (MVC 而不是 Mvvm)
  • 关于mvvm - 构建适用于 WP7、Iphone 和 Android 的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398809/

    相关文章:

    c# - 如何让文字从左边开始

    windows-phone-7 - Windows Phone 7 SOAP

    ios - 将 iOS 游戏移植到 WP7 的最佳方式

    xamarin.ios - 如何让 Fody/PropertyChanged 在 Xamarin Studio 的 iOS 项目中工作?

    c# - 将 UITableView 从列表切换到分组的最佳方法是什么?

    c# - 如何从父对象的DataContext中读取属性?

    c# - 更改 WPF 图表工具包图例中显示的颜色

    wpf - 在 ItemsControl 中绑定(bind)到 Item 的 DataContext

    windows-phone-7 - 如何从 Windows 7 手机的列表框中删除项目?

    c# - Xamarin.iOS 在将 C# 编译为 native 代码时如何处理内存管理?