Rystem.RepositoryFramework allows you to use correctly concepts like repository pattern, CQRS and DDD. You have interfaces for your domains, auto-generated api, auto-generated HttpClient to simplify connection "api to front-end", a functionality for auto-population in memory of your models, a functionality to simulate exceptions and waiting time from external sources to improve your implementation/business test and load test.
$ dotnet add package Rystem.RepositoryFramework.Cache.Azure.Storage.Blobbuilder.Services
.AddRepositoryInBlobStorage<User, string>(builder.Configuration["Storage:ConnectionString"])
.WithInMemoryCache(x =>
{
x.RefreshTime = TimeSpan.FromSeconds(20);
x.Methods = RepositoryMethod.All;
})
.WithBlobStorageCache(builder.Configuration["Storage:ConnectionString"], settings: x =>
{
x.RefreshTime = TimeSpan.FromSeconds(120);
x.Methods = RepositoryMethod.All;
});
You always will find the same interface. For instance
IRepository<User, string> repository
or if you added a query pattern or command pattern
IQuery<User, string> query
ICommand<User, string> command