我没有深入研究,但是两者的优缺点是什么..
似乎它们是多余的,显然 Core 版本是实验性的,可能不适用于 Odata 和 Entity Framework 等许多核心库
tl/dr:无状态 Web API 是较旧的“经典”Web API。 ASP.NET Core 是新东西,所有新功能都在其中。
更多细节:
无状态 Web API 模板:
基于 OWIN 的“经典”ASP.NET Web API 2。不支持 MVC(无 Razor 服务器端渲染)。 仅限完整的 .NET Framework。 在 Visual Studio 2015 中使用“经典”.NET 项目类型 (.csproj)。 将 Katana 用于 Web 主机,该主机建立在 System.Net.HttpListener 之上,后者本身使用 Windows HTTP Server API (http.sys)。
ASP.NET Core 模板:
新的 ASP.NET Core,它结合了 MVC 和 Web API,并提供 Razor 服务器端渲染和来自 ASP.NET 的大量新功能。 完整的 .NET Framework 或 .NET Core,但目前 Service Fabric 仅支持完整的 .NET Framework。 在 Visual Studio 2015 中使用新的 .NET 项目类型 (.xproj)。VS 2015 中此项目类型的工具被视为“预览”,并将保持如此。工具仅在较新的 Visual Studio 2017(已改回 .csproj)中被视为“生产”。 这主要是为什么我们目前在 VS 2015 中有两个项目模板。 使用 WebListener or Kestrel 作为网络主机。
WebListener 也基于 http.sys 并且完全受支持。 Kestrel 基于一个完全不同的跨平台库 (libuv),在当前状态下,我们不建议将其放在没有反向代理的面向 Internet 的生产应用程序中以提供 DoS 保护。