Skip to content

NanoFabricFX/dotNext

 
 

Repository files navigation

.NEXT

Build Status License Test Coverage Total alerts Join the chat

.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:

All these things are implemented in 100% managed code on top of existing .NET API without modifications of Roslyn compiler or CoreFX libraries.

Quick Links

Documentation for older versions:

What's new

Release Date: 07-XX-2021

DotNext 3.3.0

  • Added ValueTypeExtensions.Normalize extension methods that allow to normalize numbers of different types
  • Improved overall performance of extension methods declaring in RandomExtensions class
  • Added Func.IsTypeOf<T>() and Predicate.IsTypeOf<T>() cached predicates
  • Deprecation of CallerMustBeSynchronizedAttribute

DotNext.Metaprogramming 3.3.0

  • Added CodeGenerator.Statement static method to simplify migration from pure Expression Trees
  • Updated dependencies

DotNext.Reflection 3.3.0

  • Updated dependencies

DotNext.Unsafe 3.3.0

  • Updated dependencies

DotNext.Threading 3.3.0

  • Introduced a new asynchronous primitive AsyncCorrelationSource for synchronization
  • Added ValueTaskCompletionSource<T> as reusable source of tasks suitable for pooling

DotNext.IO 3.3.0

  • FileBufferingWriter.GetWrittenContentAsync overload returning ReadOnlySequence<T> now ensures that the buffer tail is flushed to the disk
  • FileBufferingWriter.Flush and FileBufferingWriter.FlushAsync methods ensure that the buffer tail is flushed to the disk

DotNext.Net.Cluster 3.3.0

  • Added implementation of Jump consistent hash
  • Added support of typed message handlers. See MessagingClient and MessageHandler classes for more information

DotNext.AspNetCore.Cluster 3.3.0

  • Added ETW counter for response time of nodes in the cluster

Changelog for previous versions located here.

Release & Support Policy

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.

Development Process

Philosophy of development process:

  1. All libraries in .NEXT family are available for the wide range of .NET implementations: Mono, Xamarin, .NET Core, .NET
  2. Compatibility with AOT compiler should be checked for every release
  3. Minimize set of dependencies
  4. Provide high-quality documentation
  5. Stay cross-platform
  6. Provide benchmarks

Contributing

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 conduct@dotnetfoundation.org with any additional questions or comments.

Packages

No packages published

Languages

  • C# 100.0%