tag:github.com,2008:https://github.com/CodeShayk/TurboMapper/releasesRelease notes from TurboMapper2025-10-11T23:23:56Ztag:github.com,2008:Repository/1067413387/v1.2.02025-10-11T23:24:16Zv1.2.0<h1>Release 1.2.0 - Enhanced Core & 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<string, Guid>(str => 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>Nshaitag:github.com,2008:Repository/1067413387/v1.0.02025-10-09T21:51:51Zv1.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<TSource, TTarget> 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 & 2.1</li>
<li>.NET Framework 4.6.2</li>
</ul>
<h4>Quality & 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