Skip to content
Functorium
Search
Ctrl
K
Cancel
GitHub
Select theme
Dark
Light
Auto
Select language
English
한국어
Introduction
Architecture Decision Records
Specifications
AX
Samples
Guides
Tutorials
Functorium Tutorials
Functional Value Object Implementation
Implementing Success-Driven Value Objects with Functional Programming
Introduction
Why You Should Read This Tutorial
What Is Success-Driven Development?
Environment Setup
Value Object Concepts
01-basic-divide
Basic Division
02-defensive-programming
Defensive Programming
03-functional-result
Functional Result Types
04-always-valid
Always-Valid Types
05-operator-overloading
Operator Overloading
06-linq-expression
LINQ Expressions
07-value-equality
Value Equality
08-value-comparability
Value Comparability
09-create-validate-separation
Create/Validate Separation
10-validated-value-creation
Validated Value Object Creation
11-valueobject-framework
ValueObject Framework
12-type-safe-enums
Type-Safe Enumerations
13-error-code
Structured Error Codes
14-error-code-fluent
DomainError Helper
15-validation-fluent
Validate Fluent API
16-architecture-test
Architecture Tests
Validation Patterns
01-bind-sequential-validation
Bind Sequential Validation
02-apply-parallel-validation
Apply Parallel Validation
03-apply-bind-combined-validation
Apply+Bind Combined Validation
04-apply-internal-bind-validation
Apply with Internal Bind Validation
05-bind-internal-apply-validation
Bind with Internal Apply Validation
06-contextual-validation
Contextual Validation
Value Object Patterns
01-simplevalueobject
Simple Value Object
02-comparablesimplevalueobject
Comparable Simple Value Object
03-valueobject-primitive
Value Object
04-comparablevalueobject-primitive
Comparable Value Object
05-valueobject-composite
Composite Value Object
06-comparablevalueobject-composite
Comparable Composite Value Object
07-typesafeenum
Type-Safe Enumeration Value Object
08-architecture-test
Value Object Architecture Test
09-unionvalueobject
UnionValueObject
Practical Guide
01-functorium-framework
Functorium Framework Integration
FunctoriumFramework
Functorium Framework Integration
02-orm-integration
ORM Integration Patterns
OrmIntegration
ORM Integration Patterns
03-cqrs-integration
CQRS and value object Integration
CqrsIntegration
CQRS and Value Object Integration
04-testing-strategies
value object Testing Strategies
TestingStrategies
Testing Strategies
Domain Examples
01-ecommerce-domain
E-Commerce Domain
EcommerceDomain
E-commerce Domain
02-finance-domain
Finance Domain
FinanceDomain
Finance Domain
03-user-management-domain
User Management Domain
UserManagementDomain
User Management Domain Value Objects
04-scheduling-domain
Scheduling/Reservation Domain
SchedulingDomain
Scheduling Domain Value Objects
Appendix
LanguageExt Key Type Reference
Framework Type Selection Guide
Glossary
References
FAQ
Source Generator Observability
Source Generator Observability
Introduction
What is Source Generator
02-hello-world-generator
Hello World Generator
Why Source Generator
04-reflection-vs-sourcegen
Reflection vs Source Generator
Project Overview
Fundamentals
Development Environment Setup
02-data-models
Project Structure
03-debugging-setup
Debugging Setup
04-roslyn-architecture
Roslyn Architecture
05-syntax-api
Syntax API
06-semantic-api
Semantic API
07-symbol-types
Symbol Type
Core Concepts
01-iincrementalgenerator
IIncrementalGenerator
02-provider-pattern
Provider Pattern
03-forattribute
ForAttributeWithMetadataName
04-incremental-caching
Incremental Caching
05-inamedtypesymbol
INamedTypeSymbol
06-imethodsymbol
IMethodSymbol
07-symboldisplayformat
SymbolDisplayFormat
08-type-extraction
Type Extraction
09-stringbuilder-pattern
StringBuilder Pattern
10-template-design
Template Design
11-namespace-handling
Namespace Handling
12-deterministic-output
Deterministic Output
Advanced
01-constructor-handling
Constructor Handling
02-generic-types
Generic Type Handling
03-collection-types
Collection Type Handling
04-loggermessage-limits
LoggerMessage.Define Limits
05-unit-testing-setup
Unit Test Setup
06-verify-snapshot-testing
Verify Snapshot Test
07-test-scenarios
Test Scenario
Cookbook
01-development-workflow
Development Workflow
02-entity-id-generator
Entity ID Generator
03-efcore-value-converter
Value Converter Generator
04-validation-generator
Validation Generator
05-custom-generator-template
Custom Generator Template
Conclusion
Summary
Next Steps
Appendix
Development Environment
API Reference
Test Scenario Catalog
Troubleshooting
Use Case Pipeline Constraints
Use-Case Pipeline Constraints
Introduction
Why Type-Safe Pipelines
Prerequisites and Setup
Architecture Overview
Generic Variance Foundations
01-covariance
Covariance (out)
02-contravariance
Contravariance (in)
03-invariance-and-constraints
Invariance and Constraints
04-interface-segregation-and-variance
Interface Segregation and Variance
Problem Definition
01-mediator-pipeline-structure
Mediator Pipeline Structure
02-fin-direct-limitation
Limitations of Using Fin Directly
03-ifinresponse-wrapper-limitation
IFinResponse Wrapper Limitations
Pipeline Requirements Summary
Response Interface Hierarchy
01-ifinresponse-marker
IFinResponse Non-Generic Marker
02-ifinresponse-covariant
IFinResponse Covariant Interface
03-ifinresponsefactory-crtp
IFinResponseFactory CRTP
04-ifinresponsewitherror
IFinResponseWithError
05-finresponse-discriminated-union
FinResponse DU
Pipeline Constraint Patterns
01-create-only-constraint
Create-Only Constraint
02-read-create-constraint
Read+Create Constraint
03-transaction-caching-pipeline
Transaction/Caching
04-fin-to-finresponse-bridge
Fin to FinResponse Bridge
Practical Use Case Examples
01-command-usecase-example
Command Usecase Example
02-query-usecase-example
Query Usecase Example
03-full-pipeline-integration
Full Pipeline Integration
Appendix
IFinResponse Hierarchy Reference
Constraints vs Alternatives
ROP Reference
Glossary
References
Architecture Rules Testing
Architecture Rule Tests
Introduction
Why Architecture Testing
Introducing ArchUnitNET
Environment Setup
Class Validator Basics
ClassValidator Basics
01-first-architecture-test
First Architecture Test
02-visibility-and-modifiers
Visibility and Modifiers
03-naming-rules
Naming Rules
04-inheritance-and-interface
Inheritance and Interfaces
Method & Property Validation
Method and Property Validation
01-method-validation
Method Validation
02-return-type-validation
Return Type Validation
03-parameter-validation
Parameter Validation
04-property-and-field-validation
Property and Field Validation
Advanced Validation
01-immutability-rule
Immutability Rules
02-nested-class-validation
Nested Class Validation
03-interface-validation
Interface Validation
04-custom-rules
Custom Rules
Real-World Patterns
Real-World Patterns
01-domain-layer-rules
Domain Layer Rules
02-application-layer-rules
Application Layer Rules
03-adapter-layer-rules
Adapter Layer Rules
04-layer-dependency-rules
Layer Dependency Rules
05-architecture-test-suites
Architecture Test Suites
Conclusion
Best Practices
Next Steps
Appendix
API Reference
ArchUnitNET Cheat Sheet
FAQ
CQRS Repository Pattern
CQRS Repository Pattern
Introduction
Why CQRS
Environment Setup
CQRS Pattern Overview
Domain Entity Foundations
01-entity-and-identity
Entity and Identity
02-aggregate-root
Aggregate Root
03-domain-events
Domain Events
04-entity-interfaces
Entity Interfaces
Command Repository
01-repository-interface
Repository Interface
02-inmemory-repository
InMemory Repository
03-efcore-repository
EF Core Repository
04-unit-of-work
Unit of Work
Query Patterns
01-queryport-interface
IQueryPort Interface
02-dto-separation
DTO Separation
03-pagination-and-sorting
Pagination and Sorting
04-inmemory-query-adapter
InMemory Query Adapter
05-dapper-query-adapter
Dapper Query Adapter
CQRS Use Case Integration
01-command-usecase
Command Usecase
02-query-usecase
Query Usecase
03-fint-to-finresponse
From FinT to FinResponse
04-domain-event-flow
Domain Event Flow
05-transaction-pipeline
Transaction Pipeline
Domain Examples
01-ecommerce-order-management
E-commerce Order Management
02-customer-management
Customer Management
03-inventory-management
Inventory Management
04-catalog-search
Catalog Search
Appendix
CQRS vs Traditional CRUD
Repository vs Query Selection
FinT/FinResponse Reference
CQRS Anti-Patterns
Glossary
References
Release Notes Automation
Release Note Automation
Introduction
Why Release Notes
Automation System Overview
Project Structure Introduction
Setup
.NET 10 Environment Setup
Introduction to Claude Code
Git Basics
Claude Commands
Custom Commands
Command Syntax
Analyzing release-note.md
Introduction to commit.md
Workflow
Workflow Overview
Environment Verification and Preparation
Data Collection
Commit Analysis and Feature Extraction
Writing Release Notes
Validation
Implementation
File-Based Apps
System.CommandLine Package
Spectre.Console Package
AnalyzeAllComponents
ExtractApiChanges
ApiGenerator
TEMPLATE.md Structure
component-priority.json
Output File Formats
Hands-On
Creating Your First Release Note
Writing Your Own Script
Troubleshooting Guide
Quick Reference
Appendix
Glossary
API Reference
References
Specification Pattern
Specification Pattern
Introduction
Why the Specification Pattern
Environment Setup
Specification Pattern Overview
Specification Basics
01-first-specification
First Specification
02-composition
Specification Composition
03-operators
Operator Overloading
04-all-identity
All Identity Element
Expression Specification
01-expression-introduction
Expression Tree Basics
02-expressionspecification-class
ExpressionSpecification Class
03-valueobject-primitive-conversion
Primitive Conversion
04-expression-resolver
Expression Resolver
Repository Integration
01-repository-with-specification
Specification-Based Repository
02-inmemory-implementation
InMemory Implementation
03-propertymap
PropertyMap
04-efcore-implementation
EF Core Implementation
Real-World Patterns
01-usecase-patterns
Usecase Patterns
02-dynamic-filter-builder
Dynamic Filter Builder
03-testing-strategies
Testing Strategies
04-architecture-rules
Architecture Rules
Domain Examples
01-ecommerce-product-filtering
E-Commerce Product Filtering
02-customer-management
Customer Management
Appendix
Specification vs Alternatives
Anti-Patterns
Glossary
References
GitHub
Select theme
Dark
Light
Auto
Select language
English
한국어
References