Savvyio.Core
1.2.0-preview
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
<PackageReference Include="Savvyio.Core" Version="1.2.0-preview" />
paket add Savvyio.Core --version 1.2.0-preview
#r "nuget: Savvyio.Core, 1.2.0-preview"
// 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.
It is, by heart, free, flexible and built to extend and boost your agile codebelt.
Related Packages
- Savvyio.App 🏭
- Savvyio.Commands 📦
- Savvyio.Core 📦
- Savvyio.Domain 📦
- Savvyio.Domain.EventSourcing 📦
- Savvyio.EventDriven 📦
- Savvyio.Extensions.Dapper 📦
- Savvyio.Extensions.DapperExtensions 📦
- Savvyio.Extensions.DependencyInjection 📦
- Savvyio.Extensions.DependencyInjection.Dapper 📦
- Savvyio.Extensions.DependencyInjection.DapperExtensions 📦
- Savvyio.Extensions.DependencyInjection.Domain 📦
- Savvyio.Extensions.DependencyInjection.EFCore 📦
- Savvyio.Extensions.DependencyInjection.EFCore.Domain 📦
- Savvyio.Extensions.DependencyInjection.EFCore.Domain.EventSourcing 📦
- Savvyio.Extensions.DependencyInjection.SimpleQueueService 📦
- Savvyio.Extensions.Dispatchers 📦
- Savvyio.Extensions.EFCore 📦
- Savvyio.Extensions.EFCore.Domain 📦
- Savvyio.Extensions.EFCore.Domain.EventSourcing 📦
- Savvyio.Extensions.Newtonsoft.Json 📦
- Savvyio.Extensions.SimpleQueueService 📦
- Savvyio.Queries 📦
Product | Versions 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. |
-
net6.0
- Cuemon.Extensions.Collections.Generic (>= 8.0.0)
- Cuemon.Extensions.Core (>= 8.0.0)
- Cuemon.Extensions.Reflection (>= 8.0.0)
- Cuemon.Security.Cryptography (>= 8.0.0)
-
net7.0
- Cuemon.Extensions.Collections.Generic (>= 8.0.0)
- Cuemon.Extensions.Core (>= 8.0.0)
- Cuemon.Extensions.Reflection (>= 8.0.0)
- Cuemon.Security.Cryptography (>= 8.0.0)
-
net8.0
- Cuemon.Extensions.Collections.Generic (>= 8.0.0)
- Cuemon.Extensions.Core (>= 8.0.0)
- Cuemon.Extensions.Reflection (>= 8.0.0)
- Cuemon.Security.Cryptography (>= 8.0.0)
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