https://github.com/mjfreelancing/alloverit
A suite of libraries aimed at providing a simplified and consistent approach to cross-cutting and functional concerns.
https://github.com/mjfreelancing/alloverit
appsync aspnet-core assertion binary-serialization cryptography dependency-injection entity-framework-core evaluator graphql json keyset-pagination logging mapping named-pipes reactive-ui serilog validation wpf
Last synced: about 2 months ago
JSON representation
A suite of libraries aimed at providing a simplified and consistent approach to cross-cutting and functional concerns.
- Host: GitHub
- URL: https://github.com/mjfreelancing/alloverit
- Owner: mjfreelancing
- License: mit
- Created: 2020-03-14T02:51:27.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-08-17T03:18:59.000Z (about 2 months ago)
- Last Synced: 2025-08-17T10:02:04.309Z (about 2 months ago)
- Topics: appsync, aspnet-core, assertion, binary-serialization, cryptography, dependency-injection, entity-framework-core, evaluator, graphql, json, keyset-pagination, logging, mapping, named-pipes, reactive-ui, serilog, validation, wpf
- Language: C#
- Homepage:
- Size: 40 MB
- Stars: 0
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Overview
**AllOverIt** began as a single nuget package of the same name in 2015. Since then, the library has broadened and deepened in functionality, resulting in a comprehensive set of dedicated nuget packages that encompass a number of different domains.Refer to the [Change Log](./Docs/Change%20Logs/ChangeLog_v8.md) for an overview of what has recently changed.
Refer to the online [Documentation](https://alloverit.mjfreelancing.com) for comprehensive usage information.
A summary for each of the available packages is provided below.
## AllOverIt
This general-purpose package contains a diverse range of classes and utility functions, intended to tackle a wide array of commonly encountered issues.Key areas of concern include threading, tasks, generic caching, event (message) aggregation, expression and reflection utilities, plugin contexts, enriched enums, pipelines, value objects, specifications, and dozens of extensions.

[](https://www.nuget.org/packages/AllOverIt/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt/absoluteLatest/)---
## AllOverIt.AspNetCore
This package provides useful ASP.NET Core utilities such as custom model binding for **AllOverIt** based enriched enum types, and arrays of values in a query string.

[](https://www.nuget.org/packages/AllOverIt.AspNetCore/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.AspNetCore/absoluteLatest/)---
## AllOverIt.Assertion
This package contains a useful collection of pre- and post-condition assertion extension methods, and a fluent-like approach to throwing exceptions based on a given condition or custom predicate.

[](https://www.nuget.org/packages/AllOverIt.Assertion/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Assertion/absoluteLatest/)---
## AllOverIt.Aws.AppSync.Client
This package contains AWS AppSync GraphQL and Subscription clients with support for serialization using Newtonsoft or System.Text, including serialization of **AllOverIt** based enriched enums.

[](https://www.nuget.org/packages/AllOverIt.Aws.AppSync.Client/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Aws.AppSync.Client/absoluteLatest/)---
## AllOverIt.Aws.Cdk.AppSync
This package greatly simplifies the generation of AWS Graphql schemas, including their associated mapping and resolver configuration, using a code-first approach.

[](https://www.nuget.org/packages/AllOverIt.Aws.Cdk.AppSync/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Aws.Cdk.AppSync/absoluteLatest/)---
## AllOverIt.Cryptography
This package provides byte-array and stream-based interfaces for encryption algorithms such as AES, RSA and an RSA-AES hybrid. It also includes useful extension methods that greatly simplifies the encryption and decryption between byte-arrays, streams, plain text and base64 encoded versions of plain text and cipher text.

[](https://www.nuget.org/packages/AllOverIt.Cryptography/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Cryptography/absoluteLatest/)---
## AllOverIt.Csv
Using [CsvHelper](https://joshclose.github.io/CsvHelper) to perform the actual writing of CSV content, this package provides a configuration based serializer that can export data using a model with fixed columns as well as dynamic columns derived from complex or array type properties.

[](https://www.nuget.org/packages/AllOverIt.Csv/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Csv/absoluteLatest/)---
## AllOverIt.DependencyInjection
This package provides useful dependency injection related utilities such as registering and resolving 'named' services, auto service discovery and registration via a service registrar, and service decoration.

[](https://www.nuget.org/packages/AllOverIt.DependencyInjection/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.DependencyInjection/absoluteLatest/)---
## AllOverIt.EntityFrameworkCore
This package provides EntityFramework Core utilities such as a database migration helper and a value converter for **AllOverIt** based enriched enum types.

[](https://www.nuget.org/packages/AllOverIt.EntityFrameworkCore/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.EntityFrameworkCore/absoluteLatest/)---
## AllOverIt.EntityFrameworkCore.Diagrams
In conjunction with [D2](https://d2lang.com/), this package will generate entity relationship diagrams for an EntityFramework Core DbContext.

[](https://www.nuget.org/packages/AllOverIt.EntityFrameworkCore.Diagrams/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.EntityFrameworkCore.Diagrams/absoluteLatest/)---
## AllOverIt.EntityFrameworkCore.Pagination
Using **AllOverIt.Pagination** as the basis for advanced keyset-based pagination, this package provides additional extensions for use with EntityFramework Core.

[](https://www.nuget.org/packages/AllOverIt.EntityFrameworkCore.Pagination/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.EntityFrameworkCore.Pagination/absoluteLatest/)---
## AllOverIt.Evaluator
This package contains a highly-extendable mathematical expression compiler and evaluator that includes constant, mutable, delegate, and lazily evaluated variables, offers implicit and explicit variable lookup, and supports custom arithmetic operators and operations.

[](https://www.nuget.org/packages/AllOverIt.Evaluator/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Evaluator/absoluteLatest/)---
## AllOverIt.Filtering
This package adds comprehensive filtering support to any IQueryable with built-in provision for operations such as `Contains`, `StartsWith`, `EndsWith`, `In`, `NotIn`, `EqualTo`, `NotEqualTo`, `GreaterThan`, `LessThan`, `GreaterThanOrEqual`, and `LessThanOrEqual`.
It's also possible to create a custom predicate based on a Specification and there are options such as ignoring default (null) filter values and parameterizing query inputs that makes it ideal for use with EntityFramework Core.

[](https://www.nuget.org/packages/AllOverIt.Filtering/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Filtering/absoluteLatest/)---
## AllOverIt.Fixture
This package contains a base fixture class with numerous helper methods to assist with scaffolding unit tests. Utilizes [AutoFixture](https://github.com/AutoFixture/AutoFixture) to do most of the hard work.

[](https://www.nuget.org/packages/AllOverIt.Fixture/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Fixture/absoluteLatest/)---
## AllOverIt.Fixture.FakeItEasy
This package extends **AllOverIt.Fixture** to support [FakeItEasy](https://fakeiteasy.github.io/) integration.

[](https://www.nuget.org/packages/AllOverIt.Fixture.FakeItEasy/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Fixture.FakeItEasy/absoluteLatest/)---
## AllOverIt.GenericHost
This package contains generic host helpers and convenience methods for setting up console applications that support dependency injection.

[](https://www.nuget.org/packages/AllOverIt.GenericHost/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.GenericHost/absoluteLatest/)---
## AllOverIt.Logging
This package contains extension methods to provide additional logging functionality.

[](https://www.nuget.org/packages/AllOverIt.Logging/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Logging/absoluteLatest/)## AllOverIt.Logging.Testing
This package contains helper methods that assist with asserting logger calls.

[](https://www.nuget.org/packages/AllOverIt.Logging.Testing/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Logging.Testing/absoluteLatest/)## AllOverIt.Mapping
This package contains an object mapper that is mostly configuration free, but also capable of property exclusion, aliasing, null replacement, value conversion, and deep copying.

[](https://www.nuget.org/packages/AllOverIt.Mapping/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Mapping/absoluteLatest/)---
## AllOverIt.Pagination
An advanced keyset-based pagination package that uses a fluent-style builder to create queries that cater for forward and backward navigation for any given deterministic base query.
Each page of results includes a 'continuation token' for the current, next, and previous page. These tokens can be used at a later time to navigate to the same location within the dataset, thereby somewhat overcoming the inability of random access traditionally associated with keyset-based navigation.

[](https://www.nuget.org/packages/AllOverIt.Pagination/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Pagination/absoluteLatest/)---
## AllOverIt.Pipes
This package provides support for communication over anonymous pipes using [StreamReader](https://learn.microsoft.com/en-us/dotnet/api/system.io.streamreader) and [StreamWriter](https://learn.microsoft.com/en-us/dotnet/api/system.io.streamwriter), and strongly-typed message-based communication over named pipes using a binary serializer.
The named pipes can use the binary serializer from **AllOverIt.Serialization.Binary** or you can create your own.

[](https://www.nuget.org/packages/AllOverIt.Pipes/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Pipes/absoluteLatest/)---
## AllOverIt.Reactive
This package contains utility extensions for use with [System.Reactive](https://github.com/dotnet/reactive).

[](https://www.nuget.org/packages/AllOverIt.Reactive/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Reactive/absoluteLatest/)---
## AllOverIt.ReactiveUI
This package contains utility extensions for use with [ReactiveUI](https://github.com/reactiveui/ReactiveUI).

[](https://www.nuget.org/packages/AllOverIt.ReactiveUI/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.ReactiveUI/absoluteLatest/)---
## AllOverIt.ReactiveUI.Wpf
This package contains utility extensions for use with [ReactiveUI](https://github.com/reactiveui/ReactiveUI) and WPF.

[](https://www.nuget.org/packages/AllOverIt.ReactiveUI/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.ReactiveUI/absoluteLatest/)---
## AllOverIt.Serialization.Binary
This package provides enhanced support for binary serialization. Complex object graphs, lists, dictionaries and nullable values can all be dynamically serialized using reflection-based readers and writers or, for greater performance, a custom serializer per object within the graph.

[](https://www.nuget.org/packages/AllOverIt.Serialization.Binary/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Serialization.Binary/absoluteLatest/)---
## AllOverIt.Serialization.Json.Abstractions
This package contains JSON serialization abstractions.

[](https://www.nuget.org/packages/AllOverIt.Serialization.Json.Abstractions/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Serialization.Json.Abstractions/absoluteLatest/)---
## AllOverIt.Serialization.Json.NewtonSoft
This package contains a wrapper for [Newtonsoft](https://www.newtonsoft.com/json) JSON serialization based on **AllOverIt.Serialization.Json.Abstractions**.

[](https://www.nuget.org/packages/AllOverIt.Serialization.Json.NewtonSoft/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Serialization.Json.NewtonSoft/absoluteLatest/)---
## AllOverIt.Serialization.Json.SystemText
This package contains a wrapper for [System.Text](https://learn.microsoft.com/en-us/dotnet/api/system.text.json) JSON serialization based on **AllOverIt.Serialization.Json.Abstractions**.

[](https://www.nuget.org/packages/AllOverIt.Serialization.Json.SystemText/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Serialization.Json.SystemText/absoluteLatest/)---
## AllOverIt.Serilog
This package contains general-purpose Serilog sinks and enrichers.

[](https://www.nuget.org/packages/AllOverIt.Serilog/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Serilog/absoluteLatest/)## AllOverIt.Validation
This package contains additional validators and extensions for use with [FluentValidation](https://docs.fluentvalidation.net/en/latest/). It includes an invoker that will select, and invoke, a registered validator based on a provided model.
Synchronous and Asynchronous validation is supported, along with extensions that make it easier to pass context information into a validator to keep it stateless.
Also available is a validation registrar that makes it possible to auto-register all validators within the same assembly. Validators can also be filtered based on a predicate.

[](https://www.nuget.org/packages/AllOverIt.Validation/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Validation/absoluteLatest/)---
## AllOverIt.Validation.Options
This package contains [Microsoft.Extensions.Options](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options) validation using [FluentValidation](https://docs.fluentvalidation.net/en/latest/).

[](https://www.nuget.org/packages/AllOverIt.Validation.Options/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Validation.Options/absoluteLatest/)---
## AllOverIt.Wpf
This package contains general purpose WPF utilities.

[](https://www.nuget.org/packages/AllOverIt.Wpf/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Wpf/absoluteLatest/)---
## AllOverIt.Wpf.Controls
This package contains useful WPF controls.

[](https://www.nuget.org/packages/AllOverIt.Wpf.Controls/absoluteLatest/)
[](https://www.nuget.org/packages/AllOverIt.Wpf.Controls/absoluteLatest/)---