This document consolidates the project roadmap, TODO items, and short-term tasks.
Last updated: 2026-02-02
- Patch 4 overloads: new object, type-inferred, collection, in-place (null-skip semantics)
- Remove MapTo from ISimpleMapper, replace with Map in-place overload
- ISimpleMapper: 8 methods (Map 4 + Patch 4)
- Test coverage increased to 92.9% line, 88.8% branch (242 tests)
- CoverageBoostTests.cs: 32 targeted coverage tests
- PatchTests.cs: 11 Patch overload + DI tests
- docs/GUIDE.md: Before/after usage guide with API reference
- Samples restructured: BasicSample → Console, WebApiSample → WebAPI
- Sample code split into feature files (Models, Map, Patch, Configuration, Comparison)
- PATCH endpoints added to both WebAPI controllers
- Consolidated docs: RELEASE.md, TASK.md, DEPLOYMENT.md
- README.md simplified with link to usage guide
- ForMember Condition (conditional mapping)
- ForMember NullSubstitute (null value replacement)
- BeforeMap/AfterMap hooks
- ConstructUsing (custom object construction)
- net10.0 support
- Test coverage 87%
- ISimpleMapper interface
- AddSimpleMapper() DI extension
- MapperConfiguration
- Profile support
- Assembly scanning
- PreserveReferences improvements
- Circular reference handling
- MaxDepth basic implementation
-
ConvertUsing - Full type conversion control
CreateMap<Order, OrderDto>() .ConvertUsing(src => new OrderDto { ... });
-
TypeConverter - Global type converters
Mapper.CreateTypeConverter<string, DateTime>(s => DateTime.Parse(s));
-
Rule-based Ignore/Include
CreateMap<User, UserDto>() .ForAllMembers(opt => opt.Condition((src, dest, srcMember) => srcMember != null));
- HashSet Mapping
- Dictionary Mapping
- Record Type Support (auto-detect init-only, constructor parameter mapping)
- ReadOnlyCollection Support
- Polymorphic Mapping (Include/IncludeBase)
- Configuration Validation API (
AssertConfigurationIsValid()) - Runtime Diagnostics (log levels, EventSource, performance metrics)
- Unmapped Member Detection (
ForAllOtherMembers)
- BenchmarkDotNet Integration (micro-benchmark suite, baseline, CI regression detection)
- Cache Improvements (warm-up API, capacity/expiration policy, metrics)
- Allocation Reduction (streaming collection mapping, Span, pooling)
- SourceLink Integration (source navigation during debugging)
- GitHub Actions CI/CD (automated build/test/pack/release)
- IQueryable Projections (expression trees for EF Core)
- Source Generator (compile-time mapper generation, AOT support)
- Rule-based Naming/Flattening (
Parent.ChildId<->ParentChildId) - Roslyn Analyzer Package (unmapped members, null reference warnings)
- Documentation Site (DocFX/Docusaurus)
- MaxDepth Full Implementation (currently limited enforcement)
- Nullable Reference Types Support (enable
<Nullable>enable</Nullable>) - net9.0 DI Condition Fix (2026-01-11)
- Follow SemVer; provide migration guides for major API changes
- Maintain code coverage targets (>= 90%) - Currently at 92.9%
- Continuously verify multi-target compatibility (netstandard2.0/2.1, net8/9/10)
Before starting work:
- Create an issue to share your intent
- Write related tests
- Verify existing tests pass (
dotnet test) - Maintain code coverage at 90% or higher
PR Checklist:
- Add/modify tests
- Add XML doc comments (public API)
- Update RELEASE.md
- No breaking changes (or documented)