c# - 数据密集型应用程序的电话差距与单点触摸

标签 c# html mobile cordova xamarin.ios

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

  1. 我们将不得不在客户端上存储大量数据
  2. 客户希望应用程序可以离线工作
  3. 我们的技能是网络开发 C# ASP.Net。绝对不是 Objective C

我们想到了dev的三种可能

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

  2. Web应用程序通过PhoneGap创建 native 应用程序。 这里的一大优势是我们可以使用文件系统进行存储。不利的一面是它必须通过 App Store(尤其是 iOS)- Apple 订阅应用的收入的 30%

  3. 我们使用 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 一直存在一些问题。主要错误似乎已被消除,并且由于它是一个开源项目,您可以随时修复它们并帮助我们其他人!

回答您的问题:

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

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

  1. 客户希望应用程序可以离线工作

他们都可以做到这一点,但在我看来,原生应用总是感觉更好。

  1. 我们的技能是网络开发 C# ASP.Net。绝对不是 Objective C

MonoTouch 是 C# - 发挥您的优势并在数周而不是数月内拥有一个应用程序!

我的 2 便士!我会毫不犹豫地一次又一次地选择同一条路线。

关于c# - 数据密集型应用程序的电话差距与单点触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9191611/

相关文章:

html - Angular 7 App 样式在 Safari、Opera 和 IE 中损坏,在 Chrome、Firefox、Vivaldi 和 Edge 中正常

ios - 如何从 native 应用程序维护与 AngularJS 网站的 session ?

c# - 使用派生泛型派生类的实例调用方法

c# - 将文件夹当前状态与保存的先前状态进行比较 (C#)

c# - 不可变数据结构和并发

c# - 从 Windows 窗体项目创建 DLL

python - Flask - 提交按钮提交所有表单而不是一张表单

html - 我应该使用哪个来显示事件的详细信息 -css 或表

javascript - 处理触摸设备中的滑动

javascript - touchend相当于js中的onmouseup吗?