feat: Extension migration batch with comprehensive API reorganization and compatibility enhancements - #23
Merged
Conversation
marioarce
commented
Jun 3, 2026
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
…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.
- 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.