Ease.Repository
C#/.Net building blocks and concrete implementations of the repository and unit of work patterns compatible with both NoSQL and SQL / session-aware stores. Also includes base classes to aid in integration testing concrete repository classes, and provides default CRUD tests out-of-the-box when your concrete repository implements the required interfaces and your corresonding unit test class inherits from one of the available abstract bases.
Concrete implementations may be expanded over time, but will start with AzureTable, Redis, EntityFramework, and NHibernate (in that order).
Ease.Repository targets .NET Standard 2.0+ (coverage: .NET Framework 4.6.1, .NET Core 2.0+, and later Mono, Xamarin and UWP targets).
Installing via NuGet
The baseline abstractions - if you need or want to develop your own concrete implementations:
Install-Package Ease.Repository
Off-the-shelf concrete implementations (these would be what you'd typically integrate with, rather than the baseline):
Install-Package Ease.Repository.AzureTable
[Coming Soon] Install-Package Ease.Repository.Redis [Coming Soon]
[Coming Soon] Install-Package Ease.Repository.EntityFramework [Coming Soon]
[Coming Soon] Install-Package Ease.Repository.NHibernate [Coming Soon]
And integration test base class support providing default sets of CRUD verification:
Install-Package Ease.Repository.Test
Install-Package Ease.Repository.AzureTable.Test
[Coming Soon] Install-Package Ease.Repository.Redis.Test [Coming Soon]
[Coming Soon] Install-Package Ease.Repository.EntityFramework.Test [Coming Soon]
[Coming Soon] Install-Package Ease.Repository.NHibernate.Test [Coming Soon]
Release notes
| Latest Versioned Build Tests | Latest PR Build Tests |
|---|---|
- The change log summarizes changes by release.
- We tag Pull Requests and Issues with milestones which match to nuget package release numbers.
- Breaking changes will be called out in the wiki with simple notes on any necessary steps to upgrade.
Using Ease.Repository
Quick-start information will be in the Articles, and full API documentation is found here.
3rd Party Libraries and Contributions
A special thank you to the authors and maintainers of these libraries that helped to make Ease.Repository* possible:
- ChangeTracking - for the BestEffortUnitOfWork entity update tracking
- AutoFixture - excellent test fixture management
- FakeItEasy - wonderful mocking framework
- AutoFixture.FakeItEasy - a perfect marriage, providing a very elegant auto-mocking pattern implementation
Acknowledgements
- TODO - add helper acknowledgements here
License
Licensed under the terms of the MIT License