Appcelerator VS. MonoTouch - 哪一个最适合.NET开发人员?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我是一名具有10年开发Web和移动应用程序经验的.NET开发人员。我正在寻求分支到iPhone(也可能是Android)的开发。我在看两款产品:

Appcelerator Titanium(http://www.appcelerator.com/)和MonoTouch(http://monotouch.net/)

我喜欢MonoTouch,因为它站在了Mono开发社区,它是C#。在说,Appcelerator看起来非常简单,使用HTML和Javascript,也瞄准Android(即超过iPhone)。

我期待开发的应用程序是具有数据输入的业务应用程序,与后台同步等。

提问于
用户回答回答于

首先,我从来没有与MonoTouch合作过,但是从Appcelerator与Titanium Mobile合作过一些应用程序。我的答案将主要适用于它。

选择移动应用程序框架(在我看来)的原因不应该仅仅基于不想学习某种语言的事实,除非为自己和乐趣而做。还有其他好处,也有缺点。

缺点

你不能做任何事情。这些框架(MonoTouch / Droid,Titanium Mobile,Rhodes Mobile等)将仅通过API公开部分可能性。你将被限制使用它们。在开始一个项目之前,检查一下你需要的一切是否存在并且运作良好。

对我来说,另一个主要的缺点是你永远依赖第三方。Appcelerator家伙做的很好,但是当新的测试版发布时,你将无法使用新的iOS测试版功能。事实上,在最终的新版操作系统推出新功能,甚至测试应用程序后,可能必须等待几天/几周。如果他们在支持操作系统功能方面变得更快,未来可能会发生变化。对于iOS 4,如果我记得不错,对于FINAL iOS 4可用性的第一天(可能是付费客户),“多任务”不能使用。也许MonoTouch / Droid速度更快。随着eBay / Paypal投资9百万美元,Appcelerator可能会更快。

现在,如果第三方关门,会发生什么?你必须考虑一下。未来将如何处理你的工作?Appcelerator开源Titanium Mobile,因此社区有机会绕过它并继续开发。

在Titanium Mobile中,没有MVC,所以你必须用代码来组织自己。(可能是不利的一面)

TDD:Titanium中没有内置的测试工具,但您可以使用名为Helium的第三方工具(来自Appcelerator家伙的OSS,Kevin Whinnery)。

那为什么要使用它们?

跨平台!至少,对于钛手机:一个代码库。通过使用Tianium,将为iPhone和Android应用程序创建一个项目。一个代码库。业务逻辑将是相同的代码。将会有一些UI工作(记住Android是分散的,不同的屏幕分辨率,CPU等等)。很快,应该可以将BlackBerry添加到该版本(几个月的内测版本)和iOS通用二进制文件。后来可能还有其他平台。你已经可以做一个iPad应用程序,但必须做一个单独的项目,现在没有通用的二进制文件(我认为有一个解决方案),但应该在下一个版本。

学习曲线:如果知道如何编写Javascript(TiMob)或.Net,将很快完成应用程序。

我从一位经验丰富的iOS开发人员那里获悉,他也与Titanium合作,使用Titanium比使用ObjC应用要快得多。

只有iOS?

如果打算全职制作iOS应用程序,在接下来的几年中,应该学习Objective C。这将提供最好的工具,始终保持最新的文档。

用户回答回答于

我一直在.Net世界上工作一段时间,当iPhone开始创建本地应用程序的能力时,它称为我的全部注意力,并且我真的试图学习objc,我花了2本书开始尝试并试图为一个月,然后我离开iPHone编程,因为你必须制造大量的东西,而不是.NET。

当Miguel de Icaza推出MonoTouch时,我尝试了一下,我意识到我之前完成的大部分代码都是功能完备的(我一直试图从业务代码中分离出ui代码),这真的是iPhone上.NET的一个重点。 ,将大部分已经完成的业务逻辑带入设备。

同样在objc上,你不会找到任何像LINQ或var关键字,在MonoTouch上使用它的Web服务只需点击几下鼠标等。

如果你想瞄准Android平台,MonoDroid(monodroid.net)也会在今年晚些时候推出稳定版本,你现在可以试试beta版。另外如果你想要定位到Mac OSX,那就是MonoMac。因此,可以在这3个平台之间共享类库,而不必提及它也可以在Windows上工作,反之亦然(如果可能的话)。

唯一需要担心的是其用户界面,但大部分业务逻辑都应该可以工作。这里是MonoTouch http://monotouch.net/Documentation/Assemblies中支持的.NET程序集的完整列表,同时MonoTouch公开了C#/ CIL绑定到所有CocoaTouch API。

扫码关注云+社区