数据密集型应用程序的手机缺口与单触式

Cra*_*ket 45 c# mobile html5 xamarin.ios cordova

我们正在寻求为移动设备开发数据密集型应用程序.我们的核心问题是

  1. 我们将不得不在客户端上存储大量数据
  2. 客户希望应用程序脱机工作
  3. 我们的技能是非常多的Web开发C#ASP.Net.绝对不是目标C.

我们想到了dev的三种可能性

  1. 使用HTML5本地存储的Web应用程序利用脱机应用程序缓存.我们对本地存储的限制为5MB,但对于某些浏览器,这可能会降至2.5MB

  2. Web应用程序通过PhoneGap创建本机应用程序.这里的一大优势是我们可以使用文件系统进行存储.不利的一面是,它将不得不通过App Store(尤其是针对iOS) - 苹果订阅应用的收入增加30%

  3. 我们使用适用于Android和iOS的MonoTouch构建应用程序.好 - C#和.Net我们可以做到这一点.坏 - 没有黑莓

在这种情况下,我很难看到使用MonoTouch优于PhoneGap的任何真正优势.这些是什么?他们有吗?

作为这个例子中的一个例子,将数据保存到文件系统上确实很有用,但我相信手机间隙可以通过File对象实现.显然,monoTouch会利用System.IO.

是否存在MonoTouch中具有明确附加功能的实例 - 特别是对移动设备有用的功能,例如地理定位或相机类型功能?或者电话差距几乎涵盖所有这些.

厚脸皮的附加问题

对于我已经忘记的三种方法,还有其他任何我错过的选项或任何其他主要优点/缺点吗?

感谢大家的专业知识

Dar*_*bio 40

我们刚刚完成了一个用MonoTouch编写的数据密集型应用程序.该应用程序通过中间层访问SAP数据,并在应用程序上公开.它还允许从应用程序直接更新到SAP,再次通过相同的中间层.

我们正在使用MonoDroid将其移植到Windows Phone和Android.

我花了一段时间才说服老板MonoTouch是前进的方式,我们事先尝试了一些不同的产品,包括jQuery mobile,ExtJS和Obj C.

我试图说服他的时间是收购Attachmate的时间,看起来有时像MonoTouch注定要失败.幸运的是,对于我们(我)来说,Xamarin像火焰中的众所周知的凤凰一样崛起,并且他们继续将Mono*发展到现在的状态.

作为C#开发人员(和Mono爱好者),主要赢得Obj C或任何HTML/JavaScript的事实是我可以使用C#来完成工作.文档非常好,当doco没有完全削减它(最近更新)时,社区做了.

IRC频道非常活跃,Xamarin员工和社区福音传播者总是愿意帮助或提供对问题的洞察力.和邮件列表一样.

另一个优势是生态系统正在MT周围发展.与XCode等效的相比,MT.Dialog使开发基于表格的UI变得非常轻松.再加上.Net BCL,无疑是基于Silverlight的子集,但它拥有从序列化,电子邮件到密码等所有内容......如果.Net没有涵盖它,或者没有特定的Mono*项目,你仍然可以使用你的MT代码的ObjC插件.

我不同意MT已经"证明自己"是一个经过验证的平台.我们正在使用它,虽然我们是一家规模相对较小的公司,但也有很多大公司也在使用它.据报道,苹果公司在Aus的电视广告中展示的一些应用程序是用MT编写的.

为了保持客观,MonoTouch的2'缺点一直是你仍然需要能够阅读ObjC(但是,我不认为这是一个骗局...作为'C#'开发人员无论如何,我必须能够阅读和编写过多的语言)而且,从历史上看,MonoDevelop有点儿错误.主要的错误似乎被压扁了,并且它是一个开源项目,你可以随时修复它们并帮助我们其他人!

回答你的疑虑:

  1. 我们将不得不在客户端上存储大量数据

在C#中使用.Net的System.IO类.如果你不确定这些,MSDN有很多例子(MT隐藏了文件存储的iOS实现)

  1. 客户希望应用程序脱机工作

他们都可以做到这一点,但在我看来,Native应用程序总是让人感觉更好.

  1. 我们的技能是非常多的Web开发C#ASP.Net.绝对不是目标C.

MonoTouch是C# - 发挥你的优势,并在几个星期而不是几个月有一个应用程序!

我的2便士!我会毫不犹豫地再次选择相同的路线.


Col*_*inE 14

我已经使用PhoneGap一段时间了(在WP7上)但没有使用过MonoTouch,但我是一位经验丰富的C#/ Silverlight开发人员.

MonoTouch的一些优点:

  • 您可以在本机UI中对结果进行编码,从而在所有平台上提供最佳体验
  • C#是一种"进取强度"的编程语言.它非常适合数据密集型应用程序的开发
  • 您现有的技能将在这里为您服务
  • 还有用的MonoTouch写了许多应用程序可通过应用程序商店.

MonoTouch的一些缺点:

  • 您再次编写C#代码的iPhone API,因此要移植到Android,您需要为MonoDroid提供单独的UI层.

PhoneGap的优点:

  • 它开始看起来像一个非常成熟的框架,在所有支持的操作系统中使用PhoneGap编写大量应用程序.
  • PhoneGap有很好的社区支持
  • 它使用HTML5,许多人将其视为未来的技术.这是一个相当广泛的声明,然而,大多数大玩家(微软,Adobe,......)都支持它.

PhoneGap的缺点:

  • 它使用JavaScript,可能是广泛使用中最容易被误解的语言!
  • UI是用HTML编写的.尽管jQuery Mobile等框架做出了最大的努力,但它永远不会有原生的感觉.
  • 因为它具有特定于平台的"填充"代码以提供一致的API,所以您会发现特定于平台的问题.但是,我发现PhoneGap团队很快就解决了这些问题.

总之,一个艰难的选择!

我个人会去PhoneGap,但不是试图模仿任何特定操作系统的外观和感觉,而是创建自己的UI,适用于您的应用程序并在所有平台上使用它.

  • 您没有在AppStore上寻找PhoneGap应用程序,而是访问了PhoneGap的网站.如果你给MonoTouch同样的待遇,你会很快找到它:http://xamarin.com/apps - 使用MonoTouch和Mono for Android构建的数百个应用程序. (4认同)