This document provides an overview of ABP, an ASP.NET core startup template that uses domain-driven design principles. It discusses key ABP features like caching, logging, dependency injection, object mapping, email sending, OData integration, background processes, localization, authorization, auditing, and Swagger. It also covers domain-driven design tactical patterns implemented in ABP like entities, aggregates, services, and repositories. The document demonstrates creating an ABP project and defines the responsibilities of each ABP layer - core, application, and API. It provides examples of implementing entities, value objects, repositories, the unit of work pattern, and application services in ABP applications.
Introduces ABP as an ASP.NET Core startup template focusing on domain-driven design, development best practices, and necessary infrastructure such as caching, logging, and email integration.
Highlights the domain-driven design (DDD) tactical tools and features of ABP, such as entities, value objects, aggregates, and layered architecture.
Details the responsibilities of core, application, and API layers in ABP, focusing on entity management, business rules, transaction handling, and application service orchestration.
Explains entity configuration and characteristics of value objects, emphasizing immutability and comparison by value.
Steps to create value objects within the entity framework and illustrates final results.
Describes the role of application services as middleware between the API and domain layer, handling transactions and dependencies.
Discusses the repository pattern, illustrating the interactions between the domain and data access layers with examples.
Covers operations for querying, inserting, updating, and deleting entities within the repository.
Describes the unit of work pattern for managing transactions across multiple repositories and scenarios in application and repository methods.
Lists utilities utilized in ABP, including caching, logging, object mapping, email services, and background processing.
What is ABP
ASP.net core Startup template.
Designing Using Domain Driven Designing.
Include development best practices.
Fee.
Has infrastructure for necessary development tools.
Entity
Represent businessentity , there properties and method.
All should be inherit by Entity class.
All properties must be Private or protected set. NOT PUBLIC.
All properties assign values inside the class.
All Business logics must be inside Entity class.
Use Ubiquitous Language for named properties and methods.
Use Aggregate roots and aggregates entities for group Entity (Bounded context)
Aggregate Root is main entry point to related entities. That mean entities can update
withing only aggregate root. Total aggregate behave like atomic transaction (Unit of
work)
9.
Configure related tablename
1. Base class.
2. Inbuild PK (default int)
3. Generic type available.
Entity<Guid>
Describe property of column
Prevent malicious set
Default constructor
1. Create a person.
2. Apply Business rules
1. Update the person.
2. Apply Business rules
10.
Value object
Make objectscompare on value rather than
references
Characteristics
1. No ID.
2. Immutable.
Similar
1. Struct
2. ComplexType
Example :- Name,Address
11.
Step 1 :Create Value Object Step 2 :Refer value object from Entity
Step 3 : Create Map on Entity framework
Unit of work
Handle transaction between two or more repositories.
Following Senarios are unit of work by defaule
Application Service methods
Repository method