Skip to main content

Command Palette

Search for a command to run...

Middleware

Published
2 min readView as Markdown
Middleware
A

Experienced Developer with a demonstrated history of working in the information technology and services industry. Skilled in Office Administration, Systems Analysis, IT Strategy, Operating Systems, and Computer Hardware. Strong engineering professional with a Bachelor's degree focused in Management Information Systems, General from Sudan University of Science and Technology.

What is middleware

Middleware

is software that assembled into app pipeline to handle request and responses. Each component

  1. Chooses whether to pass the request to the next component in the pipeline
  2. Can perform work before or after the next component in pipeline

Request delegate

used to build the request pipeline. The request delegates handle each HTTP request

In-line middleware

when delegate have been identified as an anonymous method

With individual request the delegate can be specified in-line as an anonymous methods or it can be defined in a reusable class. This reusable class or in-line anonymous methods are middleware, also called middleware components

Each middleware component in the request pipeline is responsible for invoking the next component in the pipeline or short-circuiting the pipeline. When middleware short-circuiting it’s called a terminal middleware because it prevents further middleware from processing request

The Asp.Net core request pipeline consists of sequence of request delegates, called one after the other The following diagram demonstrates the concept

delegates.PNG

The simplest possible ASP.NET Core app sets up a single request delegate that handles all requests. This case doesn't include an actual request pipeline. Instead, a single anonymous function is called in response to every HTTP reques

public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        app.Run(async context =>
        {
            await context.Response.WriteAsync("Hello, World!");
        });
    }
}