Skip to content

augustoproiete-forks/sakno--dotNext

 
 

Repository files navigation

.NEXT

Build Status License Test Coverage

.NEXT (dotNext) is a set of powerful libaries 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
Static Delegates Value Delegates
Operators for IntPtr and UIntPtr Extension methods for arithmetic, bitwise and comparison operations
Enum API Documentation
Check if an instance of T is a 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 Standard stack without modifications of Roslyn compiler or CoreFX libraries.

Quick Links

Documentation for older versions:

What's new

Release Date: 06-14-2020

DotNext 2.6.0

  • More ways to create MemoryOwner<T>
  • Removed copying of synchronization context when creating continuation for Future object
  • Introduced APM helper methods in AsyncDelegate class

DotNext.IO 2.6.0

  • Improved performance of FileBufferingWriter
  • FileBufferingWriter now contains correctly implemented BeginWrite and EndWrite methods
  • FileBufferingWriter ables to return written content as ReadOnlySequence<byte>
  • Introduced BufferWriter class with extension methods for IBufferWriter<byte> aimed to encoding strings, primitive and blittable types
  • Support of ulong, uint and ushort data types available for encoding/decoding in SequenceBinaryReader and PipeExtensions classes
  • Ability to access memory-mapped file content via ReadOnlySequence<byte>

DotNext.Metaprogramming 2.6.0

  • Introduced null-coalescing assignment expression
  • Updated dependencies

DotNext.Reflection 2.6.0

  • Introduced null-coalescing assignment expression
  • Updated dependencies

DotNext.Threading 2.6.0

  • Fixed race-condition caused by AsyncTrigger.Signal method
  • AsyncLock now implements IAsyncDisposable interface
  • AsyncExclusiveLock, AsyncReaderWriterLock and AsyncSharedLock now have support of graceful shutdown implemented via IAsyncDisposable interface

DotNext.Unsafe 2.6.0

  • Optimized performance of methods in MemoryMappedFileExtensions class
  • Updated dependencies

DotNext.Net.Cluster 2.6.0

  • Fixed behavior of PersistentState.DisposeAsync so it suppress finalization correctly

DotNext.AspNetCore.Cluster 2.6.0

  • Respect shutdown timeout inherited from parent host in Hosted Mode
  • Updated dependencies

DotNext.Augmentation.Fody 2.1.0

  • Removed usage of obsolete methods from Fody
  • Updated Fody version

Changelog for previous versions located here.

Release Policy

  • The libraries are versioned according with Semantic Versioning 2.0.
  • Version 0.x and 1.x relies on .NET Standard 2.0
  • Version 2.x relies on .NET Standard 2.1

Support Policy

Version .NET compatibility Support Level
0.x .NET Standard 2.0 Not Supported
1.x .NET Standard 2.0 Maintenance
2.x .NET Standard 2.1 Active Development

Maintenance support level means that new releases will contain bug fixes only.

DotNext.AspNetCore.Cluster of version 1.x is no longer supported because of ASP.NET Core 2.2 end-of-life.

DotNext.Net.Cluster of version 1.x is no longer supported due to few reasons:

  1. Underlying implementation for ASP.NET Core is no longer supported
  2. Raft implementation is incomplete

Development Process

Philosophy of development process:

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

Packages

No packages published

Languages

  • C# 100.0%