nem*_*mke 24 .net android xamarin.ios windows-phone-7 xamarin.android
今天,可以将C#编程用于多个移动平台,例如:
(如果我错过了一些,请随时编辑)当然,它仍然是UI的编程工作,但可以共享主要的应用程序库.
我们都感谢一群聚集在Mono项目和超级英雄Miguel de Icaza的团队,他们的努力是无价的.
困扰我的是,这些选择的好处是什么?在多个移动平台上维护一个应用程序的成本是否较低,然后必须单独编写每个库以获得更好的性能.每种语言的学习曲线?作为所有行业的杰克与.NET忍者
或者知道在原生环境中编写的应用程序二进制文件的大小较小,甚至可能更好地进行优化,而不是忘记您必须等待新平台操作系统更新的支持.
更新:显然还有一件事需要考虑,那就是支持.由于Novell被Attachmate Group收购,所有Mono团队都被解雇了.然而,由Miguel De Icaza领导的团队的核心成员创建了新公司 Xamarin,它将从零开始重塑Mono Mobile开发工具.
Ste*_*ung 19
在我看来,使用单一环境(即C#/ .NET)的最大优点是代码可移植性.像LINQ这样很酷的东西,一旦你习惯了它,你就不能没有.然而,少数移动操作系统(iOS,Android,WP7)在UI方面有很大不同.
而且,如果我没有弄错你的应用程序,那么如果要在移动设备上运行,它就会得到相当多的UI交互.大多数移动应用程序都像80%的UI代码.
因此,您最终还是会为每个平台编写一组单独的UI代码 - 例如,您将使用Silverlight WP7编写(以及所有WPF优点),您将编写完全不同的代码集对于Cocoa中的iOS(IB,视图,控制器和其他东西),你将为Android编写一组完全不同的代码.
我的经验一直是在任何平台上编写优秀的UI代码需要很多经验 - 例如,学习WPF/SL已经成为噩梦,投入Cocoa Touch和整个Android混乱.当然,你可以编写三组外观和感觉相当相似的用户界面,但很可能你会非常努力地重用代码并拥有通用的数据结构,与专用应用程序相比,你的用户界面最终会低于标准 - - 在今天的移动应用程序世界中,非超级(更不用说低于标准)的UI体验意味着您的应用程序死亡.
此外,所有三种移动环境都具有不同的连接范例以及多媒体范例.您最终会编写三个版本,并学习三个环境,尽管用您熟悉的一种语言编写.
您要重用的最多是后端模块.决策引擎,搜索例程,数据管理等等.甚至这些也会有问题,因为您将有力在数据结构中做出妥协,只需在三种不同的UI范例上轻松集成三种不同的UI代码集.例如,您是否使用DependencyObjects来绑定MVVM模型中的Silverlight视图?如果你这样做,它将无法使用Cocoa的MVC模型,你必须单独编写这些绑定.
并且由于并非所有移动环境都能够使用全套功能 - 例如,MonoTouch for iOS不具有在编译时无法确定的通用构造.您实际上是在使用.NET的一小部分(并且必须不断提醒自己在哪里可以使用哪些功能),这样您就可以在三个不同的平台上运行它们而无需进行重大更改.
现在,在为WP7平台编写时,图像具有所有这些限制,该平台支持整个.NET功能集.我不了解你,但我会发疯的.而你的WP7应用程序永远不会与其他应用程序竞争.
在我看来,痛苦和妥协是不值得的.你最终会得到三个一般的应用程序,这两个平台上的人都不会喜欢.
除非所有的优点都在于你的应用程序的后端逻辑,并且人们为了获得应用程序的后端功能而忽略UI问题是非常好的.根据我的经验,这几乎从未发生过.
| 归档时间: |
|
| 查看次数: |
3070 次 |
| 最近记录: |