首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin.Forms与Xamarin交叉平台的差异

Xamarin.Forms与Xamarin交叉平台的差异
EN

Stack Overflow用户
提问于 2017-03-26 16:05:46
回答 4查看 14.2K关注 0票数 23

我在Xamarin环境公司工作了两年,大部分时间我都使用Xamarin.Forms。但是,我不知道Xamarin交叉平台是什么?谁能提供一些结构性差异呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-03-26 16:13:49

Xamarin有两种构建移动应用程序的方法,Xamarin.Forms和Xamarin.Native。这两种方式都允许您跨平台编写代码。

跨平台只是一个概念。这意味着您编写一次的代码可以在多个平台上运行。Xamarin是跨平台的(主要是Xamarin.Forms),因为它允许您编写在多个(跨平台)平台上运行的代码。

票数 7
EN

Stack Overflow用户

发布于 2017-07-07 12:35:20

当我们谈到Xamarin时,有两种开发本地应用程序的方法:

  • 传统Xamarin方法
  • Xamarin.Forms

有一个很好的引用来自Xamarin网站。

到处共享代码。使用相同的语言、app和数据结构,在所有移动开发平台上平均共享75%的应用程序代码。使用Xamarin.Forms构建用户界面,并共享近100%。

重要的是,这些数字可能因项目而异,因此对于Xamarin的一般使用来说,这是一些假设。

你可以从下面的图片中看到这两种方法之间的“差异”。传统的Xamarin方法(Xamarin.iOS和Xamarin.Android) --它们都建立在.NET框架的开源版本Mono之上。要开发这些应用程序,您可以使用C#,并且有机会分享高达75%的代码库,正如您在下面的图片和引用的Xamarin中看到的那样。

使用Xamarin传统的方法,您可以使用C#作为编程语言来编写模型、调用web服务等。因此,您只编写了一次代码逻辑,并在Xamarin.Android和Xamarin.iOS项目之间使用/共享它,在这些单独的项目中,您正在编写特定于该平台的代码,并且您可以访问它们的API。

此外,Xamarin引用了一段关于传统方法的话:

您可以在Objective、Swift或Java中做任何事情,都可以在C#中使用Visual使用Xamarin完成。

Xamarin传统的项目结构如下所示:

  • 共享代码项目:对其他项目来说是通用的和可重用的代码库。
  • Xamarin.Android:项目在你的安卓应用程序中,你正在使用特定于安卓的API编写代码,编写你的UI代码等等。
  • Xamarin.iOS:项目用于您的iOS应用程序,其中您正在使用iOS特定的app编写代码,编写UI代码等等。

更多关于Xamarin传统这里的信息。

关于Xamarin.Forms,,最好的定义是引用Xamarin网站:

Xamarin.Forms是一个允许开发人员快速创建跨平台用户界面的框架。它为用户界面提供了自己的抽象,用户界面将在iOS、Android或Windows上使用本机控件呈现。这意味着应用程序可以共享很大一部分用户界面代码,并且仍然保留目标平台的本机外观。

正如您可以从上面的文本中得出的结论,Xamarin.Forms是一个框架,允许您使用C#或XAML编写UI,并有机会使用MVVM.使用Xamarin.Forms,您可以编写代码库和UI,这些代码和UI将在各个平台上共享。

注意:这是一个非常简单的项目结构,当然,您可以为不同的层添加更多的项目。

  • 共享代码项目:保存公共代码库,也因为您使用的是Xamarin.Forms,所以可以为您的UI编写代码
  • Xamarin.iOS和Xamarin.Android:该特定平台的代码,以及一些高级主题,如自定义呈现器和依赖项服务。

当然,如果您正在使用Xamarin.Forms (例如,开箱即用),则存在一些限制,您只能使用所有平台上常见的UI控件。您可以阅读我关于Xamarin.Forms利弊的博客文章,这里

更多关于Xamarin.Forms 这里的信息。

我希望这个答案不会让你感到困惑,作为一个结论,在一两句话中.使用Xamarin传统,您可以在特定于平台的项目之间共享代码逻辑;使用Xamarin.Forms,您可以在项目之间共享代码逻辑以及UI的代码。

注意:对于共享项目和代码共享策略,您可以使用“共享项目”和"PCL“,这是另一个问题的主题。因此,在这个答案中,我简化了这一点,并在Xamarin应用程序解决方案中使用了共享项目术语。

更新,2020年夏季:

.NET Maui于2020年5月发布,关于MAUI和Xamarin.Forms之间的区别的问题可以在StackOverflow线程中找到:毛伊岛是什么?毛伊和扎马林有什么区别?

票数 68
EN

Stack Overflow用户

发布于 2017-03-26 16:15:40

如果您讨论的是Xamarin.AndroidXamarin.iOS (Xamarin原生),我想说的主要区别是,在Xamarin Forms中,您不仅共享(业务逻辑),而且共享UIE 211。在Xamarin forms中,您将在所有平台(按钮、标签等)上使用基本组件。这就是为什么它被称为Xamarin.Forms的原因,因为它适合于基本形式。

但是对于Xamarin本地,您将为每个平台创建一个UI (一个用于iOS,一个用于Android)。您可以使用Xamarin本地做更多的工作,因为您将使用本机组件。

希望能帮上忙!

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43031120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档