代码之家  ›  专栏  ›  技术社区  ›  Mohammad Nikravesh

哪一个是迁移ASP.NET项目.NET核心或.NET标准的最佳目标?[关闭]

  •  0
  • Mohammad Nikravesh  · 技术社区  · 7 年前

    请不要把这当作重复的问题。我要迁移我的 ASP.NET RESTful web-api (.NET full)项目到 .Net Standard 或 .Net Core 我面临着一个严重的问题,在其他类似的问题中我找不到答案。

    我想知道的是,当我可以选择的时候 网络核心 ,为什么要将我的库程序集作为目标 .NET标准 ?

    也许其中一个原因是让这些程序集在 .Net Framework 项目。不管怎样,有没有其他理由说服我保持目标 .NET标准 ?

    注: 我不需要留下 .Net Full 我的项目版本我只想有一个 cross-platform 它的版本。


    1 回复  |  直到 7 年前
        1
  •  5
  •   Panagiotis Kanavos    7 年前

    别无选择。.NET标准仅适用于.NET类库。它不是运行时,因此无法创建针对它的应用程序。运行时是.NET核心和.NET完整框架。

    .NET核心是唯一的跨平台选项。

    ASP.NET核心本身是一个可以在其上运行的Web堆栈 二者都 运行时间。你可以选择你想要的那个 New Project 对话框。

    当涉及到图书馆时,选择取决于需要什么。.NET标准库可以针对任何兼容的运行时。ASP.NET核心自己的 Razor Class Libraries 是.NET标准2.0项目。大多数nuget包与.NET标准兼容,以避免为每个运行时打包不同版本的麻烦。

    另一方面,与跨度相关的最新功能仅出现在.NET Core 2.1及更高版本中。他们 aren't available in .NET Standard 2.0 但他们 将 出现在2.1。此示例来自 All About Span: Exploring a New .NET Mainstay 只能在.NET核心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));