Next Steps
Youβve learned the basics of EasyMessages! Hereβs your roadmap to mastering the library and building production-ready applications.
Learning Path
Level 1: Foundations (You are here!)
[β] Completed:
- Installation - Set up EasyMessages
- Your First Message - Basic usage
- Console vs Web Applications - Package differences
Time invested: ~15 minutes
Level 2: Core Concepts (30 minutes)
Understand how EasyMessages works under the hood:
- Messages and Message Types
- Message structure and properties
- Built-in message types (Success, Error, Warning, Info)
- Message categories (Auth, CRUD, Validation, etc.)
- HTTP status code mapping
- Message Registry and Stores
- How messages are stored and retrieved
- Embedded vs file-based stores
- Loading custom messages
- Store priority and overrides
- Facades (Msg.Auth, Msg.Crud, etc.)
- What facades are and why they exist
- Available facade categories
- Creating messages with facades
- Facade method signatures
- Formatters and Outputs
- Built-in formatters (JSON, XML, Console, PlainText)
- Formatter configuration options
- Output format comparison
- When to use each format
- Interceptors
- What interceptors do
- Built-in interceptors
- Interceptor execution pipeline
- When to use interceptors
Why this matters: Understanding these concepts will help you use EasyMessages effectively and troubleshoot issues.
Level 3: ASP.NET Core Integration (45 minutes)
For Web API Developers:
- ASP.NET Core Overview
- AspNetCore package features
- Service registration
- Dependency injection integration
- Setup and Configuration
- Basic setup in Program.cs
- Adding to Controllers
- Minimal API setup
- IOptions Configuration Pattern
- What is IOptions?
- Configuration structure
- Binding from appsettings.json
- Environment-specific configuration
- Configuration Guide (Comprehensive)
- Complete configuration reference
- All options explained
- Best practices
- Validation rules
- Configuration Presets
- Development preset
- Production preset
- Testing preset
- Staging preset
- Api preset
- When to use each
- API Response Patterns
- Standard API responses
- Error handling patterns
- Validation result patterns
- Success response patterns
- Logging Integration
- Automatic logging
- Log levels
- Structured logging
- Log filtering
Why this matters: These features make EasyMessages powerful in web APIs with minimal configuration.
Level 4: Practical How-To Guides (1 hour)
Learn specific tasks step-by-step:
Customization
Configuration
- Configure for Different Environments
- Use Configuration Presets
- Configure via appsettings.json
- Configure via Environment Variables
Integration
Migration
Why this matters: These guides solve common real-world problems youβll encounter.
Note: Level 5: Real-World Examples (1.5 hours)
See complete, working applications:
- Console Application
- Command-line tool with colored output
- File processing
- Error handling
- Background Job Processing
- Worker service
- Progress reporting
- Scheduled tasks
- File Processing Pipeline
- CSV import
- Validation
- Batch processing
- REST API with Validation
- Complete CRUD API
- Model validation
- Error responses
- Minimal API Example
- Minimal API endpoints
- Simple setup
- Quick prototyping
- Data Import with Progress
- Large dataset import
- Progress tracking
- Error recovery
- Multi-Format Output
- JSON, XML, Console outputs
- Format selection
- Custom formatting
Why this matters: Learn from complete, tested examples you can adapt to your needs.
Level 6: API Reference (As Needed)
Detailed reference documentation:
- Message Codes Reference
- All 100+ built-in message codes
- Categorized list
- Usage examples
- Fluent API Methods
- All chainable methods
- Method signatures
- Return types
- Extension Methods
.ToJson(),.ToXml(), etc..ToJsonObject()(for API responses).Log(ILogger)
- Interfaces
IMessageIMessageFormatterIMessageInterceptorIMessageStore
- Configuration Options
- Complete options reference
- All properties
- Default values
- Validation rules
- Built-in Formatters
- JSON Formatter
- XML Formatter
- Console Formatter
- PlainText Formatter
Why this matters: Quick lookup when you need specific details.
Level 7: Advanced Topics (2+ hours)
For power users and library contributors:
- Architecture Deep Dive
- System architecture
- Component relationships
- Design patterns used
- Extension points
- Performance Considerations & Benchmarks
- Benchmark results
- Performance optimizations
- Memory usage
- Best practices
- Performance Optimizations (.NET 5-10)
- Span
and Memory - ArrayPool
- ValueStringBuilder
- Zero-allocation techniques
- Span
- Thread Safety
- Thread-safe components
- Concurrent usage
- Best practices
- Testing Strategies
- Unit testing with EasyMessages
- Integration testing
- Mocking and test doubles
- Configuration Testing Patterns
- Testing IOptions configuration
- Configuration validation tests
- Preset testing
- Troubleshooting
- Common issues
- Debugging tips
- Performance problems
- Best Practices
- Code organization
- Naming conventions
- Error handling
- Production readiness
Why this matters: Master EasyMessages and contribute improvements.
π Level 8: Migration Guides (As Needed)
Switching from other approaches:
- From Manual Message Handling
- From ProblemDetails
- From Legacy MessageConfiguration
- From Other Libraries
Why this matters: Smooth transition to EasyMessages with minimal disruption.
Recommended Learning Paths
Path A: Console Developer
Goal: Build command-line tools and background workers
- [β] Getting Started (completed)
- β Messages and Message Types
- β Formatters and Outputs
- β Create Custom Messages
- β Console Application Example
- β Background Job Processing Example
Time: ~1.5 hours
Path B: Web API Developer
Goal: Build REST APIs with proper error handling
- [β] Getting Started (completed)
- β Messages and Message Types
- β ASP.NET Core Overview
- β Configuration Guide
- β Configuration Presets
- β API Response Patterns
- β REST API with Validation Example
Time: ~2 hours
Path C: Library Author
Goal: Integrate EasyMessages into your library
- [β] Getting Started (completed)
- β Messages and Message Types
- β Message Registry and Stores
- β Create Custom Messages
- β Build Custom Formatters
- β Architecture Deep Dive
Time: ~2.5 hours
Path D: Team Lead / Architect
Goal: Evaluate EasyMessages for team adoption
- [β] Getting Started (completed)
- β Architecture Deep Dive
- β Performance Considerations & Benchmarks
- β Best Practices
- β Configuration Guide
- β REST API with Validation Example
Time: ~2 hours
Quick Reference Card
Bookmark this for quick lookup:
// Most Common Messages
Msg.Auth.LoginFailed()
Msg.Crud.Created("Entity")
Msg.Crud.NotFound("Entity")
Msg.Validation.Failed()
Msg.System.Error()
// Most Common Methods
.WithData(object)
.WithMetadata("key", value)
.WithCorrelationId(string)
.ToConsole(useColors: true) // Console apps
.ToJson() // All apps
.ToJsonObject() // For API responses
.Log(_logger) // All apps
// Configuration (appsettings.json)
{
"EasyMessages": {
"Logging": { "AutoLog": true },
"Storage": { "CustomMessagesPath": "custom.json" }
}
}
// API Response (ASP.NET Core controllers)
var msg = Msg.Crud.Created("User").WithData(user);
return StatusCode(msg.HttpStatusCode ?? 200, msg.ToJsonObject());
// Minimal API
var msg = Msg.Crud.Retrieved("User").WithData(user);
return Results.Json(msg.ToJsonObject(), statusCode: msg.HttpStatusCode ?? 200);
Getting Help
Documentation
- Full Wiki Documentation
- π Use the search function (top right) to find specific topics
Community
- π¬ GitHub Discussions - Ask questions, share ideas
- Report Issues - Bug reports and feature requests
Resources
Stay Updated
Releases
- Stable (Current): v1.0.0
Whatβs Coming
- More built-in messages
- Additional integrations (Serilog, FluentValidation)
Subscribe
- Star the repo to get notified
- Watch releases
- Follow discussions
Your Feedback Matters!
Your feedback is invaluable:
- Note: What features do you need?
- What bugs have you encountered?
- What documentation is unclear?
- What would make EasyMessages better?
Share your thoughts: GitHub Discussions
Start Building!
Choose your path and dive in:
- Console Developer? β Messages and Message Types
- Web API Developer? β ASP.NET Core Overview
- Need Examples? β Examples Section
- Want Deep Knowledge? β Architecture Deep Dive
Happy coding with EasyMessages!