Skip to content

Commit 828cb0c

Browse files
authored
Release/v1.0.0
* Checkin v1.0.0 for release
1 parent 8f0fbb0 commit 828cb0c

File tree

188 files changed

+13473
-2921
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

188 files changed

+13473
-2921
lines changed

.editorconfig

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# EditorConfig is awesome: https://EditorConfig.org
2+
3+
# top-most EditorConfig file
4+
root = true
5+
6+
# All files
7+
[*]
8+
charset = utf-8
9+
end_of_line = lf
10+
insert_final_newline = true
11+
trim_trailing_whitespace = true
12+
13+
# Code files
14+
[*.{cs,csx,vb,vbx}]
15+
indent_size = 4
16+
indent_style = space
17+
tab_width = 4
18+
19+
# XML project files
20+
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
21+
indent_size = 2
22+
23+
# XML config files
24+
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
25+
indent_size = 2
26+
27+
# JSON files
28+
[*.json]
29+
indent_size = 2
30+
31+
# YAML files
32+
[*.{yml,yaml}]
33+
indent_size = 2
34+
35+
# Markdown files
36+
[*.md]
37+
trim_trailing_whitespace = false
38+
39+
# Dotnet code style settings:
40+
[*.{cs,vb}]
41+
# Sort using and Import directives with System.* appearing first
42+
dotnet_sort_system_directives_first = true
43+
dotnet_separate_import_directive_groups = false
44+
45+
# Avoid "this." and "Me." if not necessary
46+
dotnet_style_qualification_for_field = false:refactoring
47+
dotnet_style_qualification_for_property = false:refactoring
48+
dotnet_style_qualification_for_method = false:refactoring
49+
dotnet_style_qualification_for_event = false:refactoring
50+
51+
# Use language keywords instead of framework type names for type references
52+
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
53+
dotnet_style_predefined_type_for_member_access = true:suggestion
54+
55+
# Suggest more modern language features when available
56+
dotnet_style_object_initializer = true:suggestion
57+
dotnet_style_collection_initializer = true:suggestion
58+
dotnet_style_coalesce_expression = true:suggestion
59+
dotnet_style_null_propagation = true:suggestion
60+
dotnet_style_explicit_tuple_names = true:suggestion
61+
62+
# CSharp code style settings:
63+
[*.cs]
64+
# Newline settings
65+
csharp_new_line_before_open_brace = all
66+
csharp_new_line_before_else = true
67+
csharp_new_line_before_catch = true
68+
csharp_new_line_before_finally = true
69+
csharp_new_line_before_members_in_object_initializers = true
70+
csharp_new_line_before_members_in_anonymous_types = true
71+
csharp_new_line_between_query_expression_clauses = true
72+
73+
# Indentation preferences
74+
csharp_indent_case_contents = true
75+
csharp_indent_switch_labels = true
76+
csharp_indent_labels = flush_left
77+
csharp_indent_block_contents = true
78+
csharp_indent_braces = false
79+
80+
# Space preferences
81+
csharp_space_after_cast = false
82+
csharp_space_after_keywords_in_control_flow_statements = true
83+
csharp_space_between_method_call_parameter_list_parentheses = false
84+
csharp_space_between_method_declaration_parameter_list_parentheses = false
85+
csharp_space_between_parentheses = false
86+
csharp_space_before_colon_in_inheritance_clause = true
87+
csharp_space_after_colon_in_inheritance_clause = true
88+
csharp_space_around_binary_operators = before_and_after
89+
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
90+
csharp_space_between_method_call_name_and_opening_parenthesis = false
91+
csharp_space_between_method_call_empty_parameter_list_parentheses = false
92+
93+
# Prefer "var" everywhere
94+
csharp_style_var_for_built_in_types = false:silent
95+
csharp_style_var_when_type_is_apparent = true:suggestion
96+
csharp_style_var_elsewhere = false:silent
97+
98+
# Prefer method-like constructs to have a block body
99+
csharp_style_expression_bodied_methods = false:none
100+
csharp_style_expression_bodied_constructors = false:none
101+
csharp_style_expression_bodied_operators = false:none
102+
103+
# Prefer property-like constructs to have an expression-body
104+
csharp_style_expression_bodied_properties = true:none
105+
csharp_style_expression_bodied_indexers = true:none
106+
csharp_style_expression_bodied_accessors = true:none
107+
108+
# Suggest more modern language features when available
109+
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
110+
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
111+
csharp_style_inlined_variable_declaration = true:suggestion
112+
csharp_style_throw_expression = true:suggestion
113+
csharp_style_conditional_delegate_call = true:suggestion
114+
115+
# Code quality
116+
dotnet_code_quality_unused_parameters = all:suggestion

.github/linters/.jscpd.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"threshold": 7,
3+
"reporters": ["console"],
4+
"ignore": [
5+
"**/*.min.js",
6+
"**/node_modules/**",
7+
"**/bin/**",
8+
"**/obj/**",
9+
"**/.git/**"
10+
],
11+
"format": [
12+
"csharp"
13+
],
14+
"minLines": 5,
15+
"minTokens": 100,
16+
"blame": false,
17+
"silent": false
18+
}

.jscpd.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"threshold": 7,
3+
"reporters": ["console"],
4+
"ignore": [
5+
"**/*.min.js",
6+
"**/node_modules/**",
7+
"**/bin/**",
8+
"**/obj/**",
9+
"**/.git/**"
10+
],
11+
"format": [
12+
"csharp"
13+
],
14+
"minLines": 5,
15+
"minTokens": 100,
16+
"blame": false,
17+
"silent": false
18+
}

CHANGELOG.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Changelog
2+
3+
All notable changes to SourceFlow.Net will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [1.0.0] - 2025-01-28
9+
10+
### Added
11+
12+
#### Core Framework (SourceFlow.Net)
13+
- Complete event sourcing implementation with Domain-Driven Design (DDD) principles
14+
- CQRS pattern implementation with command/query segregation
15+
- Aggregate pattern for managing root entities within bounded contexts
16+
- Saga orchestration for long-running transactions and workflow management
17+
- Event-first design with comprehensive event sourcing foundation
18+
- Command and event publishing/subscription infrastructure
19+
- View model projection system for read-optimized data models
20+
- Support for multiple .NET frameworks:
21+
- .NET 10.0
22+
- .NET 9.0
23+
- .NET Standard 2.1
24+
- .NET Standard 2.0
25+
- .NET Framework 4.6.2
26+
- OpenTelemetry integration for observability and tracing
27+
- Dependency injection support via Microsoft.Extensions.DependencyInjection
28+
- Structured logging support via Microsoft.Extensions.Logging
29+
30+
#### Entity Framework Store Provider (SourceFlow.Stores.EntityFramework)
31+
- `ICommandStore` implementation using Entity Framework Core
32+
- `IEntityStore` implementation using Entity Framework Core
33+
- `IViewModelStore` implementation using Entity Framework Core
34+
- Configurable connection strings per store type (separate or shared databases)
35+
- Support for .NET 10.0, .NET 9.0, and .NET 8.0
36+
- SQL Server database provider support
37+
- Polly-based resilience and retry policies
38+
- OpenTelemetry instrumentation for Entity Framework Core operations
39+
40+
#### Architecture & Patterns
41+
- Clean architecture principles
42+
- Separation of concerns between read and write models
43+
- Event-driven communication between aggregates
44+
- State preservation and consistency guarantees
45+
- Extensible framework design for custom implementations
46+
47+
### Documentation
48+
- Comprehensive README with architecture diagrams
49+
- Developer guide available on GitHub Wiki
50+
- Package documentation and XML comments
51+
- Architecture diagram showing complete system design
52+
- Roadmap for future cloud provider support (v2.0.0)
53+
54+
### Infrastructure
55+
- NuGet package generation on build
56+
- GitHub Actions CI/CD pipeline integration
57+
- CodeQL security analysis
58+
- Symbol packages for debugging support
59+
- MIT License
60+
61+
[1.0.0]: https://github.com/CodeShayk/SourceFlow.Net/releases/tag/v1.0.0

Images/Architecture-Complete.png

443 KB
Loading

Images/Architecture.png

428 KB
Loading

0 commit comments

Comments
 (0)