在Azure Service Fabric中,无状态Web API和ASP.NET Core Web API之间的差异是什么?

Las*_*nal 4 asp.net-web-api azure-service-fabric

我没有那么多挖,但两者的优点和缺点是什么......似乎它们是多余的,显然核心版本是实验性的,可能不适用于许多核心库,如Odata和Entity Framework

Vac*_*cek 6

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核心模板:

  • 新的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或Kestrel作为Web主机.
    • WebListener也基于http.sys,完全支持.
    • Kestrel基于完全不同的跨平台库(libuv),在当前状态下,我们不建议将其放在面向Internet的生产应用程序中,而不使用反向代理来提供DoS保护.