Part 2. Building complete applications
We covered a lot of ground in part 1. You saw how an ASP.NET Core application is composed of middleware and we focused heavily on the MVC middleware. You saw how to use it to build traditional server-side-rendered apps using Razor and how to build web APIs for mobile and client-side apps.
In part 2, we dive deeper into the framework and look at a variety of components that you’ll inevitably need to build more complex apps. By the end of this part, you’ll be able to build dynamic applications, customized to specific users, that can be deployed to multiple environments, each with a different configuration.
ASP.NET Core uses dependency injection (DI) throughout its libraries, so it’s important that you understand how this design pattern works. In chapter 10, I introduce DI, why it is used, and how to configure the services in your applications to use DI.
Chapter 11 looks at the ASP.NET Core configuration system, which lets you pass configuration values to your app from a range of sources—JSON files, environment variables, and many more. You’ll learn how to configure your app to use different values depending on the environment in which it is running, and how to bind strongly typed objects to your configuration to help reduce runtime errors.