Releases: revoframework/Revo
Releases · revoframework/Revo
Revo-1.12.0
[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
[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
[1.10.0] - 2019-06-03
Added
- IAsyncQueryableResolver.AnyAsync
- injection support for SignalR hubs in Revo.AspNetCore
Revo-1.9.1
[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
[1.9.0] - 2019-03-15
Added
- new Revo.EasyNetQ module for simple integrations with RabbitMQ
Revo-1.8.0
[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
[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
[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
[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
[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