Next Steps
Congratulations on getting started with JD.Domain! This guide helps you plan your learning journey based on your workflow and goals.
Learning Paths
Choose your learning path based on the workflow you selected:
Path 1: Code-First Development
For developers building new applications with domain-driven design:
Foundation (1-2 hours)
- ✅ Quick Start - You've completed this!
- 📖 Domain Modeling Tutorial - Learn the modeling DSL
- 📖 Business Rules Tutorial - Define invariants, validators, and policies
Integration (2-3 hours)
- 📖 EF Core Integration - Apply configurations to DbContext
- 📖 ASP.NET Core Integration - Add middleware and endpoint filters
Advanced (3-4 hours)
- 📖 Source Generators - Generate rich domain types
- 📖 Version Management - Track domain evolution with snapshots
Total Time: 6-9 hours
Next: Code-First Walkthrough
Path 2: Database-First Development
For developers working with existing databases:
Foundation (1-2 hours)
- ✅ Quick Start - You've completed this!
- 📖 Business Rules Tutorial - Add rules to existing entities
- 📖 Database-First Walkthrough - Complete example with scaffolded entities
Integration (2-3 hours)
- 📖 ASP.NET Core Integration - Validate API requests
- 📖 Source Generators - Generate rich wrappers for EF entities
Advanced (2-3 hours)
- 📖 Hybrid Workflow - Mix code-first and database-first
- 📖 Version Management - Track schema evolution
Total Time: 5-8 hours
Next: Database-First Walkthrough
Path 3: Hybrid/Migration
For teams migrating from anemic models or legacy systems:
Foundation (2-3 hours)
- ✅ Quick Start - You've completed this!
- 📖 Database-First Walkthrough - Start with existing database
- 📖 Business Rules Tutorial - Add rules to legacy code
Version Management (3-4 hours)
- 📖 Snapshot and Diff - Create snapshots of current state
- 📖 Hybrid Workflow - Mix old and new approaches
- 📖 Migration from Anemic Models - Gradual migration strategy
Modernization (3-4 hours)
- 📖 Domain Modeling Tutorial - Rebuild critical domains in DSL
- 📖 Source Generators - Generate construction-safe types
Total Time: 8-11 hours
Next: Hybrid Workflow Tutorial
Topic-Based Learning
Prefer to learn specific topics? Browse by feature:
Domain Modeling
Learn how to define entities, value objects, and enums:
- Define Entities - Create entity definitions
- Define Value Objects - Model value objects
- Define Enums - Create enumeration types
- Domain Modeling Concepts - Deep dive into DSL design
Time: 2-3 hours
Business Rules
Learn how to create and compose rules:
- Create Invariants - Always-true rules
- Create Validators - Context-dependent validation
- Create Policies - Authorization and business policies
- Compose Rules - Combine multiple rules
- Rule System Concepts - Deep dive into rule engine
Time: 3-4 hours
EF Core Integration
Learn how to integrate with Entity Framework Core:
- Apply to ModelBuilder - EF Core integration
- Configure Keys - Primary and composite keys
- Configure Indexes - Index creation
- Configure Relationships - Foreign keys and navigation
- EF Core Integration Tutorial - Complete walkthrough
Time: 2-3 hours
ASP.NET Core Integration
Learn how to validate requests in web APIs:
- Validate in ASP.NET - Middleware and filters
- ASP.NET Core Tutorial - Complete walkthrough
- Validation Errors Concept - Error model deep dive
Time: 2-3 hours
Source Generators
Learn how to generate code from domain definitions:
- Generate FluentValidation - Validator generation
- Generate Domain Types - Rich type generation
- Source Generators Tutorial - Complete walkthrough
- Generator Architecture - Deep dive
Time: 2-3 hours
Version Management
Learn how to track domain evolution:
- Create Snapshots - Snapshot creation
- Compare Snapshots - Diff comparison
- Detect Breaking Changes - Change classification
- Use CLI Tools - Command-line tools
- Snapshot Format Concept - Deep dive
Time: 2-3 hours
Hands-On Practice
Sample Applications
Explore working examples in the repository:
-
- Complete code-first workflow
- Domain modeling with DSL
- EF Core integration
- ASP.NET Core validation
-
- Scaffolded EF entities
- Added business rules
- Rich domain type generation
- Runtime validation
-
- Mixed code-first and database-first
- Snapshot creation and comparison
- Migration planning
- Version tracking
Build Your Own Project
Apply what you've learned to your own project:
- Start Small - Pick one entity or aggregate
- Add Rules - Define basic invariants
- Validate - Test runtime validation
- Expand - Add more entities and rules
- Generate - Try source generators
- Integrate - Add ASP.NET Core middleware
Reference Materials
Keep these handy as you develop:
Essential Documentation
- API Reference - Complete API documentation
- Package Matrix - Package comparison table
- CLI Commands Reference - Command-line tool usage
- Error Codes - Error catalog
Conceptual Documentation
- Architecture Overview - System design
- Design Principles - Core philosophy
- Domain Manifest - Central model
- Result Monad - Result
pattern
Advanced Topics
- Performance Optimization - Tuning and optimization
- Telemetry Integration - OpenTelemetry support
- Custom Generators - Build your own
- Integration Patterns - Framework integration
Common Next Steps
Based on where you are in your journey:
If You Just Finished Quick Start
Recommended:
- Choose your workflow: Choose Your Workflow
- Follow the appropriate tutorial
- Explore sample applications
If You're Evaluating JD.Domain
Recommended:
- Review Architecture Overview
- Check Design Principles
- Compare with Migration from FluentValidation
If You're Ready to Build
Recommended:
- Follow workflow-specific tutorial
- Reference How-To Guides
- Use API Reference
If You're Migrating
Recommended:
Skill Level Roadmap
Beginner (0-10 hours)
Goals:
- Understand opt-in architecture
- Define simple business rules
- Validate entities at runtime
- Integrate with EF Core or ASP.NET Core
Resources:
- Getting Started guides (this section)
- Basic tutorials
- Simple how-to guides
Intermediate (10-30 hours)
Goals:
- Model complex domains with DSL
- Use source generators effectively
- Track domain evolution with snapshots
- Compose and reuse rule sets
Resources:
- Advanced tutorials
- Conceptual documentation
- Sample applications
- Reference documentation
Advanced (30+ hours)
Goals:
- Build custom generators
- Optimize for high-performance scenarios
- Integrate with custom frameworks
- Contribute to JD.Domain
Resources:
- Advanced topics
- Source code exploration
- Contributing guidelines
- Architecture deep dives
Getting Help
Documentation
- Search - Use the search feature in the documentation site
- API Reference - Browse complete API documentation
- Samples - Check the working examples
Community
- GitHub Issues - Ask questions or report bugs
- Discussions - Share ideas and get feedback
Best Practices
- Start simple - Don't try to use every feature at once
- Follow examples - Use sample applications as templates
- Ask questions - Don't hesitate to open a GitHub issue
- Share feedback - Help improve JD.Domain
Summary
You've completed the Getting Started section! Here's what you've learned:
✅ What JD.Domain is and why you should use it ✅ How to install required packages ✅ How to build your first domain model ✅ How to choose the right workflow for your project
Your next steps depend on your workflow:
- Code-First: Code-First Walkthrough
- Database-First: Database-First Walkthrough
- Hybrid: Hybrid Workflow Tutorial
Additional Resources
Keep Learning
- 📚 Tutorials - Step-by-step guides
- 🎯 How-To Guides - Task-oriented documentation
- 🧠 Concepts - Deep dives into architecture
- 📖 Reference - Complete reference material
Stay Updated
- 📋 Changelog - Version history
- 🗺️ Roadmap - Future plans
- 🤝 Contributing - How to contribute
Happy coding with JD.Domain!