EXCSLA.Shared.Core.Abstractions
5.3.1
dotnet add package EXCSLA.Shared.Core.Abstractions --version 5.3.1
NuGet\Install-Package EXCSLA.Shared.Core.Abstractions -Version 5.3.1
<PackageReference Include="EXCSLA.Shared.Core.Abstractions" Version="5.3.1" />
<PackageVersion Include="EXCSLA.Shared.Core.Abstractions" Version="5.3.1" />
<PackageReference Include="EXCSLA.Shared.Core.Abstractions" />
paket add EXCSLA.Shared.Core.Abstractions --version 5.3.1
#r "nuget: EXCSLA.Shared.Core.Abstractions, 5.3.1"
#:package EXCSLA.Shared.Core.Abstractions@5.3.1
#addin nuget:?package=EXCSLA.Shared.Core.Abstractions&version=5.3.1
#tool nuget:?package=EXCSLA.Shared.Core.Abstractions&version=5.3.1
EXCSLA.Shared.Core.Abstractions
Core abstractions and interfaces for the EXCSLA Domain-Driven Design framework.
Overview
This package provides the foundational abstractions for building applications using Domain-Driven Design patterns. It includes repository patterns, specifications, email services, and domain event handling interfaces.
Key Interfaces
- IAsyncRepository<T> - Generic async repository pattern for aggregate root persistence
- ISpecification<T> - Specification pattern for complex query criteria
- IEmailSender - Email service abstraction
- IHandle<T> - Domain event handler interface
Installation
dotnet add package EXCSLA.Shared.Core.Abstractions
Usage
Repository Pattern
public interface IAsyncRepository<T> where T : class
{
Task<T?> GetByIdAsync(object id);
Task<IEnumerable<T>> ListAsync();
Task<IEnumerable<T>> ListAsync(ISpecification<T> spec);
Task<T> AddAsync(T entity);
Task UpdateAsync(T entity);
Task DeleteAsync(T entity);
Task<int> CountAsync(ISpecification<T> spec);
Task<bool> AnyAsync(ISpecification<T> spec);
}
Email Service
public interface IEmailSender
{
Task SendEmailAsync(string email, string subject, string message);
}
Dependencies
- .NET 10.0 or higher
License
See LICENSE file in repository
Support
For issues and questions, visit the GitHub repository
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- EXCSLA.Shared.Core (>= 5.3.1)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on EXCSLA.Shared.Core.Abstractions:
| Package | Downloads |
|---|---|
|
EXCSLA.Shared.Core.GuardClauses
Guard Clauses orginally created by Steve (Ardalis) Smith. This project adds additional guard clauses used in EXCSLA.Shared.Core. These guard clauses are meant to be used with the EXCSLA.Shared framework. |
|
|
EXCSLA.Shared.Core.Specifications
A Domain Driven shared library, containing basic components for setting up a domain. Contains base classes for AggregateRoots, Entities, and value objects. These each have proper overrides for Equals, ==, and !=. This package also includes interfaces for setting up domain events as well as interfaces for using a repository pattern. This is an open source project please feel free to do a pull request on the github repo. |
|
|
EXCSLA.Shared.Core.ValueObjects
Common Value Objects found in many domains. Such as Name, Email, Phone Number, etc. |
GitHub repositories
This package is not used by any popular GitHub repositories.