c# - 任何具有跨平台 WP7 Android iOS 移动开发架构经验的人(monotouch、monodroid、C#)

标签 c# windows-phone-7 mobile xamarin.ios xamarin.android

This question is specifically related to a recommended architecture and people's previous experiences for cross-platform WP7, iOS, Android apps developed using C#, Monotouch and Monodroid respectively. I have researched previous questions here, here and here. They provide good answers but not quite what I'm looking for. I have also found this excellent question which does go into the cost benefit so there is some overlap.

我需要为一家健康和健身公司开发一个跨平台的 iPhone/iPad、WP7 和 Android 应用程序,该应用程序将与他们的网站集成。该应用程序需要少量本地数据存储以用于离线模式并在网络可用时与网站同步。我是一个彻头彻尾的 Windows (C#/C++) 开发人员,我真的不想沿着三个 Objective C、Java 和 C# 应用程序的路线走下去,尽管如果必须的话我会的。我还将担任技术主管,并将一些工作外包给这个项目的团队。

我想知道这里是否有人有使用 Monotouch、Monodroid 和 WP7 进行跨平台开发的经验,并分享他们在应用程序架构方面的经验,以尽可能多地重用代码。我正在考虑的架构如下:

Proposed architecture for Wp7, Monotouch, Monodroid app

My question is as follows:

  • 这里有人试过这样的东西吗?
  • 这些框架(Monotouch、monodroid)是否值得从事此类工作?
  • 我能否在 Visual Studio 2010 中使用针对 Monotouch、Monodroid 和 Wp7 目标的单独项目 (dlls/exe) 设置整个项目(但使用“添加为链接”共享代码)?
  • 对于这种(或类似的)架构,我实际上可以期待什么样的代码重用?即我可以使用哪些策略/模式来重用本地数据访问、网络服务和业务逻辑?

最佳答案

您可能想查看 MonoCross 项目,该项目旨在帮助您重用具有多个表示层的 C# 代码:

http://code.google.com/p/monocross/

MonoCross (ITR Mobility) 的作者为各种客户创建了多个移动跨平台解决方案,并就此主题撰写了两本书,一本是“iPad in the Enterprise”(http://amzn.to/zAhQK6) 和即将出版的“Cross-使用 C# 进行平台移动开发”(http://amzn.to/wM6RsF)。

与此同时,您可以观看 Scott Olson 在 Monospace 2011 上所做的演示,其中描述了如何使用 MonoCross 同时重用业务逻辑来定位多个移动和桌面平台:

http://www.infoq.com/presentations/The-Rise-of-Mono-in-the-Enterprise

他们在代码中强制执行严格的 MVC 拆分:

MonoCross MVC Pattern
(来源:tirania.org)

使用此模型设计应用程序的最大好处是您可以在每个平台上运行具有 native 用户界面的相同应用程序。您可以获得 native iOS、Android、Windows UI,它们甚至还有一个 ASP.NET 前端,允许您发布相同业务逻辑的 Web 版本。

Apple 在其 iPad 业务中展示的 Medtronic 示例应用程序成功使用了这项技术:

http://www.apple.com/ipad/business/profiles/medtronic/

我建议您还查看 Scott 的博客,他定期在其中发布有关跨平台架构的经验。

关于c# - 任何具有跨平台 WP7 Android iOS 移动开发架构经验的人(monotouch、monodroid、C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8755801/

相关文章:

multithreading - WP7-套接字体系结构-如何管理套接字连接?线程?

android - "cross-platform mobile apps"性能

mobile - 检查移动设备与桌面设备

c# - 在大型 asp.net C# web 应用程序中修复 SQL 注入(inject)表单

c# - 我的 Outlook 加载项如何获取用户在我的自定义菜单中右键单击的附件对象?

.net - 可以从 WP7 应用程序调用电话吗?

android - 在 Coldfusion 中使用 cfheader 和 cfcontent 时在移动浏览器(Android)上下载不成功

c# - 如何在 GridView 中显示某些列?

c# - 检查数据表中是否存在现有条目

windows-phone-7 - 如何检测 XNA MediaPlayer 中的声音已经结束?