繁体   English   中英

.NET 框架? 还是 .NET 核心? 还是 .NET 标准? 或者以上都没有?

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM