Distinction between Kestrel and Katana

I still don't get a clear picture after reading other answers under this question, so I made some research and here's my conclusion:

  • OWIN is a specification, which defines an programming interface between a web server(like Kestrel and the ones provided by Katana) and a web application(the code by you).
  • Kestrel comes from ASP.NET Core. It's a OWIN compatible web server.
  • Katana comes from ASP.NET 4.X. It's a set of things of Microsoft's OWIN implementation, including OWIN servers.

Last but not least:

  • ASP.NET 5 is dead and replaced by ASP.NET Core. So don't mention it any more.

    (Update at 2019/06/28: "Today, we’re announcing that the next release after .NET Core 3.0 will be .NET 5" - BY MS https://devblogs.microsoft.com/dotnet/introducing-net-5/. That means there will be ASP.Net 5, which is in fact the next generation of ASP.Net Core)

  • OWIN is the key/essential thing in both ASP.NET 4.X and ASP.NET Core.

For more, you may read https://www.quora.com/Is-ASP-NET-Core-a-replacement-for-OWIN-Katana


Katana is Microsoft's OWIN implementation and also includes some middleware components for security/authentication, serving static files, and a few other things.

Kestrel is Microsoft's cross-platform development web server that can be used with ASP.NET 5.

ASP.NET 5 does not implement OWIN, but has a "bridge" to enable OWIN components to be used in ASP.NET 5 applications, including running on Kestrel.