This is a broad collection of utility libraries that I have written over the years.
It includes utilities for a wide variety of tasks, including:
- Logging
- Configuration
- Memory management
- Communication (email)
- Logical operations
- Testing
- WinForms visual tree analysis and asynchronous Forms
- Date and time manipulation and operations, with time zone support and proper handling of daylight savings time in date-time operations
- Reflection
- Object creation
- Range operations
- String manipulation
- Exception handling
- Object stringification
Please see the individual Features sections in each library for a detailed description of the features available in that library.
Generally:
- Common Utilities
- Date-time manipulation via Dependency Injection
- Polymorphism helpers
- Date-time helpers
- Enumeration helpers
- Directory IO helpers
- Logical helpers
- String helpers
- Core Utilities
- Logging, with APIs similar to log4j and asynchronous logging
- Configuration
- Communication (email)
- Dependency Injection
- Memory management - properly destroy objects
- Date and Time Utilities
- Date and time calculator operations
- Time zone operations
- A ZonedDateTime type that handles time zone and daylight savings time gracefully and properly
- Dynamic Runtime Utilities
- Assembly Reflection
- Object creation (factory pattern implementation)
- Dependency Injection
- Miscellaneous Utilities
- String utility functions
- Generic and arbitrary ordered Ranges
- Bit order reversal
- Exception handling
- Test Utilities
- Test set up and teardown helpers
- Test configuration helpers
- DI-based date-time provider for testing time-based code with arbitrary date and time values
- Reflection helpers that are more invasive for testing
- Visual Tree Utilities
- WinForms visual tree analysis
- Asynchronous Forms
You can install each library individually via the release packages, or via the HSF NuGet feed.
Please see the individual Usage sections in each library for details on how to use each library and what each library is for.
You can build the HSF Standard Library from source using Visual Studio 2019 or newer. I have not tested building it for Mono, this is a goal for the future of the project.
For the post-builds to run, you need to import the HSFPowerShellCodeSigning certificate in the sec directory.
All tests are in the UtilityTest project and a few Windows-specific tests (for VisualUtils which is WinForms specific, and is a Windows-only technology) in UtilityTestWindows.
There are a few environment variables that are used across the HSF Standard Library. If something is configured in a configuration file and in an environment variable, the environment variable takes precedence.
There are a few environment variables that are used in the CoreUtilities library.
There are a few environment variables that are used for zero-configuration default notifications, or to override the values in a configuration file. Check the README for that project for details.
There are a few environment variables that are used for zero-configuration
default notification through QuickNotify.
There is no need to pass one or more RelayDefinition
s to ErrorNotify
.
Check the README for that project for details.