If you've been developing Asp.net web applications you've probably come across the IHttpModule
interface, that makes it possible to write reusable request-level event handlers. The same thing can of course be done by writing event handlers inside the Global.asax
codebehind, but then you wouldn't be able to reuse the same code unless you do a copy/paste.
But Global.asax
codebehind has one particular advantage over your custom modules: it can also attach to application-level events like application start event for instance. As per documentation, this is not possible with a custom module. Or so I thought...