DotNetCommons is a comprehensive suite of utility libraries for .NET, designed to streamline common programming tasks and extend the standard library with powerful, reusable components.
The solution is divided into several specialized modules:
- DotNetCommons: The core library containing fundamental utilities, extension methods, and specialized data structures.
- DotNetCommons.EF: Extensions and patterns for Entity Framework Core, including CRUD services and partial update (patching) support.
- DotNetCommons.Web: Helpers for ASP.NET Core, including HTTP context extensions and specialized action attributes.
- DotNetCommons.Services: Integration services for external providers, specifically focusing on Email (SMTP, Debug) and SMS (Spirius, Debug).
- DotNetCommons.WinForms: A collection of Windows Forms controls, extensions, and Win32 API wrappers.
- DotNetCommons.PlaywrightTesting: Utilities for building robust automated UI tests using Playwright.
Extensive set of extensions for common .NET types:
- Strings: Case conversion, sub-item extraction, and advanced manipulation.
- Collections: Enhanced LINQ-like operations and collection helpers.
- DateTime/DateOnly: Period calculations, business day logic, and formatting.
- IO: Simplified file and stream operations.
- Grid: A flexible 2D grid structure.
- CircularBuffer: Efficient fixed-size buffer.
- DrawList: Specialized list for drawing/selection logic.
- Holiday Calculation: Built-in support for Swedish and US holidays, with extensible logic for religious and relative holidays.
- DateRange: Manage and compare periods of time easily.
- Aho-Corasick: High-performance multi-pattern string searching.
- Shunting-Yard & Tokenizer: Tools for building expression parsers.
- Wildcards: Support for file-style wildcard matching.
- FixedWidth: Tools for handling fixed-width text formats.
- Check Digits: Implementations of Luhn and ABA check digit algorithms.
- Roman Numerals: Conversion to and from Roman numeral strings.
- JiwiConverter: Specialized numeric encoding.
- IFileAccessor: An abstraction layer for file systems, allowing easy switching between physical storage and in-memory mocks for testing.
DotNetCommons is built for .NET 8.0 and later. To use it in your project, add the reference to the specific module you need.
dotnet add package DotNetCommonsThis project is licensed under the MIT License - see the LICENSE file for details.