If you create an empty ASP.NET Web Application project in Visual Studio 2013 open the package manager console and install-package Microsoft.Owin.Host.SystemWeb
Add a Startup class with a Configuration(IAppBuilder app) method, for example:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Run(context => context.Response.WriteAsync("hello"));
}
}
And run, you'll see hello show up in the browser. However, it you look at the project, there's no change to any files, namely to web.config, that indicates that the Owin pipeline is being used. More importantly, if you have the Startup class but don't install the Microsoft.Owin.Host.SystemWeb package the Startup's Configuration method won't ever be run.
I suspect there's a custom module and handler involved in making all this happen but can't find any documentation about it. The only thing that marginally touches this subject that I was able to find was this.
How is it that you can change the way a request is handled just by referencing some dlls?