.NEXT (dotNext) is a set of powerful libraries aimed to improve development productivity and extend .NET API with unique features. Some of these features are planned in future releases of .NET platform but already implemented in the library:
Proposal | Implementation |
---|---|
Interop between function pointer and delegate | DelegateHelpers factory methods |
Check if an instance of T is default(T) | IsDefault() method |
Concept Types | Documentation |
Expression Trees covering additional language constructs, i.e. foreach , await , patterns, multi-line lambda expressions |
Metaprogramming |
Async Locks | Documentation |
High-performance general purpose Write-Ahead Log | Persistent Log |
Memory-mapped file as Memory<byte> | MemoryMappedFileExtensions |
Memory-mapped file as ReadOnlySequence<byte> | ReadOnlySequenceAccessor |
Quick overview of additional features:
- Attachment of user data to an arbitrary objects
- Automatic generation of Equals/GetHashCode for an arbitrary type at runtime which is much better that Visual Studio compile-time helper for generating these methods
- Extended set of atomic operations. Inspired by AtomicInteger and friends from Java
- Fast Reflection
- Fast conversion of bytes to hexadecimal representation and vice versa using
ToHex
andFromHex
methods from Span static class ManualResetEvent
,ReaderWriterLockSlim
and other synchronization primitives now have their asynchronous versions- Atomic memory access operations for arbitrary value types including enums
- PipeExtensions provides high-level I/O operations for pipelines such as string encoding and decoding
- Various high-performance growable buffers for efficient I/O
- Fully-featured Raft implementation
All these things are implemented in 100% managed code on top of existing .NET API without modifications of Roslyn compiler or CoreFX libraries.
Documentation for older versions:
Release Date: 06-09-2021
- Fixed implementation of
Optional<T>.GetHashCode
to distinguish hash code of undefined and null values
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
DotNext.AspNetCore.Cluster 3.2.1
- Updated dependencies
Changelog for previous versions located here.
The libraries are versioned according with Semantic Versioning 2.0.
Version | .NET compatibility | Support Level |
---|---|---|
0.x | .NET Standard 2.0 | Not Supported |
1.x | .NET Standard 2.0 | Not Supported |
2.x | .NET Standard 2.1 | Not Supported |
3.x | .NET Standard 2.1, .NET 5 | Active Development |
Maintenance support level means that new releases will contain bug fixes only.
Philosophy of development process:
- All libraries in .NEXT family are available for the wide range of .NET implementations: Mono, Xamarin, .NET Core, .NET
- Compatibility with AOT compiler should be checked for every release
- Minimize set of dependencies
- Provide high-quality documentation
- Stay cross-platform
- Provide benchmarks
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the .NET Foundation Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.