Skip to content

scharnyw/dotNext

 
 

Repository files navigation

.NEXT

Build Status License Test Coverage

.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
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: 11-01-2020

DotNext 2.11.0

  • Added Span<T>.CopyTo and ReadOnlySpan<T>.CopyTo extension methods to support cases when the source span can be larger than the destination
  • Added Span.AsSpan and Span.AsReadOnlySpan for value tuples
  • Deprecated EnumerableTuple data type
  • Minor performance improvements
  • Updated dependencies

DotNext.Metaprogramming 2.11.0

  • Overloaded CodeGenerator.AsyncLambda supports Pascal-style return (issue 13)
  • Fixed suppression of exceptions raised by generated async lambda (issue 14)
  • Fixed invalid behavior of async lambda body rewriter (issue 17)
  • Updated dependencies

DotNext.Reflection 2.11.0

  • Updated dependencies

DotNext.Threading 2.11.0

  • Updated dependencies

DotNext.Unsafe 2.11.0

  • Updated dependencies

DotNext.Net.Cluster 2.11.0

  • Added requestTimeout configuration property for TCP/UDP transports
  • Stabilized shutdown of Raft server for TCP/UDP transports
  • Added SSL support for TCP transport
  • Updated dependencies shipped with .NET Core 3.1.9

DotNext.AspNetCore.Cluster 2.11.0

  • Added requestTimeout and rpcTimeout configuration properties for precise control over timeouts used for communication between Raft nodes (issue 12)
  • Updated dependencies shipped with .NET Core 3.1.9

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%