This document discusses best practices for building enterprise applications with ASP.NET Core 2.1. It outlines an architecture with domain, application, infrastructure, and presentation layers. The domain layer contains business entities, value objects, logic and exceptions. The application layer has interfaces, models, logic and validators. The persistence layer manages the database context and migrations. The infrastructure layer interfaces with external resources, while the presentation layer contains UI code like MVC or Razor Pages. Examples are provided for each layer in building a sample application.