OpenDDD.NET
2.0.0-alpha.1
See the version list below for details.
dotnet add package OpenDDD.NET --version 2.0.0-alpha.1
NuGet\Install-Package OpenDDD.NET -Version 2.0.0-alpha.1
<PackageReference Include="OpenDDD.NET" Version="2.0.0-alpha.1" />
paket add OpenDDD.NET --version 2.0.0-alpha.1
#r "nuget: OpenDDD.NET, 2.0.0-alpha.1"
// Install OpenDDD.NET as a Cake Addin #addin nuget:?package=OpenDDD.NET&version=2.0.0-alpha.1&prerelease // Install OpenDDD.NET as a Cake Tool #tool nuget:?package=OpenDDD.NET&version=2.0.0-alpha.1&prerelease
OpenDDD.NET
OpenDDD.NET is an open-source framework for domain-driven design (DDD) development using C# and .NET. It provides a set of powerful tools and abstractions to help developers build scalable, maintainable, and testable applications following the principles of DDD.
Key Features
- Aggregates: Define domain aggregates with clear boundaries and encapsulate domain logic within them.
- Entities and Value Objects: Create entities and value objects to represent domain concepts and ensure strong type safety.
- Repositories: Define repositories to abstract away data access and enable persistence of domain objects.
- Domain Events: Implement domain events to facilitate communication between domain objects and decouple them from each other.
- Integration Events: Implement integration events to facilitate communication between bounded contexts and decouple them from each other.
- Application Services: Use application services to coordinate the execution of domain logic and manage transactions.
- Dependency Injection: Leverage the built-in dependency injection support in .NET for easy integration with your application.
- Testing: Use base test classes for efficient and powerful unit testing of actions.
Basic Concepts
The map below visually represents the key concepts and their interrelationships in a clear and concise manner.
Supported Versions
- .NET Core 3.1
Getting Started
To get started with OpenDDD.NET, follow these simple steps:
- Install the NuGet package: Use the NuGet package manager or the .NET CLI to add the OpenDDD.NET package to your project.
dotnet add package OpenDDD.NET
- Install the project template: If you want to quickly scaffold new projects using OpenDDD.NET, you can install the OpenDDD.NET project template NuGet package.
dotnet new install OpenDDD.NET-Templates
- Create a new project: Use the OpenDDD.NET project template to create a new project with the necessary files, folder structure, and initial configuration already set up.
dotnet new openddd-net -n "YOUR_SOLUTION_NAME"
- Start building your application: Utilize the power of OpenDDD.NET to build scalable and maintainable applications following the principles of DDD.
For detailed documentation and code examples, please refer to the User Guide of this repository.
Example Code
Sample code can be discovered within the project templates detailed above. Additionally, we will provide links to other applications and projects that utilize OpenDDD.NET as they are developed and shared by the community.
Release History
- v1.0.0-alpha.1 (2022-10-02): Initial alpha release.
- v1.0.0-alpha.2 (2022-10-09): Make the hexagonal architecture pattern more represented in the namespaces.
- v1.0.0-alpha.3 (2022-11-20): Refactor JwtToken and add IdToken.
For a complete list of releases and their changelogs, please visit the Releases page.
Contributing
We welcome contributions from the community. To contribute to OpenDDD.NET, please follow these steps:
- Fork the repository and clone it to your local machine.
- Create a new branch for your feature or bug fix.
- Implement your changes and ensure that the existing tests pass.
- Write new tests to cover your changes and make sure they pass as well.
- Commit your changes and push them to your fork.
- Submit a pull request with a clear description of your changes and the problem they solve.
Please make sure to review our Contributing Guidelines before submitting a pull request.
License
OpenDDD.NET is licensed under the GPLv3 License. Feel free to use it in your own projects.
Acknowledgements
OpenDDD.NET is inspired by the principles and ideas of Domain-Driven Design (DDD) and the fantastic work done by the DDD community. We would like to thank all the contributors and supporters who have helped make this project possible.
Get in Touch
If you have any questions, suggestions, or feedback, please don't hesitate to reach out to us. You can find more information and ways to contact us on our Website.
Let's build better software together with OpenDDD.NET!
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- Azure.Messaging.ServiceBus (>= 7.5.1)
- CompareNETObjects (>= 4.77.0)
- dotenv.net (>= 3.1.1)
- Microsoft.ApplicationInsights (>= 2.20.0)
- Microsoft.AspNet.WebApi.WebHost (>= 5.2.8)
- Microsoft.AspNetCore.TestHost (>= 3.1.26)
- Microsoft.Extensions.Http (>= 6.0.0)
- Microsoft.Extensions.Logging (>= 6.0.0)
- Microsoft.Extensions.Logging.ApplicationInsights (>= 2.20.0)
- Microsoft.Extensions.Logging.Console (>= 6.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 6.0.0)
- Newtonsoft.Json (>= 13.0.3)
- Npgsql (>= 6.0.4)
- NSwag.AspNetCore (>= 13.15.10)
- PowerIAM (>= 2.3.0)
- RabbitMQ.Client (>= 6.2.2)
- System.IdentityModel.Tokens.Jwt (>= 6.17.0)
- WireMock.Net (>= 1.5.0)
- xunit (>= 2.4.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.0-alpha.3 | 98 | 10/3/2023 |
2.0.0-alpha.2 | 85 | 10/3/2023 |
2.0.0-alpha.1 | 83 | 10/1/2023 |
1.0.0-alpha.17 | 94 | 6/27/2023 |
1.0.0-alpha.16 | 95 | 5/7/2023 |
1.0.0-alpha.15 | 103 | 5/1/2023 |
1.0.0-alpha.14 | 95 | 4/30/2023 |
1.0.0-alpha.13 | 96 | 4/28/2023 |
1.0.0-alpha.12 | 101 | 4/28/2023 |