Skip to content

feat: Extension migration batch with comprehensive API reorganization and compatibility enhancements - #23

Merged
marioarce merged 21 commits into
developfrom
feature/extension-migration-batch-04
Jun 3, 2026
Merged

feat: Extension migration batch with comprehensive API reorganization and compatibility enhancements#23
marioarce merged 21 commits into
developfrom
feature/extension-migration-batch-04

Conversation

@marioarce

Copy link
Copy Markdown
Owner
  • Reorganized AspNetCore extensions into Extensions namespace for better structure
  • Refactored collection extensions with improved API consistency and organization
  • Added new compression utilities for data processing operations
  • Enhanced core collection utilities with DictionaryExtensions, ListExtensions, and NameValueCollectionExtensions
  • Added comprehensive network extensions for cross-framework support in Compatibility package
  • Added HTTP extensions for cross-framework compatibility with HttpRequestBaseExtensions
  • Removed deprecated HttpRequestMessageExtensions from Extensions package
  • Enhanced type system extensions for better reflection support and performance
  • Improved URI extensions for web application development
  • Updated Compatibility package configuration for multi-framework support
  • Added timestamp helper for cross-framework timestamp operations
  • Added media type extension methods for HTTP content handling
  • Fixed string literal compatibility for Base64 operations
  • Added .NET Standard 2.0 compatibility for exception and LINQ operations
  • Enhanced string extensions with .NET 8 and .NET Standard 2.0 regex compatibility
  • Improved AsyncHelper integration for synchronous-over-asynchronous operations
  • Updated all package documentation with recent improvements and usage examples

marioarce added 20 commits June 3, 2026 15:28
…rations

- Add conditional compilation directives for GeneratedRegexAttribute and GeneratedRegex
- Implement helper methods to abstract regex access patterns between frameworks
- Fix ArgumentNullException.ThrowIfNull compatibility for .NET Standard 2.0
- Resolve char to string conversion issues for cross-framework compatibility
- Update Contains method overload usage for .NET Standard 2.0 support
- Replace ArgumentNullException.ThrowIfNull with conditional compilation
- Add traditional null checks for .NET Standard 2.0 compatibility
- Maintain modern exception handling for .NET 5.0 and later
- Update method return types to include nullable annotations
- Replace ArgumentNullException.ThrowIfNull with conditional compilation
- Fix Contains method overload for StringComparison parameter compatibility
- Add traditional null checks for .NET Standard 2.0 framework support
- Maintain modern exception handling patterns for newer frameworks
- Replace char literal with string literal in Contains method
- Resolve cross-framework compilation issues for .NET Standard 2.0
- Maintain Base64 validation functionality across all target frameworks
- Implement MediaTypeHeaderValue parsing and validation extensions
- Add content type detection and comparison utilities
- Support for charset and media type parameter extraction
- Provide helper methods for common media type operations
- Implement Unix timestamp conversion utilities
- Add DateTime to Unix epoch and reverse conversion methods
- Support for milliseconds precision timestamp operations
- Provide consistent timestamp handling across .NET frameworks
- Configure target frameworks for .NET 8.0 and .NET Standard 2.0
- Add package references for cross-framework compatibility
- Update project metadata and build properties
- Ensure proper assembly binding across different .NET versions
- Add query string manipulation and parsing utilities
- Implement URI building and validation helper methods
- Support for relative and absolute URI operations
- Provide consistent URI handling across ASP.NET Core applications
- Add comprehensive type checking and validation utilities
- Implement generic type argument extraction methods
- Support for interface and inheritance hierarchy analysis
- Provide consistent type introspection across different .NET frameworks
- Remove obsolete HTTP request message extension methods
- Clean up redundant functionality now available in core libraries
- Maintain compatibility by preserving functionality in other extension files
- Implement HTTP request and response extension methods
- Add URI building and query string manipulation utilities
- Support for HTTP header operations and content handling
- Provide consistent HTTP functionality across .NET Standard 2.0 and .NET 8.0
- Implement URI and endpoint building utilities
- Add network address validation and parsing methods
- Support for DNS and IP address manipulation
- Provide consistent networking functionality across .NET Standard 2.0 and .NET 8.0
- Implement efficient collection comparison and manipulation methods
- Add thread-safe collection operations and utilities
- Support for collection transformation and aggregation helpers
- Provide consistent collection handling across different .NET frameworks
- Implement GZip and Deflate compression extension methods
- Add stream compression and decompression utilities
- Support for byte array and string compression operations
- Provide efficient data compression across different .NET frameworks
 - Moved IEnumerableExtensions to Collections namespace and renamed to DynamicEnumerableExtensions
 - Renamed Filter method to FilterDynamic for better clarity
 - Renamed Order method to OrderDynamic for better clarity
 - Moved EnumerableExtensions to Collections namespace
 - Updated GetValueOrDefault method to use nullable return type and improved formatting
 - Enhanced DistinctBy method with conditional compilation for .NET 5.0+ compatibility
 - Moved ConfigurationExtensions from Configuration to Extensions namespace
 - Moved ServiceProviderExtensions from Net to Extensions namespace
 - Moved UriExtensions from Net to Extensions namespace
 - Updated GetOptions methods to use nullable return types
 - Improved null argument checking and formatting in ConfigurationExtensions
 - Added Recent Improvements sections to all package README files
 - Updated main README with enhanced architecture descriptions and target frameworks
 - Added legacy support note and improved feature highlights
 - Enhanced documentation for v0.3.0 architectural refactoring and performance improvements
 - Updated package descriptions with better migration path information
 - Deleted AsyncHelper.cs from PowerCSharp.Compatibility.Helpers namespace
 - This helper is now available in the main PowerCSharp.Helpers package for better organization
 - Created AsyncHelper.cs in PowerCSharp.Compatibility.Helpers namespace
 - Provides utilities for safely bridging async operations to sync contexts
 - Uses custom TaskFactory to prevent deadlocks in sync-over-async scenarios
 - Designed for use in synchronous frameworks like MVC filters
 - Includes RunSync method for executing async functions synchronously
 - Updated HttpRequestMessageExtensions to use AsyncHelper.RunSync for safer async-to-sync bridging
 - Replaced direct GetAwaiter().GetResult() call to prevent potential deadlocks
 - Added using statement for PowerCSharp.Compatibility.Helpers namespace
 - Enhanced comment documentation to clarify deadlock prevention approach

This ensures safe sync-over-async execution in the .NET Framework compatibility layer without risking deadlocks.
@marioarce marioarce self-assigned this Jun 3, 2026
 - Updated WebSample.Extensions to use PowerCSharp.Extensions.Collections namespace
 - Updated EnumerableExtensionsTests to use PowerCSharp.Extensions.Collections namespace
 - Added missing using statements for PowerCSharp.Utilities in WebSample
 - Reorganized using statements for better consistency with new namespace structure
@marioarce
marioarce merged commit 5ab5725 into develop Jun 3, 2026
6 checks passed
@github-actions
github-actions Bot deleted the feature/extension-migration-batch-04 branch June 3, 2026 22:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant