Ajendra Prasad
Ajendra Prasad

Reputation: 327

Unable to understand few statements from ASP.NET Core ebook

I have recently started learning ASP.NET Core with the help of an ebook. There are few statements mentioned in the initial chapters, which I am unable to understand clearly.

For eg. following statements are mentioned under Foundational improvements in ASP.NET Core section

  1. Lightweight and modular HTTP request pipeline
  2. Ships entirely as NuGet packages including the runtime
  3. Runtime can be installed Side-by-side- allows you to version application along with runime

The above statements are not clear to me probably because of the term "modular HTTP request pipeline" from Point 1 and terms "runtime" and "version application" from Point 2.

Any short explanation or reference to the suitable doc will be appreciated.

Thanks

Upvotes: 2

Views: 85

Answers (1)

Joel Harkes
Joel Harkes

Reputation: 11661

http request pipeline

They totally rebuild the HttpListener which is also called the http server. Normally you would host your application in iis which would give you tons of functions but is 1 very old, massive sluggish application.

Now on default you run the application as a console which starts up a HttpListener which is called Kestrel in dotnet core.

This kestrel is totally build from the ground up (so modular priciples and barely any technical depth). And is build based on a very vast C++ library called libuv.

The modularity in this means that it has been build in various loosly coupled parts, meaning that you could replace or extend those parts if you want to. For example use a test server for automatic integration tests.

Ships in nuget packages

Normally you would install a netFramework eg: 4.5.0 and you would already get all these system.* dlls eg: System.web.dll

Now all these dll's are nuget packages and bundled into 1 package called netstandard: https://www.nuget.org/packages/NETStandard.Library/.

Multiple runtimes

If you build a dotnet project, it creates Dlls. these dlls can be run by by any OS if that os has installed the dotnet runtime. (basicaly dll is intermediate language and can be run by the dotnet runtime).

You can also build your dotnet project to include the runtime inside your application, so you can run multiple dotnet applications on an OS with different Dotnet runtime versions.

The downside of this last option is that you have to build your dotnet project for every OS specifically. So normally people choose to just build the OS independent Dlls and make sure the right runtime is installed on the OS.

Upvotes: 1

Related Questions