Savvyio.Core 1.2.0-preview

This is a prerelease version of Savvyio.Core.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Savvyio.Core --version 1.2.0-preview                
NuGet\Install-Package Savvyio.Core -Version 1.2.0-preview                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Savvyio.Core" Version="1.2.0-preview" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Savvyio.Core --version 1.2.0-preview                
#r "nuget: Savvyio.Core, 1.2.0-preview"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Savvyio.Core as a Cake Addin
#addin nuget:?package=Savvyio.Core&version=1.2.0-preview&prerelease

// Install Savvyio.Core as a Cake Tool
#tool nuget:?package=Savvyio.Core&version=1.2.0-preview&prerelease                

Savvyio.Core

Provides the fundamental abstractions and classes for supporting a complete flow of DDD, CQRS and Event Sourcing concepts.

About

An open-source project (MIT license) that provides a SOLID and clean .NET class library for writing DDD, CQRS and Event Sourcing applications.

Savvy I/O Flow

It is, by heart, free, flexible and built to extend and boost your agile codebelt.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (12)

Showing the top 5 NuGet packages that depend on Savvyio.Core:

Package Downloads
Savvyio.Domain

Provides the fundamental classes and interfaces to work with the concepts of DDD (Domain Driven Design).

Savvyio.Extensions.DependencyInjection

Extend the Savvy I/O core assemblies with support for Microsoft Dependency Injection.

Savvyio.Extensions.EFCore

Extend the Savvy I/O core assemblies with support for Microsoft Entity Framework Core.

Savvyio.Extensions.Dapper

Extend the Savvy I/O core assemblies with support for Dapper.

Savvyio.Commands

Provides the fundamental classes to work with the Command part of the CQRS pattern (Command and Query Responsibility Segregation).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.0.0 159 11/13/2024
4.0.0-rc.1 102 11/12/2024
4.0.0-preview.2 52 10/6/2024
4.0.0-preview.1 54 9/6/2024
3.0.0 628 9/1/2024
3.0.0-preview.3 82 8/13/2024
3.0.0-preview.2 41 8/4/2024
3.0.0-preview.1 40 7/31/2024
2.2.0 654 4/10/2024
2.1.0 898 3/5/2024
2.1.0-preview.17 73 3/3/2024
2.1.0-preview.14 68 3/2/2024
2.1.0-preview.12 62 2/28/2024
2.1.0-preview 539 2/26/2024
2.0.0 626 2/11/2024
2.0.0-preview.16 71 2/5/2024
2.0.0-preview.13 157 1/7/2024
2.0.0-preview.6 107 1/3/2024
2.0.0-preview 608 1/2/2024
1.2.0-preview 714 11/23/2023
1.1.0 2,359 12/6/2022
1.0.0 2,468 11/9/2022
0.8.0-rc 906 6/1/2022

Version: 1.1.0
Availability: .NET 7.0, .NET 6.0
 
# New Features
- ADDED IMessage{T} interface in the Savvyio.Messaging namespace that defines a generic way to wrap an IRequest inside a message
- ADDED IPointToPointChannel{TRequest} interface in the Savvyio.Messaging namespace that defines an interface for a bus that is used for interacting with other subsystems (out-process/inter-application) to do something (e.g., change the state)
- ADDED IPublisher{TRequest} interface in the Savvyio.Messaging namespace that defines a publisher/sender channel for interacting with other subsystems (out-process/inter-application) to be notified (e.g., made aware of something that has happened)
- ADDED IPublishSubscribeChannel{TRequest} interface in the Savvyio.Messaging namespace that defines an interface for a bus that is used for interacting with other subsystems (out-process/inter-application) to be notified (e.g., made aware of something that has happened)
- ADDED IReceiver{TRequest} interface in the Savvyio.Messaging namespace that defines a consumer/receiver channel used by subsystems to receive a command and perform one or more actions (e.g., change the state)
- ADDED ISender{TRequest} interface in the Savvyio.Messaging namespace that defines a producer/sender channel used for interacting with other subsystems (out-process/inter-application) to do something (e.g., change the state)
- ADDED ISubscriber{TRequest} interface in the Savvyio.Messaging namespace that defines a subscriber/receiver channel used by subsystems to subscribe to messages (typically events) to be made aware of something that has happened
- ADDED Message record in the Savvyio.Messaging namespace that provides a default implementation of the IMessage{T} interface
- ADDED MessageOptions class in the Savvyio.Messaging namespace that is related to wrapping an IRequest implementation inside a message
- ADDED ReceiveAsyncOptions class in the Savvyio.Messaging namespace that specifies options that is related to implementations of the IReceiver{TRequest} interface
- ADDED SubscribeAsyncOptions class in the Savvyio.Messaging namespace that specifies options that is related to implementations of the ISubscriber{TRequest} interface
 
Version: 1.0.0
Availability: .NET 7.0, .NET 6.0
 
# New Features
- ADDED HandlerFactory class in the Savvyio namespace that provides access to factory methods for creating and configuring generic handlers that supports MEP
- ADDED HandlerServicesDescriptor class in the Savvyio namespace that provides information, in a developer friendly way, about implementations of the IHandler{TRequest} interface such as name, declared members and what type of request they handle
- ADDED IDataSource interface in the Savvyio namespace that defines a marker interface that specifies the actual I/O communication with a source of data
- ADDED IHandler interface in the Savvyio namespace that defines a marker interface that specifies a handler
- ADDED IIdentity interface in the Savvyio namespace that an identity typically associated with a storage such as a database
- ADDED IMetadata interface in the Savvyio namespace that defines a generic way to associate metadata with any type of object
- ADDED IMetadataDictionary interface in the Savvyio namespace that defines a generic way to support metadata capabilities
- ADDED IRequest interface in the Savvyio namespace that defines a marker interface that specifies a request/model/event
- ADDED MetadataDictionary class in the Savvyio namespace that provides a default implementation of the IMetadataDictionary interface
- ADDED MetadataExtensions class in the Savvyio namespace that consist of extension methods for the IMetadata interface: GetCausationId, GetCorrelationId, SetCausationId, SetCorrelationId, SetEventId, SetTimestamp, SetMemberType, SaveMetadata, MergeMetadata
- ADDED MetadataFactory class in the Savvyio namespace that provides access to factory methods for maintaining metadata in models
- ADDED Request record in the Savvyio namespace that represents the base class from which all implementations of the IRequest interface should derive
- ADDED SavvyioOptions class in the Savvyio namespace that specifies options that is related to setting up Savvy I/O services
- ADDED SavvyioOptionsExtensions class in the Savvyio namespace that consist of extension methods for the SavvyioOptions class: AddDispatchers, AddHandlers
- ADDED TaskExtensions class in the Savvyio namespace that consist of extension methods for the Task{T} class: SingleOrDefaultAsync
- ADDED IDataStore interface in the Savvyio.Data namespace that defines a marker interface that specifies an abstraction of persistent data access based on the Data Access Object pattern
- ADDED IDeletableDataStore interface in the Savvyio.Data namespace that defines a generic way of abstracting deletable data access objects (cruD)
- ADDED IPersistentDataStore interface in the Savvyio.Data namespace that defines a generic way of abstracting persistent data access objects (CRUD)
- ADDED IReadableDataStore interface in the Savvyio.Data namespace that defines a generic way of abstracting readable data access objects (cRud)
- ADDED ISearchableDataStore interface in the Savvyio.Data namespace that defines a generic way of abstracting searchable data access objects (cRud)
- ADDED IWritableDataStore interface in the Savvyio.Data namespace that defines a generic way of abstracting writable data access objects (CrUd)
- ADDED Dispatcher class in the Savvyio.Dispatchers namespace that represents the base class from which all implementations of the dispatcher concept should derive
- ADDED FireForgetDispatcher class in the Savvyio.Dispatchers namespace that provides a generic dispatcher that uses Fire-and-Forget/In-Only MEP
- ADDED IDispatcher interface in the Savvyio.Dispatchers namespace that defines a marker interface that specifies a dispatcher that encapsulates how a set of objects interact
- ADDED IServiceLocator interface in the Savvyio.Dispatchers namespace that provides a generic way to locate implementations of service objects
- ADDED RequestReplyDispatcher class in the Savvyio.Dispatchers namespace that provides a generic dispatcher that uses Request-Reply/In-Out MEP
- ADDED ServiceLocator class in the Savvyio.Dispatchers namespace that provides a default implementation of the IServiceLocator interface
- ADDED DomainException class in the Savvyio.Domain namespace that is the exception that is thrown when a domain model is not in a valid state
- ADDED IDeletableRepository interface in the Savvyio.Domain namespace that defines a generic way of abstracting deletable repositories (cruD)
- ADDED IPersistentRepository interface in the Savvyio.Domain namespace that defines a generic way of abstracting persistent repositories (CRUD)
- ADDED IReadableRepository interface in the Savvyio.Domain namespace that defines a generic way of abstracting readable repositories (cRud)
- ADDED IRepository interface in the Savvyio.Domain namespace that defines a marker interface that specifies an abstraction of persistent data access based on the Repository Pattern
- ADDED ISearchableRepository interface in the Savvyio.Domain namespace that defines a generic way of abstracting searchable repositories (cRud)
- ADDED IUnitOfWork interface in the Savvyio.Domain namespace that defines a transaction that bundles multiple IRepository{TEntity,TKey}" calls into a single unit
- ADDED IWritableRepository interface in the Savvyio.Domain namespace that defines a generic way of abstracting writable repositories (CrUd)
- ADDED FireForgetRegistryExtensions class in the Savvyio.Handlers namespace that consist of extension methods for the IFireForgetRegistry{TRequest} interface: RegisterAsync
- ADDED IFireForgetActivator interface in the Savvyio.Handlers namespace that specifies a way of invoking Fire-and-Forget/In-Only MEP delegates that handles TRequest
- ADDED IFireForgetHandler interface in the Savvyio.Handlers namespace that defines a generic handler that uses Fire-and-Forget/In-Only MEP
- ADDED IFireForgetRegistry interface in the Savvyio.Handlers namespace that specifies a Fire-and-Forget/In-Only MEP registry that store delegates responsible of handling type TRequest
- ADDED IRequestReplyActivator interface in the Savvyio.Handlers namespace that specifies a way of invoking Request-Reply/In-Out MEP delegates that handles TRequest
- ADDED IRequestReplyHandler interface in the Savvyio.Handlers namespace that defines a generic handler that uses Request-Reply/In-Out MEP
- ADDED IRequestReplyRegistry interface in the Savvyio.Handlers namespace that specifies a Request-Reply/In-Out MEP registry that store delegates responsible of handling type TRequest
- ADDED OrphanedHandlerException class in the Savvyio.Dispatchers namespace that provides the exception that is thrown when an IHandler{TRequest} implementation cannot be resolved
- ADDED RequestReplyRegistryExtensions class in the Savvyio.Handlers namespace that consist of extension methods for the IRequestReplyRegistry{TRequest} interface: RegisterAsync