Domaincrafters.Domain
0.1.0
dotnet add package Domaincrafters.Domain --version 0.1.0
NuGet\Install-Package Domaincrafters.Domain -Version 0.1.0
<PackageReference Include="Domaincrafters.Domain" Version="0.1.0" />
<PackageVersion Include="Domaincrafters.Domain" Version="0.1.0" />
<PackageReference Include="Domaincrafters.Domain" />
paket add Domaincrafters.Domain --version 0.1.0
#r "nuget: Domaincrafters.Domain, 0.1.0"
#addin nuget:?package=Domaincrafters.Domain&version=0.1.0
#tool nuget:?package=Domaincrafters.Domain&version=0.1.0
domaincrafters domain ๐๏ธ
Domaincrafters/domain is a package designed to simplify the development of educational Domain-Driven Design (DDD) projects in .NET using C#. It provides essential domain constructs that embody DDD principles, including Entities, Repositories, and UUID-based Entity Identifiers. ๐๏ธ
Changelog
See the CHANGELOG for detailed information about changes in each version.
Features โจ
- Entity: An abstract base class representing domain entities with identity and equality methods.
- Repository Interface: A generic interface defining standard operations for managing entities.
- UUIDEntityId: An abstract class for UUID-based entity identifiers, ensuring unique and consistent IDs.
- EntityId: An interface for entity identifiers, providing a common contract for entity ID types.
Installation ๐ฆ
In your .NET project, install the package from NuGet:
dotnet add package Domaincrafters.Domain
Then, in your C# file:
using System;
using DomainCrafters.Domain;
// Example EntityId using a UUID
public class MyEntityId : UUIDEntityId
{
public MyEntityId(Guid value) : base(value) {}
}
// Example Entity
public class MyEntity : Entity<MyEntityId>
{
public string Name { get; private set; }
public MyEntity(MyEntityId id, string name) : base(id)
{
Name = name;
}
}
// Example Repository Interface
public interface IMyEntityRepository : IRepository<MyEntity, MyEntityId>
{
// Add your domain-specific methods here
}
Contributing ๐ค
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/YourFeature
. - Commit your changes:
git commit -m 'feat: Add new feature'
. - Push to the branch:
git push origin feature/YourFeature
. - Open a pull request.
Please ensure your code adheres to the project's coding standards and includes relevant tests. ๐งช
Semantic Versioning with Conventional Commits ๐
This project follows semantic versioning. To simplify the release process, we use conventional commits. Please ensure your commit messages follow the conventional commit format.
License ๐
This project is licensed under the MIT License.
Happy coding with domaincrafters domain! ๐โจ
Emoticon Guide:
- ๐: Represents the project's forward-thinking and dynamic nature.
- ๐๏ธ: Indicates the building blocks provided by the package.
- โจ: Highlights features and important sections.
- ๐ฆ: Symbolizes installation or packaging.
- ๐: Relates to UUID functionality.
- ๐๏ธ: Denotes domain entities and DDD concepts.
- ๐๏ธ: Represents the Repository interface and data management.
- ๐ค: Signifies collaboration and contributions.
- ๐งช: Relates to testing and quality assurance.
- ๐: Pertains to licensing information.
Feel free to adjust or add more emojis to better suit your project's personality and documentation style!
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.Logging (>= 9.0.1)
- Microsoft.Extensions.Logging.Console (>= 9.0.1)
- Optional.net (>= 4.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial version with domain building blocks