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