This repository has been archived by the owner on May 7, 2020. It is now read-only.
Releases: stoveproject/Stove
Releases · stoveproject/Stove
v2.4.0
v2.3.6
v2.3.2
Features
-
Implement more CQRS oriented structures #121
- Command, SequencedCommand
- CorrelationId/CausationId approach for each command
- CorrelationId/CausationId aware Context implementation. This will provide these Ids in its context
e.g ICommandContext {CorrelationId, CausationId} per thread.
-
Create a aspnetcore middleware fore CorrelationId #124
Breaking Changes
v2.1.0
Breaking Change
- There are several breaking changes about Domain Modelling; these are:
- AggregateRoot & Entity seperated each other
- AggregateRoot
Raise
method is removed(I know this is sad😢). You should use ApplyChange method.
For ex: Let's think about a Product AggregateRoot for CRUD DDD.
If Product Aggregate will raise any event then we have to define these events handling on its constructor, but these handlings concern Product AR. If you treat these events also as Domain Events you should write Handler for them to handle outside of AR.
protected Product()
{
Register<PriceChangedEvent>(@event =>
{
Price = @event.NewPrice;
});
Register<ProductCreatedEvent>(@event =>
{
Price = @event.Price;
ProductId = new ProductId(@event.Id);
Name = @event.Name;
});
}
public void ChangePrice(decimal price)
{
if (price <= 0) throw new ArgumentException("Price can not be equal or less zero", nameof(price));
ApplyChange(new PriceChangedEvent(price, ProductId.Id));
}
public static Product CreateProduct(string name, decimal price)
{
if (price <= 0) throw new ArgumentException("Price can not be equal or less zero", nameof(price));
var product = new Product();
var productId = new ProductId(Guid.NewGuid());
product.ApplyChange(new ProductCreatedEvent(name, price, productId.Id));
return product;
}
These changes can break your handling structure and existing components/properties of your events, if it does then consider your Domain Modelling because it might be wrong.
v2.0.8
Features
- Stove.Couchbase implemented
Enhancements
- Autofac.Extras.IocManager updated to 3.2.1
- Castle.Core updated to 4.2.1
- Autofac updated to 4.6.2
- Added cancellationtoken support for async calls (#96)
- NHibernate updated to 5.0.0 (#95)
Bug Fixes
- EventBus IocHandlerFactory ILifetimeScope dispose issue in multi-threading fixed (#92)
v2.0.3
v2.0.2
v2.0.1
v2.0.0
Breaking Changes
- netstandard 2.0 support
- StoveBootstrapper.Configuration -> StoveBoostrapper.StoveConfiguration
- Redis ported from .config based initialization to code based initialization
.UseStoveRedisCaching(configuration =>
{
configuration.ConfigurationOptions
.AddEndpoint("127.0.0.1")
.SetDefaultDatabase(0)
.SetConnectionTimeOut(TimeSpan.FromMinutes(5));
return configuration;
})
Features
- Stove.Serilog package created and ported Stove.NLog to Stove.Serilog on .netcore projects
- Stove.EntityFrameworkCore package created
Enhancements
- Lazy-loading enable-disable support for EF 6.x (#69)
- DefaultPrincipalAccessor's lifetimescope changed as Transient
Bugfixes
- Fixed Autofac.Extras.IocManager IsRegistered method bug (osoykan-archive/Autofac.Extras.IocManager#34)