C# 因此,在.NETCore3以后不再提供.NET标准支持的情况下,如何共享代码?
因此,对于.NET Core 3.NET标准(以及.NET 5以外的标准),我们可以说今天我有以下应用程序:C# 因此,在.NETCore3以后不再提供.NET标准支持的情况下,如何共享代码?,c#,asp.net,.net,asp.net-mvc,asp.net-core,C#,Asp.net,.net,Asp.net Mvc,Asp.net Core,因此,对于.NET Core 3.NET标准(以及.NET 5以外的标准),我们可以说今天我有以下应用程序: WebForms.NET4.61 .NETMVC5 .NETCore2.x 使用“通用”代码、枚举等作为.NET标准2.0。现在我想构建一个.NETCore3.x应用程序 所以对于简单的POCO、枚举、类型等,这不是问题。但是,对于任何支持更复杂(目前符合.NET标准2.0)的内容,解决方案是什么 在我看来,我再也不能在WebForms、.NETCore2.x、.NETCore3.x
- WebForms.NET4.61
- .NETMVC5
- .NETCore2.x
在我看来,我再也不能在WebForms、.NETCore2.x、.NETCore3.x、.NET5之间共享代码了。因此,假设我必须支持那些传统平台(Webforms、.Net Core 2),我还有什么选择?Net Core 5的发布是为了让MS划清界限,将所有3个不同的平台合并在一起。从网络框架到网络核心5的飞跃可能会很重要,但关键是,不再需要网络标准(因为这只是框架和核心之间的桥梁。)从核心的一开始就很明显,这一天就要到来了。最终,随着Net Core 5的发布,我们知道了这一天。意图(我相信)Net Core 5将不再需要标准,并使框架进入新开发的退役阶段。请注意,两者是不同的东西。Net Core是运行时和API,类似于.Net Framework,而ASP.Net Core是web框架,类似于ASP.Net。ASP.Net Core间接目标(1.x和2.x通过.Net标准)或者是内置的框架依赖关系(3.0及更高版本).NET内核,但它们是不同的东西 .NET Core 3.0支持向下兼容.NET标准2.0的.NET标准2.1,因此它支持.NET标准2.0(甚至支持.NET标准1.0) .NET标准2.1是新的.NET标准,目前只有.NET Core 3.0支持,而且.NET Framework永远不支持它,因此除非新的mono版本支持它,否则它本身毫无意义 ASP.NET Core 2.2以.NET标准2.0为目标,因此它受到.NET Core 2.2和.NET Framework 4.7.2+的支持(也是4.6.1+,但存在问题) ASP.NET Core 3.0是.NET Core 3.0中的一个框架依赖项。ASP.NET Core 3.0本身不再适用于所有.NET标准2.0实现,而只适用于支持以.NET标准2.0为目标的库的.NET Core 3.0。唯一的限制是它将不再适用于.NET framework .NET 5是.NET Core的较新版本,因此它将继续支持.NET标准2.1、.NET标准2.0及以下版本 结论和建议:
- 针对.NET标准2.0的库可以在.NET Core(从2.0到.NET 5及更高版本)和.NET Framework上工作,因此它可以用于在所有应用程序之间共享代码
- .NET Framework和ASP.NET都将消亡。目前还没有关于是否有一种简单的方法可以将现有ASP.NET项目迁移到.NET 5的信息,但我想不会。因此,如果您想针对任何未来的.NET,需要从ASP.NET到ASP.NET核心进行完整的重构
- .NET Core 3.0支持Windows窗体和WPF,而不是“Windows窗体核心”或“WPF核心”,因此API在从.NET Framework迁移到.NET Core 3.0时基本保持不变。因此,如果Windows窗体或WPF应用程序纯粹是一个UI项目,而没有其他对.NET Framework的框架依赖,则可以轻松地将其迁移到.NET Core