Skip to content

zamabraga/dflow

 
 

Repository files navigation

DFlow - Domain Events Flow

Domain events Flow is a platform to support development with agility in mind based on Domain-Driven Design tools.

Project Informations

GitHub issues GitHub stars GitHub forks GitHub license

Code Quality

codecov Codacy Badge

Build Status

DFlow Build

Tests Passing

AppVeyor tests

Nuget packages from DFlow Platform

Core Packages Description Dependencies Latest Version
DFlow First implementaion with full event sourcing aggregation support none DFlow NuGet version
DFlow.Domain Base framewor to rich domain modelling based on Object Value, Entity and Aggregates design patterns - DFlow.Domain.Events DFlow NuGet version
DFlow.Domain.Events Base framework that provides capability to declare events raise from Aggregates none DFlow NuGet version
DFlow.Business.Cqrs CQRS framework to implement command and query handlers event and event publishing as well - DFlow.Domain
- DFlow.Domain.Events
- DFlow.Domain.EventBus.(*)
DFlow NuGet version
DFlow.Persistence Base framework providing an Unity of Work and Repository design patterns to support persistence layer implementation - DFlow.Domain
DFlow NuGet version
Contrib Pastyle="ckages Description Dependencies Latest Version
DFlow.Persistence.EntityFramework Specialization of DFlow.Persistence to support EntityFramework based persistence layers abstraction - DFlow.Domain
- DFlow.Domain.Persistence
DFlow NuGet version
DFlow.Domain.EventBus.FluentMediator Implementation of IDomainEventBus to be used to DomainEvents publishing - DFlow.Domain.Events
DFlow NuGet version
DFlow.Persistence.LiteDB Specialization of DFlow.Persistence to support LiteDB - DFlow.Domain
- DFlow.Domain.Persistence
DFlow NuGet version

About Project

DFlow was born as a reference implementation of Domain-Drive Design architecture based with aggregates supporting Event Sourcing design pattern but evolves to a full flagged platform to helps you to implement your own framework based on DFlow Domain-Driven concepts supported by Domain-Driven Design tools.

Do you have a lot of flexibility to evolve your applications. Each platform library enforce just few concepts used by each specific layer, do you pay for what you use but you can implement your view of DFlow interfaces and evolve as your desire.

As an example, we provide contrib packages like Dflow.Persistence.EntityFramework that enables you to use ORM based approach to your persistence layer using EntityFramework with any database driver that you want and DFlow.EventBus.FluentMediator that is a interface to used the excellent framework FluentMediator.

Documentation

For now we implement few example projects that you can look at in samples folder

Sample Description Link
SimplestApp It is a basicv application using DFlow.Domain library SimplestApp
SimplestApp.Business.Cqrs It is a basic implementation of CQRS-base application using DFlow.Business.Cqrs library SimplestApp.Business.Cqrs
SimplestApp.Persistence.EntityFramework It is a basic application using all libraries of DFlow platform for CQRS + DDD + ORM SimplestApp.Persistence.EntityFramework

Roadmap

  • Finish support to Event Sourcing in Persistence Layer
  • Test a 100% of code
  • Finish the performance tests support
  • Improve documentation
  • much more...

Supporters

Supporter Description
./img/ All Products Pack License for Open Source under program Free License Programs

Thank You for all supporters of this project

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%