https://github.com/deveel/deveel.repository
Implementations of the repository pattern for .NET to support the domain-driven modeling
https://github.com/deveel/deveel.repository
clean-architechture csharp data dotnet-core dotnetcore efcore entity entity-framework entity-manager layered-architecture mongodb repository repository-manager repository-pattern
Last synced: about 1 year ago
JSON representation
Implementations of the repository pattern for .NET to support the domain-driven modeling
- Host: GitHub
- URL: https://github.com/deveel/deveel.repository
- Owner: deveel
- License: apache-2.0
- Created: 2022-11-10T20:55:44.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-27T18:54:34.000Z (over 1 year ago)
- Last Synced: 2025-04-22T19:07:26.825Z (about 1 year ago)
- Topics: clean-architechture, csharp, data, dotnet-core, dotnetcore, efcore, entity, entity-framework, entity-manager, layered-architecture, mongodb, repository, repository-manager, repository-pattern
- Language: C#
- Homepage:
- Size: 1020 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-ddd - Deveel Repository - A simple implementation of the Repository pattern for .NET, supporting MongoDB and Entity Framework, extending the model with further utilities (caching, paging, validation, etc.). (Libraries and Frameworks / .NET)
README



[](https://codecov.io/gh/deveel/deveel.repository)  [](https://deveel.gitbook.io/repository/)
# Deveel Repository
This project wants to provide a _low-ambitions_ / _low-expectations_ implementation of the (_infamous_) _[Repository Pattern](https://martinfowler.com/eaaCatalog/repository.html)_ for .NET to support the development of applications that need to access different data sources, using a common interface, respecting the principles of the _[Domain-Driven Design](https://en.wikipedia.org/wiki/Domain-driven_design)_ and the _[SOLID](https://en.wikipedia.org/wiki/SOLID)_ principles.
## Libraries
The framework is based on a _kernel_ package, that provides the basic interfaces and abstractions, and a set of _drivers_ that implement the interfaces to access different data sources.
| Package | NuGet |
| ------- | ----- |
| _Deveel.Repository.Core_ | [](https://www.nuget.org/packages/Deveel.Repository.Core/) |
| _Deveel.Repository.InMemory_ | [](https://www.nuget.org/packages/Deveel.Repository.InMemory/) |
| _Deveel.Repository.MongoFramework_ | [](https://www.nuget.org/packages/Deveel.Repository.MongoFramework/) |
| _Deveel.Repository.EntityFramework_ | [](https://www.nuget.org/packages/Deveel.Repository.EntityFramework/) |
| _Deveel.Repository.DynamicLinq_ | [](https://www.nuget.org/packages/Deveel.Repository.DynamicLinq/) |
| _Deveel.Repository.Manager_ | [](https://www.nuget.org/packages/Deveel.Repository.Manager/) |
| _Deveel.Repository.Manager.DynamicLinq_ | [](https://www.nuget.org/packages/Deveel.Repository.Manager.DynamicLinq/) |
| _Deveel.Repository.Manager.EasyCaching_ | [](https://www.nuget.org/packages/Deveel.Repository.Manager.EasyCaching/) |
## Why Deveel Repository?
The _Repository Pattern_ is a well-known pattern in the software development, that is used to abstract the access to a data source, and to provide a common interface to query and manipulate the data.
You can read the [motivations and drivers](docs/motivations.md) that have led to the development of this framework, and decide if it is suited for your needs.
## Documentation and Guides
A brief gruide on how to use the framework is available in the [documentation](docs/index.md) section of the repository, that will be updated regularly with any major release of the framework.
[Read Here](docs/index.md) or at [GitBook](https://deveel.gitbook.io/repository/).
## License
The project is licensed under the terms of the [Apache Public License v2](LICENSE), that allows the use of the code in any project, open-source or commercial, without any restriction.
## Contributing
The project is open to contributions: if you want to contribute to the project, please read the [contributing guidelines](CONTRIBUTING.md) for more information.