AridityTeam.Ascorbic
26.1.26010
dotnet add package AridityTeam.Ascorbic --version 26.1.26010
NuGet\Install-Package AridityTeam.Ascorbic -Version 26.1.26010
<PackageReference Include="AridityTeam.Ascorbic" Version="26.1.26010" />
<PackageVersion Include="AridityTeam.Ascorbic" Version="26.1.26010" />
<PackageReference Include="AridityTeam.Ascorbic" />
paket add AridityTeam.Ascorbic --version 26.1.26010
#r "nuget: AridityTeam.Ascorbic, 26.1.26010"
#:package AridityTeam.Ascorbic@26.1.26010
#addin nuget:?package=AridityTeam.Ascorbic&version=26.1.26010
#tool nuget:?package=AridityTeam.Ascorbic&version=26.1.26010
AridityTeam.Ascorbic
The main platform core library for The Aridity Team projects.
This library contains the core functionalities and abstractions that are shared across various projects within The Aridity Team ecosystem. It serves as the foundation for building applications and services that adhere to the team's standards and practices.
We've made this library available for anyone to use in their projects, in hopes that it will be useful, and make things simple for them in the future.
Contributions are always welcome, and it helps improve our other projects as well! To start contributing, you can read CONTRIBUTING.md to help you getting started on your first contribution into project.
Features
- Observable Collections: A collection that provides notifications when items get added, removed, or when the whole list is refreshed.
- Performance Analyzing: A utility for analyzing and measuring the performance used.
- Configuration: A utility for managing, writing, and reading configuration files for your application.
- Disposable abstractions: Some useful or useless abstraction classes that provides virtual functions for disposing managed or unmanaged objects.
- Validation: A set of validation utilities to ensure data integrity and correctness. (validation methods inside the library are provided by Microsoft.VisualStudio.Validation, all of their code is used in the library, and are modified to suit our needs.)
- Threading: AridityTeam.Ascorbic provides a set of threading (mostly asynchronous) utilities that were not present in BCL.
- Proper Error-Handling: AridityTeam.Ascorbic provides a few methods, and classes like
Result<T>to ensure proper error handling. - Command-line parser: A parser for command-line arguments that simplifies the process of handling user input.
- Multi-text writer: A utility for writing text to multiple outputs simultaneously, such as console and file.
- Logging: A logging framework that supports various log levels and output formats, making it easier to track application behavior.
- Extensions: AridityTeam.Ascorbic provides variety of extension methods for base .NET types. (
string,TextWriter, andStream). - Service Management: A utility that manages registered services, to be used in singleton instances.
- Polyfills: AridityTeam.Ascorbic provides extension methods to be able to use (some of) the latest .NET APIs in older framework runtimes, like .NET Framework v4.7.2.
License
This library, and most of the other third-party components used is licensed under the MIT/X11 License. License terms may apply here.
Third-party software used
Here is a list of third-party software used inside Ascorbic's code, in which made this library, and our other projects possible:
- Nullable (MIT License)
- PolyType (MIT License)
- System.Composition (MIT License)
- System.ComponentModel.Composition (MIT License)
- System.Text.Json (MIT License)
- System.Net.Http (MIT License)
- Microsoft.Bcl.AsyncInterfaces (MIT License)
- Microsoft.Bcl.Memory (MIT License)
- Microsoft.Bcl.HashCode (MIT License)
- Microsoft.VisualStudio.Validation (MIT License)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.1)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Bcl.Memory (>= 10.0.1)
- Nullable (>= 1.3.1)
- PolyType (>= 1.0.0)
- System.ComponentModel.Composition (>= 10.0.1)
- System.Composition (>= 10.0.1)
- System.Net.Http (>= 4.3.4)
- System.Text.Json (>= 10.0.1)
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.1)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Bcl.Memory (>= 10.0.1)
- Nullable (>= 1.3.1)
- PolyType (>= 1.0.0)
- System.ComponentModel.Composition (>= 10.0.1)
- System.Composition (>= 10.0.1)
- System.Text.Json (>= 10.0.1)
-
net10.0
- PolyType (>= 1.0.0)
- System.ComponentModel.Composition (>= 10.0.1)
- System.Composition (>= 10.0.1)
-
net8.0
- PolyType (>= 1.0.0)
- System.ComponentModel.Composition (>= 10.0.1)
- System.Composition (>= 10.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.1.26010 | 128 | 1/10/2026 |
| 26.1.26001-beta.21 | 86 | 1/1/2026 |
| 25.12.25364-beta.20 | 82 | 12/30/2025 |
| 25.12.25362-beta.19 | 73 | 12/28/2025 |
| 25.12.25360 | 176 | 12/26/2025 |
| 25.12.25360-beta.17 | 130 | 12/26/2025 |
| 25.12.25360-beta | 48 | 12/26/2025 |
| 0.0.9-beta | 195 | 12/24/2025 |
| 0.0.8 | 197 | 12/24/2025 |
| 0.0.7 | 197 | 12/22/2025 |
| 0.0.6 | 180 | 12/21/2025 |
| 0.0.5 | 146 | 12/21/2025 |
| 0.0.4 | 275 | 12/15/2025 |
| 0.0.3 | 457 | 12/11/2025 |
I was supposed to release this version back then before I fly to an island for an staycation, but oh well:
- Addition: MultiTextWriter.Writers
- Addition: DisposableObject.Disposing event
- Addition: BiDisposableObject.Disposing event
- Addition: AsyncDisposableObject.Disposing event
- Addition: DisposableObject.~DisposableObject
- Addition: BiDisposableObject.~BiDisposableObject
- Addition: AsyncDisposableObject.~AsyncDisposableObject
- Addition: Some type converters (even JSON) for the AridityTeam.Util.Binary class
- Modified: Changed MultiTextWriter's XML documentation
- Modified: Overriden the "Dispose(bool)" method in MultiTextWriter
- Modified: Added missing "DataContract" attributes to serializable types
- Modified: Made string format parameters in each Logger functions nullable
- Modified: Used the default type converters for the AridityTeam.Util.Binary class
- Modified: Changed the package icon to differentiate this library from Aridity Cereon
- Modified: Localized the default AridityTeam.Services.ServiceNotFoundException message
- Modified: Made the IFormatProvider parameter in MultiTextWriter's constructor nullable
- Modified: Fixed MultiTextWriter.Write(string, object?, object?) not passing the "arg1" parameter into it's writers