我在Xamarin环境中工作了两年,大多数时候我都使用过Xamarin.Forms。但是,我不知道Xamarin Cross Platform是什么?任何人都可以提供一些结构差异吗?
答案 0 :(得分:45)
当我们谈论Xamarin时,开发本机应用程序有两种方法:
Xamarin网站有一个很好的引用
到处分享代码。使用相同的语言,API和数据结构 在所有移动开发中平均分享75%的应用代码 平台。使用Xamarin.Forms构建用户界面并分享 100%。
重要提示,这些数字因项目而异,因此这是Xamarin一般用法的假设。
正如你可以从下面的图片中看到这两种方法之间的“差异”。传统的Xamarin方法(Xamarin.iOS和Xamarin.Android)它们都建立在Mono之上,Mono是.NET Framework的开源版本。要开发那些使用C#的应用程序,您可以分享高达75%的代码库,如下图所示,以及来自Xamarin的引用。
使用 Xamarin传统方法,您可以使用C#作为编程语言来编写模型,调用Web服务等。因此,您只需编写一次代码逻辑并在Xamarin中使用/共享它。 Android和Xamarin.iOS项目,在这些单独的项目中,您正在编写特定于该平台的代码,并且您可以访问其API。
Xamarin还引用了传统方法:
您可以在Objective-C,Swift或Java中执行的任何操作都可以在C#中完成 使用Xamarin使用Visual Studio。
有关Xamarin traditional here的更多信息。
现在关于 Xamarin.Forms ,最好的定义来自Xamarin网站:
Xamarin.Forms是一个允许开发人员快速创建的框架 跨平台用户界面。它提供了自己的抽象 将在iOS上使用本机控件呈现的用户界面, Android,Windows或Windows Phone。这意味着应用程序可以 共享他们的用户界面代码的大部分仍然保留 目标平台的原生外观。
正如您可以从上面的文本中得出的结论,Xamarin.Forms是一个框架,允许您使用C#或XAML编写UI,并有机会使用MVVM ...使用Xamarin.Forms,您可以编写代码库和UI这将在各个平台上共享。
注意:这是一个非常简单的项目结构,当然你可以为不同的层添加更多的项目
当然,如果您使用的是Xamarin.Forms,则存在一些限制,例如开箱即用,您只能使用在所有平台上通用的UI控件。您可以阅读我的博客文章,了解Xamarin.Forms的优缺点here。
有关Xamarin.Forms here的更多信息。
我希望这个答案不会让您感到困惑,并且只用一两句话就可以得出结论......使用 Xamarin 传统,您可以在特定平台之间共享代码逻辑项目,使用Xamarin.Forms,您可以在项目中共享代码逻辑以及 UI代码。
注意:对于共享项目和代码共享策略,您可以使用“共享项目”和“PCL”这是另一个问题的主题...所以在这个答案中我简化了这个并使用共享项目术语Xamarin应用程序解决方案中的那种类型的项目。
答案 1 :(得分:13)
如果你在谈论 Xamarin.iOS 和 Xamarin.Android ( Xamarin Native ),我会说主要区别在 Xamarin表单中,您共享 NOT ONLY 业务逻辑,还有 UI 。在 Xamarin表单中,您将在所有平台(Button,Label等)上使用基本组件。这就是它被称为Xamarin.Forms的原因,因为它适用于基本形式。
但对于 Xamarin Native ,您将为每个平台创建一个 UI (一个用于iOS,一个用于Android)。您可以使用 Xamarin Native 执行更多操作,因为您将使用本机组件。
希望它有所帮助!
答案 2 :(得分:3)
跨平台只是一个概念。这意味着您编写的代码可以在多个平台上运行。 Xamarin是跨平台的(主要是Xamarin.Forms),因为它允许您编写在多个(跨)平台上运行的代码。
答案 3 :(得分:0)
我认为Xamarin Cross Platform是指编译共享代码(您的PCL或共享项目)的技术,以便在最终编译到本机平台之前可以被Xamarin.Android或Xamarin.IOS等不同平台使用。
所以我在某种程度上说Xamarin.Forms是用于构建跨平台兼容代码的工具之一,然后可以使用Xamarin跨平台技术将它们放在一起,这是有意义的吗?