tag:github.com,2008:https://github.com/CodeShayk/TurboMapper/releases Release notes from TurboMapper 2025-10-11T23:23:56Z tag:github.com,2008:Repository/1067413387/v1.2.0 2025-10-11T23:24:16Z v1.2.0 <h1>Release 1.2.0 - Enhanced Core &amp; Mapping Features</h1> <h2>Version: 1.2.0 (Minor Release)</h2> <p><strong>Release Date</strong>: October 2025<br> <strong>Type</strong>: Minor Release (backward compatible new features and improvements)</p> <h2>Enhanced Custom Conversion Feature in Mapping Module:</h2> <ul> <li><strong>New Functionality</strong>: Support for custom type converter registration system directly in MappingModule configuration</li> <li><strong>API Enhancement</strong>: Added <code>RegisterConverter</code> method to MappingModule allowing registration of type conversion functions</li> <li><strong>Module Integration</strong>: MappingModule now supports converter function registration for type mappings</li> <li><strong>Usage Example</strong>: <code>RegisterConverter&lt;string, Guid&gt;(str =&gt; Guid.Parse(str))</code> within module constructor</li> </ul> <h2>Release Notes:</h2> <ul> <li><strong>Performance Improvements</strong>: Significant performance enhancements through compiled expression trees and metadata caching, with expected 2x+ improvement in mapping speed</li> <li><strong>Code Quality</strong>: Consolidated duplicate code in GetMemberPath methods and simplified complex mapping methods</li> <li><strong>Internal Optimizations</strong>: Replaced Activator.CreateInstance with optimized factory delegates and added configuration caching for faster lookup</li> <li><strong>New Feature</strong>: Collection mapping support for IEnumerable, IList, and arrays - the Map method now returns IEnumerable when mapping collections, replacing the separate MapList method</li> <li><strong>New Feature</strong>: Ability to ignore properties during mapping using the Ignore() method</li> <li><strong>New Feature</strong>: Custom type converter registration system for handling complex type conversions through MappingModule</li> <li><strong>Enhancement</strong>: Enhanced nullable type handling with improved conversion logic</li> <li><strong>Improvement</strong>: Much more descriptive error messages for debugging mapping issues</li> <li><strong>New Feature</strong>: Conditional mapping allowing properties to be mapped based on conditions using When() method</li> <li><strong>Enhanced Feature</strong>: Transformation functions during mapping using MapWith() method with integrated custom conversion support in MappingModule</li> <li><strong>Improvement</strong>: More comprehensive built-in type conversions including DateTime, TimeSpan, and decimal/float conversions</li> <li><strong>Improvement</strong>: Configuration validation returns ValidationResult object with IsValid flag and Errors collection for better error reporting</li> </ul> <h2>Backward Compatibility:</h2> <ul> <li>✅ Fully backward compatible</li> <li>No breaking changes to public APIs</li> <li>All existing mapping configurations will continue to work</li> <li>Performance improvements are transparent to users</li> <li>New features are opt-in</li> </ul> <h2>Impact:</h2> <ul> <li><strong>Performance</strong>: Significant improvement in mapping speed</li> <li><strong>Memory</strong>: More efficient memory usage through caching</li> <li><strong>Functionality</strong>: Added support for mapping collections and complex type conversions</li> <li><strong>Debuggability</strong>: Much better error messages help identify mapping issues quickly</li> <li><strong>Flexibility</strong>: More control over mapping process with ignore, custom converters, conditions and transformations</li> <li><strong>Reliability</strong>: Early detection of configuration issues</li> <li><strong>Coverage</strong>: Better handling of various data types</li> </ul> Nshai tag:github.com,2008:Repository/1067413387/v1.0.0 2025-10-09T21:51:51Z v1.0.0 <h2>TurboMapper v1.0.0 - Release Notes</h2> <h3>Overview</h3> <p>TurboMapper is a lightweight, high-performance object mapping library for .NET that provides an intuitive alternative to AutoMapper with support for both shallow and deep object mapping.</p> <h3>Key Features</h3> <h4>Core Mapping Capabilities</h4> <ul> <li>Automatic Name-Based Mapping: Maps properties with matching names automatically between source and target objects</li> <li>Deep/Nested Object Mapping: Recursively maps nested objects and complex hierarchies</li> <li>Custom Property Mapping: Explicit configuration for mapping properties with different names or structures</li> <li>Type Conversion: Automatic conversion between compatible types (int to string, string to enum, etc.)</li> </ul> <h4>Configuration Options</h4> <ul> <li>Fluent API: Configure mappings using an intuitive fluent interface with ForMember() expressions</li> <li>Mapping Modules: Organize mapping configurations in reusable MappingModule&lt;TSource, TTarget&gt; classes</li> <li>Default Mapping Control: Option to enable/disable automatic name-based mapping alongside custom configurations</li> <li>Property Flattening: Map nested properties to flat structures (e.g., Address.City → City)</li> <li>Property Nesting: Map flat properties into nested object structures</li> </ul> <h4>Dependency Injection Support</h4> <ul> <li>Built-in DI Registration: Simple registration with services.AddTurboMapper()</li> <li>Singleton Lifecycle: Mapper registered as singleton for optimal performance</li> <li>Auto-Discovery: Automatically discovers and registers mapping modules from loaded assemblies</li> </ul> <h4>Platform Support</h4> <ul> <li>.NET 9.0</li> <li>.NET Standard 2.0 &amp; 2.1</li> <li>.NET Framework 4.6.2</li> </ul> <h4>Quality &amp; Performance</h4> <ul> <li>Thread-Safe: Safe for concurrent mapping operations</li> <li>High Performance: Optimized for production workloads</li> <li>Comprehensive Testing: Extensive unit and integration test coverage</li> <li>CI/CD Pipeline: Automated builds, testing, linting, and CodeQL security analysis</li> </ul> <h4>Technical Implementation</h4> <ul> <li>Reflection-based property mapping with caching</li> <li>Support for null value handling at all levels</li> <li>Graceful handling of missing or incompatible properties</li> <li>Read-only property detection and skipping</li> </ul> <h4>Package Information</h4> <ul> <li>License: MIT</li> <li>NuGet Package: TurboMapper</li> <li>Repository: GitHub (CodeShayk/TurboMapper)</li> </ul> NinjaRocks