哪一个是迁移ASP.NET项目,.Net Core或.Net Standard的最佳目标?

Moh*_*esh -1 .net asp.net .net-core .net-standard

请不要将此视为重复的问题.我要将我的ASP.NET RESTful web-api(.Net Full)项目迁移到.Net Standard或者.Net Core我面临一个严重的问题,我在其他类似的问题中找不到答案.

我正在寻找的这个问题是要实现,虽然我可以选择.Net Core,为什么我要定位我的库程序集.Net Standard

也许一个原因是让这些组件准备好在.Net Framework项目中使用它们.无论如何,还有其他理由说服我保持目标.Net Standard吗?

注意:我不需要保留.Net Full我的项目版本我只想拥有cross-platform它的版本.


Pan*_*vos 5

没有选择..NET Standard仅适用于.NET类库.它不是运行时,因此无法创建以其为目标的应用程序.运行时是.NET Core和.NET Full框架.

.NET Core是唯一的跨平台选项.

ASP.NET Core本身是一个可以在两个运行时上运行的Web堆栈.您可以在New Project对话框中选择所需的那个.

谈到图书馆,选择取决于需要什么..NET标准库可以针对任何兼容的运行时.ASP.NET Core自己的Razor类库是.NET Standard 2.0项目.大多数NuGet包都是.NET标准兼容的,以避免为每个运行时打包不同版本的麻烦.

另一方面,最新的Span相关功能仅出现在.NET Core 2.1及更高版本中.它们在.NET Standard 2.0中不可用,但它们出现在2.1中.来自All About Span:探索新的.NET Mainstay的示例仅适用于.NET Core 2.1+:

string input = ...;
ReadOnlySpan<char> inputSpan = input;
int commaPos = input.IndexOf(',');
int first = int.Parse(inputSpan.Slice(0, commaPos));
int second = int.Parse(inputSpan.Slice(commaPos + 1));
Run Code Online (Sandbox Code Playgroud)