Skip to content

Latest commit

 

History

History
778 lines (593 loc) · 51.3 KB

CHANGELOG.md

File metadata and controls

778 lines (593 loc) · 51.3 KB

Release Notes

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

09-28-2020

DotNext 2.10.1

  • Fixed correctness of Clear(bool) method overridden by PooledArrayBufferWriter<T> and PooledBufferWriter<T> classes
  • Added RemoveLast and RemoveFirst methods to PooledArrayBufferWriter<T> class
  • Optional<T> type distinguishes null and undefined value
  • DotNext.Sequence class is now deprecated and replaced with DotNext.Collections.Generic.Sequence class. It's binary compatible but source incompatible change
  • Added new API for writing resource string readers. It utilizes Caller Info feature in C# to resolve resource entry name using accessor method or property
  • Introduced BufferWriterSlim<T> type as lightweight and stackalloc-friendly version of PooledBufferWriter<T> type
  • Introduced SpanReader<T> and SpanWriter<T> types that can be used for sequential access to the elements in the memory span
  • Removed unused resource strings
  • Updated dependencies

DotNext.Metaprogramming 2.10.1

DotNext.Reflection 2.10.1

  • Removed unused resource strings
  • Updated dependencies

DotNext.Threading 2.10.1

DotNext.Unsafe 2.10.1

DotNext.Net.Cluster 2.10.1

  • Removed unused resource strings
  • Updated dependencies shipped with .NET Core 3.1.8

DotNext.AspNetCore.Cluster 2.10.1

  • Removed unused resource strings
  • Updated dependencies shipped with .NET Core 3.1.8

08-16-2020

DotNext 2.9.6

DotNext.IO 2.7.6

  • Fixed compiler warnings
  • Updated dependencies

DotNext.Metaprogramming 2.6.6

  • Fixed compiler warnings
  • Updated dependencies

DotNext.Reflection 2.6.6

  • Fixed compiler warnings
  • Updated dependencies

DotNext.Threading 2.9.6

  • Fixed compiler warnings
  • Updated dependencies

DotNext.Unsafe 2.7.6

  • Fixed compiler warnings
  • Updated dependencies

DotNext.Net.Cluster 2.6.6

  • Fixed unstable behavior of Raft TCP transport on Windows. See issue #10 for more info.
  • Updated dependencies

DotNext.AspNetCore.Cluster 2.6.6

  • Updated dependencies

08-08-2020

DotNext 2.9.5

08-06-2020

DotNext 2.9.1

  • Added Continuation.ContinueWithTimeout<T> extension method that allows to produce the task from the given task with attached timeout and, optionally, token

DotNext.Threading 2.9.0

  • Fixed graceful shutdown for async locks if they are not in locked state
  • Added AsyncExchanger<T> synchronization primitive that allows to organize pipelines
  • AsyncTrigger now has additional SignalAndWaitAsync overloads

07-30-2020

DotNext 2.9.0

DotNext.IO 2.7.3

  • Fixed behavior of GetObjectDataAsync method in StreamTransferObject. Now it respects the value of IsReusable property.

07-27-2020

DotNext 2.8.0

  • Added MemoryTemplate<T> value type that represents pre-compiled template with placeholders used for fast creation of Memory<T> and string objects

07-24-2020

DotNext.IO 2.7.2

  • Added BufferWriter.WriteLine overloaded extension method that allows to specify ReadOnlySpan<char> as an input argument

07-15-2020

DotNext.IO 2.7.1

  • Text writer constructed with TextWriterSource.AsTextWriter extension method can be converted to string containing all written characters

07-13-2020

DotNext.Unsafe 2.7.1

  • Optimized UnmanagedMemoryPool<T>.GetAllocator method

07-11-2020

DotNext.Unsafe 2.7.0

  • UnmanagedMemoryPool<T>.GetAllocator public static method is added for compatibility with MemoryAllocator<T> delegate

07-09-2020

This release is mainly focused on DotNext.IO library to add new API unifying programming experience across I/O pipelines, streams, sequences and buffer writers.

DotNext 2.7.0

DotNext.IO 2.7.0

DotNext.Metaprogramming 2.6.1

  • Enabled consistent build which is recommended for SourceLink

DotNext.Reflection 2.6.1

  • Optimized construction of getter/setter for the reflected field
  • Enabled consistent build which is recommended for SourceLink

DotNext.Threading 2.6.1

  • Enabled consistent build which is recommended for SourceLink

DotNext.Unsafe 2.6.1

  • Enabled consistent build which is recommended for SourceLink

DotNext.Net.Cluster 2.6.1

  • Enabled consistent build which is recommended for SourceLink

DotNext.AspNetCore.Cluster 2.6.1

  • Reduced memory allocation caused by replication of log entries
  • Enabled consistent build which is recommended for SourceLink

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

06-01-2020

DotNext 2.5.0

  • Improved performance of PooledBufferWriter
  • MemoryAllocator<T> now allows to allocate at least requested number of elements

DotNext.IO 2.5.0

  • Ability to represent stream as IBufferWriter<T>
  • FileBufferingWriter class is one more growable buffer backed by file in case of very large buffer size

05-29-2020

DotNext.Metaprogramming 2.4.1

  • Fixed dynamic construction of tuples using ValueTupleBuilder class (PR #8)

05-20-2020

DotNext 2.4.2

  • Reduced memory allocation caused by continuations in Future class
  • Improved performance of some methods in MemoryRental<T> and DelegateHelpers classes
  • Reduced amount of memory re-allocations in PooledBufferWriter<T> and PooledArrayBufferWriter<T> classes

05-18-2020

DotNext 2.4.1

  • ArrayRental<T> can automatically determine array cleanup policy
  • MemoryRental<T> is improved for stackalloc/pooling pattern
  • Fixed bug in Clear method of PooledBufferWriter class

05-17-2020

This release is mostly aimed to improving code quality of all .NEXT libraries with help of StyleCop analyzer.

DotNext 2.4.0

  • DotNext.IO.StreamSource class allows to convert ReadOnlyMemory<byte> or ReadOnlySequence<byte> to stream
  • DotNext.IO.StreamSource class allows to obtain writable stream for IBufferWriter<byte>

DotNext.IO 2.4.0

  • Support of BeginRead and EndRead methods in StreamSegment class
  • Update to the latest System.IO.Pipelines library

DotNext.Metaprogramming 2.4.0

  • Fixed several compiler warnings

DotNext.Reflection 2.4.0

  • Fixed several compiler warnings

DotNext.Threading 2.4.0

  • Fixed several compiler warnings
  • Update to the latest System.Threading.Channels library

DotNext.Unsafe 2.4.0

  • Ability to convert Pointer<T> to IMemoryOwner<T>

DotNext.Net.Cluster 2.4.0

  • Added calls to ConfigureAwait in multiple places

DotNext.AspNetCore.Cluster 2.4.0

  • Added calls to ConfigureAwait in multiple places
  • Fixed node status tracking when TCP or UDP transport in use

05-11-2020

DotNext.AspNetCore.Cluster 2.3.2

  • Section with local node configuration can be defined explicitly

05-09-2020

DotNext.AspNetCore.Cluster 2.3.1

  • Alternative methods for configuring local node

04-23-2020

DotNext 2.3.0

DotNext.Metaprogramming 2.3.0

  • Updated dependencies

DotNext.Unsafe 2.3.0

  • Updated dependencies

DotNext.IO 2.3.0

  • Fixed bugs that lead to unexpected EndOfStreamException in some methods of StreamExtensions class
  • Introduced new methods in StreamExtensions class for reading data of exact size

DotNext.Threading 2.3.0

  • Improved performance of existing asynchronous locks
  • Added AsyncTrigger synchronization primitive

DotNext.Reflection 2.3.0

  • Updated dependencies

DotNext.Net.Cluster 2.3.0

  • TCP transport for Raft
  • UDP transport for Raft
  • Fixed bug in PersistentState class that leads to incorrect usage of rented memory and unexpected result during replication between nodes
  • Methods for handling Raft messages inside of RaftCluster<TMember> class now support cancellation via token

DotNext.AspNetCore.Cluster 2.3.0

  • Updated dependencies
  • Fixed cancellation of asynchronous operations

03-08-2020

DotNext 2.2.0

  • Ability to slice lists using range syntax and new ListSegment data type
  • Various extension methods for broader adoption of range/index feature from C# 8

DotNext.Metaprogramming 2.2.0

  • Support of range and index expressions from C# 8

DotNext.Unsafe 2.2.0

  • Access to memory-mapped file via System.Memory<T> data type

DotNext.IO 2.2.0

  • Updated dependencies

DotNext.Threading 2.2.0

  • Updated dependencies

DotNext.Reflection 2.2.0

  • Lighweight API for fast reflection is added. See overloaded Unreflect methods in Reflector class.

DotNext.Net.Cluster 2.2.0

  • Updated dependencies

DotNext.AspNetCore.Cluster 2.2.0

  • Upgrade to latest ASP.NET Core

DotNext.Augmentation.Fody 2.0.1

  • Removed obsolete calls

02-23-2020

DotNext 2.1.0

  • Reduced memory footprint of DotNext.Span static constructor
  • DotNext.UserDataStorage behavior is now customizable via UserDataStorage.IContainer interface
  • Introduced Intrinsics.GetReadonlyRef method allows to reinterpret managed pointer to array element
  • DelegateHelpers.Bind now supports both closed and open delegates

01-31-2020

Major release of version 2.0 is completely finished and contains polished existing and new API. All libraries in .NEXT family are upgraded. Migration guide for 1.x users is here. Please consider that this version is not fully backward compatible with 1.x.

Major version is here for the following reasons:

  1. .NET Core 3.1 LTS is finally released
  2. .NET Standard 2.1 contains a lot of new API required for optimizations. The most expected API is asynchronous methods in Stream class. These enhancements are necessary for evolution of .NEXT library. For instance, new DotNext.IO library could not be released without new .NET API.
  3. ASP.NET Core 2.2 is no longer supported by Microsoft. Therefore, DotNext.AspNetCore.Cluster library of version 1.x relies on unmaintainable platform. Now it is based on ASP.NET Core 3.1 which has long-term support.

What is done in this release:

  1. Quality-focused changes
    1. Removed trivial "one-liners" in DotNext library
    2. Reduced and unified API to work with unmanaged memory in DotNext.Unsafe library
    3. DotNext.AspNetCore.Cluster migrated to ASP.NET Core 3.1 LTS
    4. Increased test coverage and fixed bugs
    5. Additional optimizations of performance in Write-Ahead Log
    6. Fixed issue #4
    7. Introduced API for client interaction support described in Chapter 6 of Raft dissertation
    8. Migration to C# 8 and nullable reference types
  2. New features
    1. Introduced DotNext.IO library with unified asynchronous API surface for .NET streams and I/O pipelines. This API provides high-level methods for encoding and decoding of data such as strings and blittable types. In other words, if you want to have BinaryReader or BinaryWriter for pipelines then welcome!
    2. Ability to obtain result of task asynchronously when its result type is not known at compile-time
    3. Fast hexadecimal string conversion to Span<byte> and vice versa

Raft users are strongly advised to migrate to this new version.

01-12-2020

DotNext.Net.Cluster 1.2.11

  • Ability to reconstruct internal state using PersistentState.ReplayAsync method

01-11-2020

DotNext 1.2.10

  • Fixed invalid behavior of StreamSegment.Position property

DotNext.Net.Cluster 1.2.10

  • Removed redundant validation of log entry index in PersistentState

12-06-2019

DotNext.Unsafe 1.2.10

  • Fixed invalid usage of GC.RemoveMemoryPressure in Reallocate methods

12-04-2019

DotNext 1.2.9

  • UserDataStorage no longer stores null values in its internal dictionary
  • Updated dependencies
  • Migration to SourceLink 1.0.0

DotNext.Metaprogramming 1.2.9

  • Updated dependencies
  • Migration to SourceLink 1.0.0

DotNext.Reflection 1.2.9

  • Updated dependencies
  • Migration to SourceLink 1.0.0

DotNext.Threading 1.3.3

  • Updated dependencies
  • Migration to SourceLink 1.0.0

DotNext.Unsafe 1.2.9

  • Updated dependencies
  • Fixed invalid calculation of byte length in Pointer.Clear method

DotNext.Net.Cluster 1.2.9

  • Updated dependencies

DotNext.AspNetCore.Cluster 1.2.9

  • Updated dependencies

11-27-2019

DotNext.AspNetCore.Cluster 1.2.8

  • Improved performance of one-way no-ack messages that can be passed using ISubscriber.SendSignalAsync method

11-25-2019

DotNext 1.2.7

  • BitwiseComparer now available as singleton instance

DotNext.Net.Cluster 1.2.7

  • Improved performance of copying log entry content when PersistentState is used as persistent audit trail

DotNext.AspNetCore.Cluster 1.2.7

  • Improved performance of message exchange between cluster members

11-24-2019

DotNext 1.2.6

  • Fixed typos in XML documentation
  • Updated InlineIL.Fody dependency

DotNext.Threading 1.3.2

  • Fixed MissingManifestResourceException caused by AsyncLock value type on .NET Core 3.x

DotNext.Unsafe 1.2.6

  • Updated InlineIL.Fody dependency

DotNext.Net.Cluster 1.2.6

  • Fixed NRE when RaftCluster.StopAsync called multiple times

DotNext.AspNetCore.Cluster 1.2.6

  • Migration to patched RaftCluster class

11-20-2019

DotNext.Threading 1.3.1

DotNext.AspNetCore.Cluster 1.2.5

  • Fixed bug when log entry may have invalid content when retrieved from persistent audit trail. Usually this problem can be observed in case of concurrent read/write and caused by invalid synchronization of multiple file streams.

11-18-2019

DotNext.Threading 1.3.0

  • PersistentChannel is added as an extension of channel concept from System.Threading.Channels. It allows to use disk memory instead of RAM for storing messages passed from producer to consumer. Read more here
  • AsyncCounter allows to simplify asynchronous coordination in producer/consumer scenario

11-15-2019

DotNext 1.2.4

  • Updated dependencies

DotNext.Metaprogramming 1.2.4

  • Fixed NRE

DotNext.Reflection 1.2.4

  • Internal cache is optimized to avoid storage of null values

DotNext.Threading 1.2.4

  • Updated dependencies

DotNext.Unsafe 1.2.4

  • Updated dependencies

DotNext.Net.Cluster 1.2.4

  • Fixed unnecessary boxing of generic log entry value

DotNext.AspNetCore.Cluster 1.2.4

  • Updated dependencies

DotNext.Augmentation.Fody 1.2.4

  • Updated dependencies

11-11-2019

DotNext 1.2.3

  • Updated dependencies

DotNext.Metaprogramming 1.2.3

  • Updated dependencies

DotNext.Reflection 1.2.3

  • Fixed potential NRE
  • Fixed reflection of value type constructors
  • Updated dependencies

DotNext.Threading 1.2.3

  • Updated dependencies

DotNext.Unsafe 1.2.3

  • Updated dependencies

DotNext.Net.Cluster 1.2.3

  • Updated dependencies

DotNext.AspNetCore.Cluster 1.2.3

  • Updated dependencies

DotNext.Augmentation.Fody 1.2.3

  • Updated dependencies

11-05-2019

DotNext 1.2.2

  • Fixed bitwise equality
  • Fixed Intrinsics.IsDefault method

11-02-2019

DotNext 1.2.1

10-31-2019

DotNext 1.2.0

  • Fixed memory leaks caused by methods in StreamExtensions class
  • MemoryRental type is introduced to replace memory allocation with memory rental in some scenarios
  • ArrayRental type is extended
  • Value Delegates now are protected from dangling pointer issue caused by dynamic assembly loading
  • Reduced amount of memory utilized by random string generation methods
  • Strict package versioning rules are added to avoid accidental upgrade to major version
  • Improved performance of AtomicEnum methods
  • Improved performance of Atomic<T> using optimistic read locks
  • Fixed unnecessary boxing in atomic operations
  • Intrinsics.HasFlag static generic method is added as boxing-free and fast alternative to Enum.HasFlag method

DotNext.Reflection 1.2.0

  • Updated version of DotNext dependency to fix potential memory leaks
  • Strict package versioning rules are added to avoid accidental upgrade to major version

DotNext.Metaprogramming 1.2.0

  • Updated version of DotNext dependency to fix potential memory leaks
  • Strict package versioning rules are added to avoid accidental upgrade to major version

DotNext.Threading 1.2.0

  • Updated version of DotNext dependency to fix potential memory leaks
  • Strict package versioning rules are added to avoid accidental upgrade to major version
  • AsyncReaderWriterLock now supports optimistic reads

DotNext.Unsafe 1.2.0

  • UnmanagedMemoryPool is added
  • Strict package versioning rules are added to avoid accidental upgrade to major version

DotNext.Net.Cluster 1.2.0

  • Updated version of DotNext dependency to fix potential memory leaks
  • Strict package versioning rules are added to avoid accidental upgrade to major version
  • Fixed incorrect computation of partition in PersistentState.DropAsync method

DotNext.AspNetCore.Cluster 1.2.0

  • HTTP/2 support
  • Performance optimizations caused by changes in ArrayRental type
  • Strict package versioning rules are added to avoid accidental upgrade to major version

DotNext.Augmentation.Fody 1.2.0

  • Improved support of ValueRefAction and ValueRefFunc value delegates

10-12-2019

DotNext 1.1.0

DotNext.Reflection 1.1.0

  • Updated version of FxCop analyzer
  • Improved performance of internal caches

DotNext.Metaprogramming 1.1.0

  • Updated version of FxCop analyzer
  • RefAnyValExpression is added

DotNext.Threading 1.1.0

  • Updated version of FxCop analyzer

DotNext.Unsafe 1.1.0

  • Updated version of FxCop analyzer

DotNext.Net.Cluster 1.1.0

  • Minor performance optimizations of persistent WAL
  • Updated version of FxCop analyzer

DotNext.AspNetCore.Cluster 1.1.0

  • Updated version of FxCop analyzer

10-02-2019

DotNext 1.0.1

  • Minor performance optimizations

DotNext.Reflection 1.0.1

  • Minor performance optimizations

DotNext.Metaprogramming 1.0.1

  • Minor performance optimizations

DotNext.Threading 1.0.1

  • Introduced AsyncSharedLock as combination of reader/write lock and semaphore
  • Minor performance optimizations

DotNext.Unsafe 1.0.1

  • Minor performance optimizations

DotNext.Net.Cluster 1.0.1

  • Minor performance optimizations

DotNext.AspNetCore.Cluster 1.0.1

  • Minor performance optimizations

DotNext.Augmentation.Fody 1.0.1

  • Code refactoring

10-02-2019

This is the major release of all parts of .NEXT library. Now the version is 1.0.0 and backward compatibility is guaranteed across all 1.x releases. The main motivation of this release is to produce stable API because .NEXT library active using in production code, especially Raft implementation.

.NEXT 1.x is based on .NET Standard 2.0 to keep compatibility with .NET Framework.

DotNext 1.0.0

  • Optimized methods of Memory class
  • Extension methods for I/O are introduced. Now you don't need to instantiate BinaryReader or BinaryWriter for high-level parsing of stream content. Encoding and decoding of strings are fully supported. Moreover, these methods are asynchronous in contrast to methods of BinaryReader and BinaryWriter.

DotNext.Reflection 1.0.0

  • API is stabilized

DotNext.Metaprogramming 1.0.0

  • API is stabilized

DotNext.Threading 1.0.0

DotNext.Unsafe 1.0.0

DotNext.Net.Cluster 1.0.0

  • Audit trail programming model is redesigned
  • Persistent and high-performance Write Ahead Log (WAL) is introduced. Read more here
  • Log compaction is supported

DotNext.AspNetCore.Cluster 1.0.0

  • Redirection to leader now uses 307 Temporary Redirect instead of 302 Moved Temporarily by default
  • Compatibility with persistent WAL is provided

DotNext.Augmentation.Fody 1.0.0

  • Behavior of augmented compilation is stabilized

09-03-2019

DotNext.AspNetCore.Cluster 0.5.7

  • Custom redirection logic can be asynchronous
  • Fixed compatibility of redirection to leader with MVC

09-02-2019

DotNext.AspNetCore.Cluster 0.5.5

  • Automatic redirection to leader now works correctly with reverse proxies
  • Custom redirection logic is introduced

08-31-2019

DotNext 0.14.0

  • Timestamp type is introduced as allocation-free alternative to Stopwatch
  • Memory class now have methods for reading and writing null-terminated UTF-16 string from/to unmanaged or pinned managed memory
  • Updated InlineIL dependency to 1.3.1

DotNext.Threading 0.14.0

  • AsyncTimer is completely rewritten in backward-incompatible way. Wait handle are no longer used.

DotNext.Unsafe 0.14.0
DotNext.Reflection 0.14.0
DotNext.Metaprogramming 0.14.0

  • Small code fixes
  • Updated DotNext dependency to 0.14.0
  • Updated Fody dependency to 6.0.0
  • Updated augmented compilation to 0.14.0

DotNext.Net.Cluster 0.5.0
DotNext.AspNetCore.Cluster 0.5.0

DotNext.Augmentation.Fody 0.14.0

  • Updated Fody dependency to 6.0.0

08-28-2019

DotNext.AspNetCore.Cluster 0.4.0
DotNext.Net.Cluster 0.4.0

  • Heartbeat timeout can be tuned through configuration
  • Optimized Raft state machine

08-27-2019

DotNext.AspNetCore.Cluster 0.3.5

  • Docker support

08-22-2019

DotNext.AspNetCore.Cluster 0.3.3
DotNext.Net.Cluster 0.3.3

  • Reduced number of logs produced by cluster node

08-21-2019

DotNext.AspNetCore.Cluster 0.3.2

  • Fixed endpoint redirection to leader node

DotNext.AspNetCore.Cluster 0.3.1

  • Fixed detection of local IP address
  • Improved IPv6 support

08-20-2019

DotNext 0.13.0

  • Fixed bug with equality comparison of null arrays inside of EqualityComparerBuilder
  • Improved debugging experience:
    • SourceLink is enabled
    • Debug symbols now embedded into assembly file
    • NuGet Symbols Package is no longer used

DotNext.Threading 0.13.0

  • Internals of several classes now based on Value Delegates to reduce memory allocations
  • Improved debugging experience:
    • SourceLink is enabled
    • Debug symbols now embedded into assembly file
    • NuGet Symbols Package is no longer used

DotNext.Unsafe 0.13.0
DotNext.Reflection 0.13.0
DotNext.Metaprogramming 0.13.0
DotNext.Net.Cluster 0.3.0
DotNext.AspNetCore.Cluster 0.3.0

  • Improved debugging experience:
    • SourceLink is enabled
    • Debug symbols now embedded into assembly file
    • NuGet Symbols Package is no longer used

08-18-2019

DotNext 0.12.0

  • Value (struct) Delegates are introduced as allocation-free alternative to classic delegates
  • Atomic<T> is added to provide atomic memory access operations for arbitrary value types
  • Arithmetic, bitwise and comparison operations for IntPtr and UIntPtr
  • Improved performance of methods declared in EnumConverter
  • Improved performance of atomic operations
  • Improved performance of bitwise equality and bitwise comparison methods for value types
  • Improved performance of IsDefault method which allows to check whether the arbitrary value of type T is default(T)
  • GetUnderlyingType() method is added to obtain underlying type of Result<T>
  • TypedReference can be converted into managed pointer (type T&, or ref T) using Memory class

This release introduces a new feature called Value Delegates which are allocation-free alternative to regular .NET delegates. Value Delegate is a value type which holds a pointer to the managed method and can be invoked using Invoke method in the same way as regular .NET delegate. Read more here.

ValueType<T> is no longer exist and most of its methods moved into BitwiseComparer class.

DotNext.Reflection 0.12.0

  • Ability to obtain managed pointer (type T&, or ref T) to static or instance field from FieldInfo using Reflector class

DotNext.Threading 0.12.0

DotNext.Metaprogramming 0.12.0

DotNext.Unsafe 0.12.0

DotNext.Net.Cluster 0.2.0 DotNext.AspNetCore.Cluster 0.2.0

  • Raft client is now capable to ensure that changes are committed by leader node using WriteConcern