Before ASP.NET Core, in order to decouple .NET apps from IIS, we could use OWIN. In order to host the ASP.NET Web API outside IIS, we use the Katana project (the Microsoft OWIN implementation).
With Katana, using OWIN-specific libraries, we are still using the Windows environment. ASP.NET MVC 5 is too tight with IIS, nevertheless, OWIN offers us a new HTTP pipeline to be decoupled from IIS. Since ASP.NET Web API 2, to decouple our APIs from IIS and the ASP.NET pipeline lifecycle, we can use OWIN.
In order to achieve that, using the Katana pipeline and classes, we use a Startup.cs file instead of the classic Global.asax file to configure our API and change the host to self-hosted (console, Windows ...