手机差距与数据密集型应用monotouch

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

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

我们已经想到了三种可能性

  1. 使用HTML5本地存储的Web应用程序利用脱机应用程序caching。 我们对本地存储有5MB的限制,但对于某些浏览器来说,这可能会降低到2.5MB

  2. 通过PhoneGap的 Web应用程序来创build一个本地应用程序。 这里的好处是我们可以使用文件系统进行存储。 不利的一面是,它将不得不经过App Store(尤其是iOS) – 苹果的订阅应用程序收入的30%

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

在这个例子中,我正在努力看到使用PhoneGap的MonoTouch的真正优势。 他们是什么? 他们是吗?

在这个例子中,将数据保存到文件系统将是非常有用的,但我相信电话差距可以通过File对象完成 。 显然,monoTouch会利用System.IO。

是否有实例在MonoTouch中有明确的附加function – 尤其是对移动开发有用的function,例如地理定位或相机typesfunction? 或者电话差距几乎涵盖了所有这些。

厚颜无耻的额外问题

我所错过的还有其他什么select,或者我已经概述的三种方法的其他主要优点/缺点,我已经忘记了吗?

感谢大家的专业知识

我们刚刚完成了一个用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周围的生态系统。 MT.Dialog使开发基于表格的用户界面与XCode相当。 加上这个.Net BCL,它是一个基于Silverlight的子集,但是它具有从序列化,电子邮件到密码等的一切…如果.Net没有覆盖它,或者没有一个特定的Mono *项目,你仍然可以使用你的MT代码使用ObjC插件。

我不同意MT已经certificate自己是一个可靠的平台。 我们正在使用它,虽然我们是一个相对较小的公司,但也有很多大公司也在使用它。 据报道,苹果公司在澳大利亚的电视广告中展示的一些应用程序是用MT写的。

为了保持客观,MonoTouch的“缺点”对我来说就是你仍然需要能够阅读ObjC(虽然,tbh,我不认为这是一个骗局)。作为一个'C#'开发者无论如何,我必须能够阅读和编写大量的语言),而且从历史上看,MonoDevelop有点儿麻烦。 主要的错误似乎已经被压扁了,而且它是一个开源项目,你可以随时解决它们,帮助我们其他人!

回答您的疑虑:

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

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

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

他们都可以做到这一点,但我认为一个本机应用程序总是感觉更好。

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

MonoTouch是C# – 发挥你的长处,有一个应用程序在几周,而不是几个月!

我的2便士! 我会毫不犹豫地再次select相同的路线。

我已经使用PhoneGap了一段时间(在WP7),但没有使用MonoTouch,但是我是一个有经验的C#/ Silverlight开发人员。

MonoTouch的一些优点:

  • 您可以在本地用户界面中编写结果,在所有平台上提供最佳体验
  • C#是一种“进取的力量”编程语言。 它非常适合数据密集型应用程序的开发
  • 你目前的技能将在这里很好地为你服务
  • 有许多应用程序通过应用程序商店使用MonoTouch编写 。

MonoTouch的一些缺点:

  • 您再次编写C#代码的iPhone API,因此要移植到Android,您将需要为MonoDroid有一个单独的UI层。

PhoneGap的优点:

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

PhoneGap的缺点:

  • 它使用的JavaScript,可能是最被误解的语言在广泛使用 !
  • UI是用HTML编写的。 尽pipe像jQuery Mobile这样的框架最大的努力,它永远不会觉得自己的本地。
  • 因为它具有特定于平台的“填充”代码来提供一致的API,所以您会发现特定于平台的问题。 不过,我发现PhoneGap团队很快就解决了这些问题。

总之,一个艰难的select!

就个人而言,我会去PhoneGap,但不要试图模仿任何特定的操作系统的外观和感觉,而是创build自己的用户界面,适用于您的应用程序,并在所有平台上使用。

有一个新版本的MonoTouch昨天发布(2012年2月8日) – 5.2。 许多新function使开发iOS应用程序变得更加简单快捷。 关于它的细节可以从这里访问: http : //blog.xamarin.com/

使MonoTouch成为一个特别有趣的技术的一件事就是能够开发一些非常复杂的应用程序,可以不需要互联网连接运行。 这可能是一个biggie。