Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
f5ba3fe
- checkin - initial v1.0.0
NinjaRocks Nov 23, 2025
929b055
- Checkin v1.0.0 working code
NinjaRocks Nov 23, 2025
203e2d1
- update read me
NinjaRocks Nov 23, 2025
0eb432b
Update README.md
NinjaRocks Nov 23, 2025
bb1bb4c
Refactor Aggregate and Saga descriptions in README
NinjaRocks Nov 23, 2025
8a919e2
Update README.md
NinjaRocks Nov 23, 2025
6ef0065
- update Architecture.png
NinjaRocks Nov 23, 2025
0b072dc
Adjust image size in README.md
NinjaRocks Nov 23, 2025
f505dd3
Update README.md
NinjaRocks Nov 23, 2025
712d6f1
- Fixed stores abstraction and views
NinjaRocks Nov 24, 2025
0b9f474
- Implement SourceFlow.Net.SQL for stores.
NinjaRocks Nov 24, 2025
03c298b
Update README with architecture details
NinjaRocks Nov 24, 2025
028cbf8
Add NuGet Packages section to README
NinjaRocks Nov 24, 2025
0e2e16e
Fix typos in README.md for package descriptions
NinjaRocks Nov 24, 2025
da85203
Add SourceFlow.Cloud.Azure details to README
NinjaRocks Nov 24, 2025
d7715e9
Add NuGet version badges for SourceFlow packages
NinjaRocks Nov 24, 2025
3598f08
Update .NET version badges and add .NET 10 support
NinjaRocks Nov 25, 2025
31ff1d7
Fix table header formatting in README.md
NinjaRocks Nov 25, 2025
0d0cffc
Revise NuGet package information in README
Nshai Nov 25, 2025
eb1f788
- Add EF Stores.
NinjaRocks Nov 25, 2025
e0691af
- Add enhancements
NinjaRocks Nov 26, 2025
ff75cb3
- add multiple dispatchers
NinjaRocks Nov 26, 2025
c27de76
Adjust image size in architecture section
NinjaRocks Nov 26, 2025
d2e5d3c
Update terminology for projections and stores in wiki
NinjaRocks Nov 26, 2025
fecdf95
Fix grammar in wiki.md regarding Views
NinjaRocks Nov 26, 2025
69405c1
- Move files to docs folder
NinjaRocks Nov 26, 2025
2769034
Add Stores.EntityFramework documentation
NinjaRocks Nov 26, 2025
20e717a
- Add Complete Architecture.
NinjaRocks Nov 26, 2025
d303ea6
Update README with versioning and new components
NinjaRocks Nov 26, 2025
b011e36
Revise README for clarity on architecture concepts
NinjaRocks Nov 26, 2025
f14b2bc
Refine terminology in README for v1.0.0 and v2.0.0
NinjaRocks Nov 26, 2025
b5a671a
- Update README.md
NinjaRocks Nov 28, 2025
d3d67e5
- Add Refactoring
NinjaRocks Nov 29, 2025
759fe8f
Update SourceFlow.Net-README.md
NinjaRocks Nov 29, 2025
b5df63c
- Fix Lint issues
NinjaRocks Nov 29, 2025
1c0c4ae
- cleaned up code
NinjaRocks Nov 29, 2025
81336c0
- fix super linter issues
NinjaRocks Nov 29, 2025
255e4e9
Fix more lint issues
NinjaRocks Nov 29, 2025
cc222ae
Refactor code to reduce duplication and improve maintainability
NinjaRocks Nov 29, 2025
02760fc
Fix null check in refactored Persist methods
NinjaRocks Nov 29, 2025
96ef664
- Fix pipeline issues
NinjaRocks Nov 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 116 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

# All files
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

# Code files
[*.{cs,csx,vb,vbx}]
indent_size = 4
indent_style = space
tab_width = 4

# XML project files
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
indent_size = 2

# XML config files
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
indent_size = 2

# JSON files
[*.json]
indent_size = 2

# YAML files
[*.{yml,yaml}]
indent_size = 2

# Markdown files
[*.md]
trim_trailing_whitespace = false

# Dotnet code style settings:
[*.{cs,vb}]
# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = false

# Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:refactoring
dotnet_style_qualification_for_property = false:refactoring
dotnet_style_qualification_for_method = false:refactoring
dotnet_style_qualification_for_event = false:refactoring

# Use language keywords instead of framework type names for type references
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion

# Suggest more modern language features when available
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion

# CSharp code style settings:
[*.cs]
# Newline settings
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_between_query_expression_clauses = true

# Indentation preferences
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_indent_labels = flush_left
csharp_indent_block_contents = true
csharp_indent_braces = false

# Space preferences
csharp_space_after_cast = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_around_binary_operators = before_and_after
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false

# Prefer "var" everywhere
csharp_style_var_for_built_in_types = false:silent
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = false:silent

# Prefer method-like constructs to have a block body
csharp_style_expression_bodied_methods = false:none
csharp_style_expression_bodied_constructors = false:none
csharp_style_expression_bodied_operators = false:none

# Prefer property-like constructs to have an expression-body
csharp_style_expression_bodied_properties = true:none
csharp_style_expression_bodied_indexers = true:none
csharp_style_expression_bodied_accessors = true:none

# Suggest more modern language features when available
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Code quality
dotnet_code_quality_unused_parameters = all:suggestion
18 changes: 18 additions & 0 deletions .github/linters/.jscpd.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"threshold": 7,
"reporters": ["console"],
"ignore": [
"**/*.min.js",
"**/node_modules/**",
"**/bin/**",
"**/obj/**",
"**/.git/**"
],
"format": [
"csharp"
],
"minLines": 5,
"minTokens": 100,
"blame": false,
"silent": false
}
18 changes: 18 additions & 0 deletions .jscpd.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"threshold": 7,
"reporters": ["console"],
"ignore": [
"**/*.min.js",
"**/node_modules/**",
"**/bin/**",
"**/obj/**",
"**/.git/**"
],
"format": [
"csharp"
],
"minLines": 5,
"minTokens": 100,
"blame": false,
"silent": false
}
61 changes: 61 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Changelog

All notable changes to SourceFlow.Net will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2025-01-28

### Added

#### Core Framework (SourceFlow.Net)
- Complete event sourcing implementation with Domain-Driven Design (DDD) principles
- CQRS pattern implementation with command/query segregation
- Aggregate pattern for managing root entities within bounded contexts
- Saga orchestration for long-running transactions and workflow management
- Event-first design with comprehensive event sourcing foundation
- Command and event publishing/subscription infrastructure
- View model projection system for read-optimized data models
- Support for multiple .NET frameworks:
- .NET 10.0
- .NET 9.0
- .NET Standard 2.1
- .NET Standard 2.0
- .NET Framework 4.6.2
- OpenTelemetry integration for observability and tracing
- Dependency injection support via Microsoft.Extensions.DependencyInjection
- Structured logging support via Microsoft.Extensions.Logging

#### Entity Framework Store Provider (SourceFlow.Stores.EntityFramework)
- `ICommandStore` implementation using Entity Framework Core
- `IEntityStore` implementation using Entity Framework Core
- `IViewModelStore` implementation using Entity Framework Core
- Configurable connection strings per store type (separate or shared databases)
- Support for .NET 10.0, .NET 9.0, and .NET 8.0
- SQL Server database provider support
- Polly-based resilience and retry policies
- OpenTelemetry instrumentation for Entity Framework Core operations

#### Architecture & Patterns
- Clean architecture principles
- Separation of concerns between read and write models
- Event-driven communication between aggregates
- State preservation and consistency guarantees
- Extensible framework design for custom implementations

### Documentation
- Comprehensive README with architecture diagrams
- Developer guide available on GitHub Wiki
- Package documentation and XML comments
- Architecture diagram showing complete system design
- Roadmap for future cloud provider support (v2.0.0)

### Infrastructure
- NuGet package generation on build
- GitHub Actions CI/CD pipeline integration
- CodeQL security analysis
- Symbol packages for debugging support
- MIT License

[1.0.0]: https://github.com/CodeShayk/SourceFlow.Net/releases/tag/v1.0.0
Binary file added Images/Architecture-Complete.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading