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

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

5879 观看

4回复

这个问题与推荐的架构和人们以前分别使用C#,Monotouch和Monodroid开发的跨平台WP7,iOS,Android应用程序的体验有关。我在这里这里这里都研究过以前的问题。他们提供了很好的答案,但不是我想要的。我也发现这个优秀的问题确实涉及成本效益,因此存在一些重叠。

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

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

建议的Wp7,Monotouch,Monodroid应用程序的架构

我的问题如下:

  • 这里有人试过这样的事吗?
  • 这些框架(Monotouch,monodroid)是否值得为这种工作加盐?
  • 我可以在Visual Studio 2010中使用Monotouch,Monodroid和Wp7目标的单独项目(dlls / exe)设置整个项目(但使用“Add as Link”共享代码)?
  • 我可以通过这个(或类似的)架构实际期望什么样的代码重用?即我可以使用哪些策略/模式来重用本地数据访问,Web服务和业务逻辑?

最好的祝福,

作者: Dr. ABT 的来源 发布者: 2019 年 8 月 24 日

回应 (4)


25

决定

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

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

MonoCross(ITR Mobility)的作者为各种客户创建了多个移动跨平台解决方案,并撰写了两本关于该主题的书籍,一本是“企业中的iPad”(http://amzn.to/zAhQK6)和即将推出的“使用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模式
(来源:tirania.org

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

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

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

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

作者: miguel.de.icaza 发布者: 08.01.2012 02:34

9

根据您的意见,您的要求适用于将与其现有服务集成的跨移动平台,但也可以脱机工作。您对C#通过Mono特别感兴趣,但是您已经表明您没有对其他方法进行折扣。

我觉得HTML / PhoneGap / JavaScript是一条你应该详细探索的路线。该框架的WP7版本刚刚发布,我有使用这种方法向市场发布应用程序的经验。

PhoneGap包装您的HTML / JavaScript代码,在WP7的情况下,它被加载到本地存储中。这使应用程序可以完全脱机工作。这适用于所有版本(iOS,Android等...)

PhoneGap / HTML5的最大问题可能与我们为浏览器开发复杂的基于Web的应用程序时遇到的问题相同。JavaScript的工具不是很好,浏览器差异是一个不变的问题。但是,它是一个久经考验的解决方案。

最后,可以为每个平台创建完全不同的应用程序UI。通过使用MVVM模式,我设法在WP7和iOS应用程序之间共享所有JavaScript业务逻辑,同时具有完全不同的UI:

在此输入图像描述

将其与WP7屏幕进行比较:

在此输入图像描述

注意:我计划很快在AppStore上安装iOS版本的Property Finder,我只需要弄清楚如何使用PhoneGap Build!

作者: ColinE 发布者: 06.01.2012 10:16

9

只需添加另一种替代方案 - mvvmcross

该项目是基于monocross,mvvmlight和opennetcf的经验开发的。

这是一个相当自以为是的mvvm框架(我的意见在其中!),它包括对Droid和Touch的数据绑定支持,它确实鼓励平台之间的代码重用。

该来源可从https://github.com/slodge/MvvmCross获得,它至少已用于几个大型项目中,并且仍在积极开发中。

有关幻灯片共享的介绍性介绍:http://www.slideshare.net/cirrious/dev-evening-monotouch-monodroid-mvvm-mvvmcross-and-databinding

其中一个功能更齐全的样本是会议应用:

sql位应用

作者: Stuart 发布者: 19.04.2012 02:04

1

这个问题很难回答,但我想分享一些想法。

移动开发的情况与90年代上半期的发展非常相似。电话拥有的资源有限,因为计算机拥有,移动操作系统正在迈步,因此生态系统相对较小。他们有自己的哲学,工具甚至语言。这是一件好事,但却引发了跨平台开发的难题。结果,有许多尝试清除这一点。人们构建框架,包装器等,这是一种抽象,抽象是漏洞。这对移动设备来说非常重要,不仅是CPU周期数的性能,还有电池的性能,这对用户来说更为重要。

如果我是你,我会在原生环境中构建应用程序,特别是如果你有一些性能方面的考虑。最佳支持,工具,教育资源等支付重复的业务逻辑。总而言之,它不是操作系统或数据库管理系统,代码库不会很大;)

话虽如此。关于Monotouch和Monodroid我会非常小心,因为Apple阻止了许多第三方编译器创建的iPhone OS应用程序而King并不真正关心开发人员。单声道将被专利侵权或专有软件供应商冲洗的情况很有可能。这对我来说很难过,因为C#是我最喜欢的语言。

PS。我不相信移动HTML5会很快接管。

作者: Lukasz Madon 发布者: 06.01.2012 11:16
32x32