我们正在寻求为移动设备开发数据密集型应用程序。我们的核心问题是
- 我们将不得不在客户端上存储大量数据
- 客户希望应用程序可以离线工作
- 我们的技能是网络开发 C# ASP.Net。绝对不是 Objective C
我们想到了dev的三种可能
使用 HTML5 本地存储的 Web 应用程序利用离线应用程序缓存。 我们对本地存储有 5MB 的限制,但对于某些浏览器,这可能会降至 2.5MB
Web应用程序通过PhoneGap创建 native 应用程序。 这里的一大优势是我们可以使用文件系统进行存储。不利的一面是它必须通过 App Store(尤其是 iOS)- Apple 订阅应用的收入的 30%
我们使用 MonoTouch 构建应用程序适用于 Android 和 iOS。 很好 - C# 和 .Net 我们可以做到这一点。不好 - 没有黑莓
问题
在这种情况下,我很难看出使用 MonoTouch 比使用 PhoneGap 有什么真正的优势。这些是什么?有吗?
作为本例中的一个例子,将数据保存到文件系统中确实很有用,但我相信电话间隙可以通过 File object 来做到这一点。 .显然,monoTouch 会利用 System.IO。
在 MonoTouch 中是否有明确的附加功能的实例 - 特别是对移动开发有用的功能,例如地理定位或相机类型功能?还是电话差距几乎涵盖了所有这些。
厚颜无耻的附加问题
对于我概述的三种方法,是否还有我遗漏的任何其他选项或我忘记的任何其他主要优点/缺点?
感谢大家的专业知识
最佳答案
我们刚刚完成了一个用 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 channel 非常活跃,Xamarin 员工和社区布道者总是乐于提供帮助或提供对问题的见解。与邮件列表一样。
另一个优点是围绕 MT 发展的生态系统。与等效的 XCode 相比,MT.Dialog 使开发基于表的 UI 变得轻而易举。再加上 .Net BCL,它是公认的基于 Silverlight 的子集,但它具有从序列化、电子邮件到密码学等的所有内容……如果 .Net 没有涵盖它,或者没有特定的 Mono* 项目,您仍然可以在 MT 代码中使用 ObjC 插件。
我不同意机器翻译“尚未证明自己”是一个经过验证的平台。我们正在使用它,虽然我们是一家相对较小的公司,但有很多大公司也在使用它。据报道,Apple 在澳大利亚电视广告中展示的一些应用程序是用 MT 编写的。
为了保持客观,MonoTouch 的 2 个“缺点”对我来说是您仍然需要能够阅读 ObjC(不过,老实说,我不认为这是一个缺点......作为一个' C#' 开发人员无论如何我必须能够读写过多的语言)而且事实上,从历史上看,MonoDevelop 一直存在一些问题。主要错误似乎已被消除,并且由于它是一个开源项目,您可以随时修复它们并帮助我们其他人!
回答您的问题:
- 我们将不得不在客户端上存储大量数据
在 C# 中使用 .Net 的 System.IO 类。如果您不确定这些,MSDN 有大量示例(MT 隐藏了文件存储的 iOS 实现)
- 客户希望应用程序可以离线工作
他们都可以做到这一点,但在我看来,原生应用总是感觉更好。
- 我们的技能是网络开发 C# ASP.Net。绝对不是 Objective C
MonoTouch 是 C# - 发挥您的优势并在数周而不是数月内拥有一个应用程序!
我的 2 便士!我会毫不犹豫地一次又一次地选择同一条路线。
关于c# - 数据密集型应用程序的电话差距与单点触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9191611/