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

时间:2012-02-08 10:34:48

标签: c# html5 mobile cordova xamarin.ios

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

  1. 我们必须在客户端上存储大量数据
  2. 客户希望该应用脱机工作
  3. 我们的技能是非常多的Web开发C#ASP.Net。绝对不是目标C
  4. 我们想到了dev的三种可能性

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

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

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

    4. 问题

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

      作为这个例子中的一个例子,将数据保存到文件系统是非常有用的,但我相信电话间隙可以通过File object来实现。显然,monoTouch会利用System.IO。

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

      厚颜无耻的其他问题

      对于我已经忘记的三种方法,我是否还有其他选择或其他主要优点/缺点?

      感谢大家的专业知识

3 个答案:

答案 0 :(得分: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. 我们必须在客户端上存储大量数据
  2. 在C#中使用.Net的System.IO类。如果你不确定这些,MSDN有很多例子(MT隐藏了文件存储的iOS实现)

    1. 客户希望该应用脱机工作
    2. 他们都可以这样做,但在我看来,Native应用程序总是让人感觉更好。

      1. 我们的技能是非常多的Web开发C#ASP.Net。绝对不是目标C
      2. MonoTouch是C# - 发挥你的优势,并在几周内有一个应用程序,而不是几个月!

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

答案 1 :(得分:14)

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

MonoTouch的一些优点:

  • 您可以在原生用户界面中对结果进行编码,从而在所有平台上提供最佳体验
  • C#是一种'进取型'编程语言。它非常适合开发数据密集型应用程序
  • 您现有的技能将为您提供良好的服务
  • 通过应用商店提供numerous applications written with MonoTouch

MonoTouch的一些缺点:

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

PhoneGap的优点:

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

PhoneGap的缺点:

  • 它使用JavaScript,可能是most misunderstood language in widespread use
  • UI是用HTML编写的。尽管jQuery Mobile这样的框架做了最大的努力,但它永远不会有原生的感觉。
  • 因为它具有特定于平台的“填充”代码以提供一致的API,所以您会发现特定于平台的问题。但是,我发现PhoneGap团队很快就解决了这些问题。

总之,这是一个艰难的选择!

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

答案 2 :(得分:2)

昨天发布的MonoTouch新版本(2012年2月8日) - 5.2。许多新功能使开发iOS应用程序变得更容易,更快捷。有关它的详细信息,请访问此处:http://blog.xamarin.com/

使MonoTouch成为一项特别有趣的技术的一件事是能够开发一些非常复杂的应用程序,无需互联网连接即可运行。这可能是个大问题。