Xamarin Vis的优点和缺点以及其他框架
本文关键字:缺点 及其他 框架 Vis Xamarin | 更新日期: 2023-09-27 18:21:19
我是一名C#开发人员,受委托为我们的一个项目开发Android原生应用程序,该项目的C#逻辑引擎作为REST服务公开。当前项目有一个使用Html5和JS的Web版本,以及使用WPF的桌面。我们有优秀的Html5,Angular JS开发人员可供我们使用,现在经过一点研究,了解我需要做什么才能开始,以下是我的理解:
-
学习
Java / Python
用于原生Android开发,它相对于其他选项有一些学习曲线 -
使用像
Cordova, Titanium
这样的框架,能够将HTML5、JS代码转换为原生Android和IOS应用 -
现在我遇到了Xamarin,它可以帮助C#开发人员开发Android和IOS应用程序,我们可以很快采用这些应用程序,但我无法找到以下问题的令人信服的答案,这些问题是基于我对项目需求复杂性的理解,因为它们会随着时间的推移而变化:
- Xamarin生成的应用程序在真实的android系统中是否存在任何性能问题
- Xamarin应用程序在专为Android开发时进行了优化吗?还是我们仍然有一个通用代码
- Xamarin是否支持大多数复杂的UI功能,如地图、网格,这些功能在原生Android上默认可用
- Xamarin是如何与类似Phonegap的JS的类似混合系统进行比较的,哪一个是更好、更容易采用的框架
任何建议/指针都会很好,可以帮助我们做出明智的决定。不想在不了解主要限制或障碍的情况下继续使用框架,这可能会使未来的变得困难
Xamarin并不局限于公分母,因为它创建了与本机代码的绑定。
关于Android的性能,我听说Xamarin应用程序实际上表现更好,因为Mono运行时应该比Dalvik更成熟,尽管这可能只是谣言。
是的,Xamarin支持在平台的原生工具链上可以做的任何事情。
有了Cordova,你只需要编写一次应用程序,并为多个平台编译它。使用Xamarin,您可以共享尽可能多的业务代码,并且只为每个平台创建UI层,这就是为什么您可以为每个平台自定义它。
我认为在大多数情况下,对移动应用程序编程的工具是比原生应用程序更好的方法。这些工具的存在是有原因的,否则本机将是更容易和首选的方法。
Xamarin可以做任何本地应用程序可以做的事情。性能与本地应用程序相同,正如Jeff所说,由于Xamarin在下面实现了非常高性能的代码,您可能会获得一些性能改进。
然而,当涉及到开发时,我想说你应该坚持你所知道的技术。如果没有人在这个框架中有经验,你就不想有陡峭的学习曲线。如果你有很多C#开发经验,Xamarin就会派上用场。移动开发总是会有一条学习曲线,但拥有一门你熟悉的语言会有很大帮助。
就Native或Forms而言,我主要用Xamarin.Forms编程(现在已经一年多了),虽然去年年底这是一项一团糟的技术,但我现在可以说,一旦1.5.2投入生产,它将是一项伟大的技术,尽管还需要一段时间才能让人们相信这一点。
Xamarin.Android和Xamarin.iOS可以让你创建一个本地应用程序,但你必须为每个平台创建UI。Forms,允许您一次性创建UI并在所有平台上共享,但它会将其转换为它们的本地控件。是的,如果需要的话,你也可以在Forms上自定义每个平台的UI。Xamarin甚至可以连接到每个平台的本地库。
如果你是C#商店,一个重要因素是客户端和后端之间的共享代码,因为很少有应用程序不与服务器通信。通过使用Xamarin,如果后端是ASP.NET或其他.NET堆栈,则可以无缝地重用实体定义和其他代码。
这肯定需要一些规划和纪律,但总的来说,在双方都编译了强类型和单元测试的代码,这为我的团队节省了大量时间来解决同一项目中不同语言之间经常出现的错误。