gpt4 book ai didi

.net - 使用一种编程语言 (C#) 针对多个移动平台进行定位/开发?成本效益?

转载 作者:IT老高 更新时间:2023-10-28 22:17:55 26 4
gpt4 key购买 nike

现在可以在多个移动平台上使用 C# 编程,例如:

(如果我错过了一些,请随时编辑)当然,这仍然是UI的编程工作,但是可以共享应用程序的主要库。

我们都要感谢聚集在 Mono 周围的团队项目和 super 英雄 Miguel de Icaza谁的努力是无价的。

困扰我的是,这些选项有什么好处?跨多个移动平台维护一个应用程序的成本是否会减少障碍,然后必须分别对每个库进行编码以获得更好的性能。每种语言的学习曲线?成为万事通 vs .NET Ninja

或者知道在原生环境中编程的应用程序的二进制文件大小更小,甚至可能优化得更好,而且不要忘记您必须等待新平台操作系统更新的支持。

更新:显然还有一件事需要考虑,那就是支持。由于 Novell 被 Attachmate Group 收购,Mono 团队全部下岗。然而,由 Miguel De Icaza founded new company 领导的团队核心成员Xamarin这将从头开始重新发明 Mono Mobile 开发工具。

最佳答案

在我看来,使用单一环境(即 C#/.NET)的最大优点是代码可移植性。像 LINQ 这样很酷的东西,一旦你习惯了它,你就离不开它。然而,少数移动操作系统(iOS、Android、WP7)在 UI 方面有很大不同。

而且,如果我没记错您的应用程序,那么如果它要在移动设备上运行,它就有相当多的 UI 交互。大多数移动应用程序都有 80% 的 UI 代码。

因此,无论如何,您最终都会为每个平台编写一组单独的 UI 代码 - 例如,您将在 Silverlight WP7 中编写(以及所有 WPF 优点),您将编写一个完全不同的Cocoa 中的 iOS 代码集(IB、 View 、 Controller 和其他东西),您将为 Android 编写完全不同的代码集。

我的经验一直是,在任何平台上编写好的 UI 代码都需要大量经验——例如。学习 WPF/SL 已经是噩梦了,那就是扔进 Cocoa Touch 和整个 Android 的烂摊子。当然,您可以编写三组外观和感觉相当相似的 UI,但您可能会非常努力地重用代码并拥有通用数据结构,以至于与专用应用程序相比,您的 UI 最终会低于标准 - - 在当今这个残酷的移动应用世界中,非 super (更不用说低于标准)的 UI 体验对您的应用来说意味着死亡。

此外,所有三种移动环境都有不同的连接范式以及多媒体范式。您最终会编写三个版本,并学习三种环境,尽管使用您熟悉的一种语言编写。

您要重用的最多的是后端模块。决策引擎、搜索例程、数据管理等,甚至这些都会有问题,因为您将被迫在数据结构中做出妥协,以便能够轻松集成在三种不同 UI 范例上工作的三组不同 UI 代码.例如,您是否使用 DependencyObjects 来绑定(bind)到 MVVM 模型中的 Silverlight View ?如果这样做,它将无法与 Cocoa 的 MVC 模型一起使用,并且您必须分别对这些绑定(bind)进行编码。

而且由于并非所有移动环境都允许您使用完整的功能集——例如,iOS 的 MonoTouch 没有在编译时无法确定的通用结构。您实际上是在使用 .NET 的一个非常小的子集(并且必须不断提醒自己可以在哪里使用哪些功能),这样您就可以在三个不同的平台上运行它们而无需进行重大更改。

现在,当您为支持整个 .NET 功能集的 WP7 平台编写时,图像具有所有这些限制。我不了解你,但我会发疯的。而且您的 WP7 应用永远无法与其他应用竞争。

在我看来,痛苦和妥协是不值得的。你最终会得到三个马马虎虎的应用程序,这两个平台的人都不会喜欢。

除非所有优点都在于应用程序的后端逻辑,而且它非常好,以至于人们会忽略 UI 问题,只是为了获得应用程序的后端功能。根据我的经验,这几乎不会发生。

关于.net - 使用一种编程语言 (C#) 针对多个移动平台进行定位/开发?成本效益?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5335764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com