Skip to content
This repository has been archived by the owner on May 7, 2020. It is now read-only.

Releases: stoveproject/Stove

v2.4.0

31 May 19:04
351ce96
Compare
Choose a tag to compare

Features

  • EntityFrameworkCore 2.1 implemented

Breaking Changes

  • ISupportsExplicitLoading removed since we have LazyLoading anymore.

v2.3.6

29 May 15:46
5ed7c89
Compare
Choose a tag to compare

Features

  • Stove.NHibernate is made netstandard2.0 and NHibernate updated to 5.1.2
  • Other package updates

v2.3.2

30 Jan 08:10
680ca96
Compare
Choose a tag to compare

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

  • Remove Entity Change/Create/Update event handling #123
  • Implement async UseUow func #122
  • Introduced IEventHandler.Handle(@event, headers) this will break the existing EventHandler implementations but easy to fix.

v2.1.0

02 Dec 18:56
0a5c95c
Compare
Choose a tag to compare

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

16 Oct 19:28
Compare
Choose a tag to compare

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

04 Oct 13:55
Compare
Choose a tag to compare
Merge pull request #84 from stoveproject/dev

dev to master

v2.0.2

03 Oct 07:56
Compare
Choose a tag to compare

Features

  • Request/Response functionality for Stove.RabbitMQ

v2.0.1

02 Oct 07:56
Compare
Choose a tag to compare
  • Castle.Core updated to 4.2.0
  • Autofac.Extras.IocManager updated to 3.2.0

v2.0.0

25 Sep 21:36
Compare
Choose a tag to compare

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

v1.2.1

25 Jul 19:26
Compare
Choose a tag to compare
  • Packages Updated #51