Skip to content

Releases: revoframework/Revo

Revo-1.12.0

22 Oct 12:52
Compare
Choose a tag to compare

[1.12.0] - 2019-10-22

Added

  • new BaseTypeAttribute for EF Core mapping - overrides the mapped entity base type

Changed

  • upgraded to ASP.NET Core 3.0 and Entity Framework Core 3.0
  • ReadModelForEntityAttribute no longer overrides mapped table name (leaves default)

Removed

  • dropped OData out-of-the-box integration on ASP.NET & ASP.NET Core platforms altogether (OData is not supported on ASP.NET Core 3.0 now), you have to integrate it by yourself now

Revo-1.11.0

03 Sep 08:02
Compare
Choose a tag to compare

[1.11.0] - 2019-09-03

Added

  • IRepository.FindManyAsync and GetManyAsync with optimized batch-loading of event sourced aggregates

Changed

  • IRepository.FindAllAsync now returns an array instead of IList
  • improved StaticClassifierDatabaseInitializer, now also supporting event sourced aggregates
  • Cake script now uses VS2019 build toolset

Fixed

  • EF Core's PrefixConvention now correctly prefixes columns defined in abstract classes annotated with TablePrefixAttribute

Revo-1.10.0

02 Jul 08:50
Compare
Choose a tag to compare

[1.10.0] - 2019-06-03

Added

  • IAsyncQueryableResolver.AnyAsync
  • injection support for SignalR hubs in Revo.AspNetCore

Revo-1.9.1

15 May 08:26
Compare
Choose a tag to compare

[1.9.1] - 2019-05-15

Added

  • IEventNumberVersioned and EventEntityReadModel for read models with additional arbitrary versioning (concurrency control)

Changed

  • now possible to configure ODataQuerySettings for EFCoreQueryableToODataResultConverter
  • removed IEventSourcedAggregateRoot constraints from EF Core and EF6 projectors (now can be any IAggregateRoot)

Fixed

  • CrudAggregateStore now automatically removes entities that have been marked with IsDeleted
  • FakeRepository now correctly removes entites that have been flagged as IsDeleted

Revo-1.9.0

15 Mar 09:55
Compare
Choose a tag to compare

[1.9.0] - 2019-03-15

Added

  • new Revo.EasyNetQ module for simple integrations with RabbitMQ

Revo-1.8.0

04 Mar 15:06
Compare
Choose a tag to compare

[1.8.0] - 2019-03-04

Changed

  • default EventSerializer and NotificationSerializer now use the same JSON serializer settings

Fixed

  • EF Core's PrefixConvention with deeper inheritance hierarchies
  • EF Core sync projectors are invoked not invoked multiple times with the same events

Removed

  • obsolete Globalization stuff (messages, locales, translatable entities, ASP.NET localization helpers...)

Revo-1.7.0

14 Feb 15:18
Compare
Choose a tag to compare

[1.7.0] - 2019-02-14

Added

  • new default in-memory job scheduler

Changed

  • FakeClock now uses AsyncLocal instead of ThreadLocal
  • refactored Revo.Extensions.Notifications for .NET Core compatibility and better configuration

Revo-1.6.0

17 Jan 16:34
Compare
Choose a tag to compare

[1.6.0] - 2019-01-17

Changed

  • projects upgraded to .NET Core 2.2, ASP.NET Core 2.2 and Entity Framework Core 2.2

Revo-1.5.0

10 Jan 14:16
Compare
Choose a tag to compare

[1.5.0] - 2019-01-10

Added

  • automatic event projector discovery and registration (now enabled by default)
  • event publishing for non-event sourced entities (not transactionally safe and not saving to event store yet, though, so beware)
  • coordinated UoW transaction for EF Core including synchronous projections, publishing events from projections and fast event queue dispatching
  • EFCoreInMemoryCrudRepository and EFCoreInMemoryDatabaseAccess
  • recurring job scheduling support

Fixed

  • optimized event queue dispatching for big amounts of queues
  • ODataAsyncResultFilter.DefaultConverter now returns correct counts
  • fixed BasicDomainModelConvention when using inheritance including abstract types
  • fixed binding of Hangfire and infrastructure configuration sections, added more options

Revo-1.4.0

05 Nov 17:54
Compare
Choose a tag to compare

[1.4.0] - 2018-11-05

Added

  • #1 ASP.NET Core support - platform implementation, i.e. user context, security, DI, OData, etc.
  • #2, #3 EF Core support - data access & infrastructure (async events, sagas, projections...)
  • Throttling async event processing to minimize the amount of running tasks and open DB connections (when running event queue catch-ups during app start-up and pseudo-synchronously processing events after a request; see IAsyncEventPipelineConfiguration)

Changed

  • flattened and simplified package structure (now provider-centric) - vendor-specific modules were moved
    to Providers directory and some of them were merged/renamed:
    • Revo.Platforms.AspNet → Revo.AspNet
    • Revo.DataAccess.EF6 and Revo.Infrastructure.EF6 → Revo.EF6
    • Revo.DataAccess.RavenDB → Revo.RavenDB
    • Revo.Integrations.Rebus → Revo.Rebus
  • improved AsyncEventWorker concurrency - framework did not prevent multiple workers from parallel processing of one async event queue, causing occasional (e.g. when under heavy load) concurrency exceptions
    (which are eventually handled by an automatic retry); now allowing only one active worker per a queue in an application instance
  • Ninject binding extensions InRequestOrJobScope is now two separate methods with corresponding fallbacks in order - InTaskScope (mostly preferred) and InRequestScope

Removed

  • IAutoMapperDefinition - removed as obsolete and replaced with AutoMapper's own profiles (auto-discovered again)
  • removed implicit ASP.NET Web API configuration - i.e. default OData and serializer settings
  • TokenValidator - removed as obsolete
  • (Tenant)ContextSequence - removed (possibly to be reimplemented later)

Fixed

  • CRUD repositories now correctly wrap their concurrency exceptions as OptimisticConcurrencyException
  • objects from DI container are now deterministically disposed at the end of tasks run within a context (also reducing amount of unused open DB connection)
  • Hangfire job task context disposal now correctly awaits the command to finish