This is Part 0 of a 3 part series on the ASP.NET Core Request Pipeline. Check back here for links to the follow-up articles!

  1. Preface
  2. Part I - Receiving Requests
  3. Part II - Coming Soon
  4. Part III - Coming Soon

Every day we use products and services that we could consider a "black box". Look at cell phones for example. Most people (myself included) have absolutely no grasp of exactly how two people can be connected when thousands of miles apart. Scott Hanselman eloquently phrases it as "each new layer of abstraction becomes indistinguishable from magic". Life would be pretty rough if we could only use things we had a complete technical understanding of.

But there are times when learning about that "magic" can provide a ton of value. It could be as simple as having a better understand when problems hit, which could save you time and frustration. Or it could help steer your logic away from potentially problematic scenarios, improving performance and avoiding security nightmares.

When working with ASP.NET it's very easy to get started and just breeze over the architecture details. In this series I am going to dive into the ASP.NET Core Request Pipeline from start to finish. I will cover everything from hosting models and pipeline fundamentals to building your own custom middleware. While I will focus on ASP.NET Core 2.2 and beyond, the same general tips should also apply to any OWIN based app, even in ASP.NET MVC5.

I hope you enjoy the series and get to learn something new! If you have any comments or questions hit me on Twitter! Follow me to get notified about the next part!