[英].NET Framework? Or .NET Core? Or .NET Standard? Or none of the above?
我有一些使用 .NET Framework 4.7.2 用 .NET 编写的私有库和程序,其中大部分是 WinForms,但有一些已经用 WPF 编写。
我有一些所有程序都使用的基础库,然后我通常每个程序有一个库,使用基础库并为该程序提供业务逻辑,最后我拥有使用基础库和一个用于该程序构建 UI 的业务逻辑库。
现在我想移植其中一两个程序以在 Android 上运行,并且我想为此使用 Xamarin。
谷歌搜索后,我明白我不能再使用 .NET Framework 作为它的基础,因为 .NET Framework 仅适用于 Windows。 但是我没有得到其他可以使用的东西?
.NET Core 似乎是一个候选,但如果我理解正确的话,.NET Core 只会在不同平台上重用相同的源代码,而不是编译文件本身。 微软在谈论跨平台功能时总是只提到 Windows、Linux 和 OS X。 安卓呢? 在这种情况下,“Linux”是否涵盖了这一点?
比方说,我必须移植我的三个基本库、业务逻辑库和程序。
我现在在 Android 和 Windows 桌面上运行程序,使用相同的基本库和业务逻辑库源代码。
我所有的其他程序(未移植)也使用这三个移植的基础库。
现在我想更改我移植的基础库之一中的代码。 我现在必须使用更改后的基础库重新编译任何程序,我不能只更改文件并完成?
.NET Standard 似乎是另一种选择。 据我所知,我可以使用 .NET Standard 创建一个基础库并从 .NET Core 或 .NET Framework 引用该文件,对吗? 但是我也可以从 Android 引用这个库吗(使用 Xamarin)?
把一个长问题说短......我必须做什么,创建一个基本库文件(例如一个用于访问 SQLite 数据库的文件),并能够在 Xamarin(适用于 Android)和 Windows 中引用这个基本库文件从使用 .NET Framework 的其他组件。
这甚至可能吗?
有几种不同的 .NET 实现,它们各自用于不同的目的。 .NET 框架是最初的实现,只能在 Windows 上运行。 然后,Xamarin Inc. 创建了Mono 。 它被构建为 .NET 框架的开源版本。 Xamarin 适用于 Android 和 iOS,使用 Mono 作为 .NET 运行时,因为它具有最小的尺寸和最轻的占用空间。
接下来,开源运动来了,微软创建了 .NET core,它作为一个类似于 Mono 的开源跨平台实现。 顺便说一下,.NET 核心二进制文件可以在任何 .NET 核心运行时跨平台运行。 没有实现整个框架,Microsoft 创建了 .NET Standard。 它不是一个实现,它是任何 .NET 实现必须具有的二进制格式和 API 的规范。 (注意:我不完全确定它们实际创建和标准化的顺序)。
几乎所有 .NET 库都应该按照 .NET Standard 进行编程,因此您可以在这三种实现中的任何一种上使用它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.