gpt4 book ai didi

c# - Xamarin.Forms 和 Xamarin 跨平台的区别

转载 作者:IT王子 更新时间:2023-10-29 04:51:40 26 4
gpt4 key购买 nike

我使用 Xamarin Environment 已有 2 年时间,大部分时间我使用的是 Xamarin.Forms。但是,我不知道什么是 Xamarin Cross Platform?谁能提供一些结构差异?

最佳答案

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

  • 传统的 Xamarin 方法
  • Xamarin.Forms

Xamarin 网站上有一句很好的话

Share code everywhere. Use the same language, APIs and data structuresto share an average of 75% of app code across all mobile developmentplatforms. Build user interfaces with Xamarin.Forms and share nearly100%.

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

正如您从下图中看到的这两种方法之间的“差异”。传统的 Xamarin 方法(Xamarin.iOS 和 Xamarin.Android)它们都构建在 Mono 之上,Mono 是 .NET Framework 的开源版本。要开发这些应用程序,您可以使用 C#,并且有机会共享多达 75% 的代码库,如下图和 Xamarin 的引述所示。

enter image description here

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

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

Anything you can do in Objective-C, Swift, or Java can be done in C#with Xamarin using Visual Studio.

Xamarin 传统项目结构如下所示: enter image description here

  • 共享代码项目:通用且可重复用于您的其他项目的代码库。
  • Xamarin.Android:您的 Android 应用程序项目,您可以在其中使用特定于 Android 的 API 编写代码、编写您的 UI 代码等。
  • Xamarin.iOS:您正在编写代码的 iOS 应用项目使用 iOS 特定的 API,编写您的 UI 代码等。

有关 Xamarin 传统的更多信息 here .

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

Xamarin.Forms is a framework that allows developers to rapidly createcross-platform user interfaces. It provides it's own abstraction forthe user interface that will be rendered using native controls on iOS,Android, Windows, or Windows Phone. This means that applications canshare a large portion of their user interface code and still retainthe native look and feel of the target platform.

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

enter image description here

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

  • 共享代码项目:拥有您的通用代码库,而且由于您使用的是 Xamarin.Forms,您可以为您的 UI 编写代码
  • Xamarin.iOS 和 Xamarin.Android:特定平台的代码,以及一些高级主题,例如自定义渲染器和依赖服务。

当然,如果您使用开箱即用的 Xamarin.Forms,则存在一些限制,例如您只能使用所有平台通用的 UI 控件。您可以阅读我关于 Xamarin.Forms 优缺点的博文 here .

有关 Xamarin.Forms 的更多信息 here .

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

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

2020 年夏季更新:

.NET Maui 于 2020 年 5 月发布,有关 MAUI 和 Xamarin.Forms 之间区别的问题可以在此处的 StackOverflow 线程中找到:What is MAUI? and what are differences between MAUI and Xamarin

关于c# - Xamarin.Forms 和 Xamarin 跨平台的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43031120/

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