This repository has been archived by the owner on Oct 4, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
ReleaseNotes.txt
252 lines (203 loc) · 22.1 KB
/
ReleaseNotes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
Changes to Dot.Net.DevFast 6.2.0
1. New feature - Adding FastDictionary in Dot.Net.DevFast.Collections.Concurrent which consumes almost half amount of memory and several times faster compared to COncurrentDictionary of microsoft
2. New feature - Adding OneToManyDictionary in Dot.Net.DevFast.Collections for BAU
3. New feature - Adding OneToUniqueManyDictionary in Dot.Net.DevFast.Collections for BAU
4. New Feature - Adding following extensions ToFastDictionary, ToOneToManyDictionary, ToOneToUniqueManyDictionary to Dot.Net.DevFast.Extensions on IEnumerable<T> to ease the creation of above 3 dictionaries.
Changes to Dot.Net.DevFast 6.1.0
1. Change/Fix - Adding IEnumerable on all implementation of Heaps
2. New feature - Adding extension methods on IEnumerable/IAsyncEnumerables
3. New feature - Extensions on Type and MethodInfo to perform reflection based invocations
4. New feature - Adding .NetStandard2.0
Changes to Dot.Net.DevFast 6.0.0
1. Change/Fix - Removing .Net Standard 2.0/.Net Core 2.0 support
2. New feature - Adding HasElements extension on ICollection
3. New feature - Inside Dot.Net.DevFast.Extensions, Adding ToPpcEnumerableWithException and ToPpcEnumerable extension on BlockingCollection
Changes to Dot.Net.DevFast 5.0.3
1. New feature - FindMaximums and FindMinimums extension methods are defined on IEnumerable.
Changes to Dot.Net.DevFast 5.0.2
1. Change/Fix - TryAdd, TryPeek and TryPop methods are now virtual.
2. New feature - AbstractLimitHeap, along with MinLimitHeap and MaxLimitHeap, is available.
Changes to Dot.Net.DevFast 5.0.1
1. Change/Fix - Added PopAll and AddAll methods on IHeap interface
2. New feature - LockBasedConcurrentHeap additionally exposes PopAllConsistent method.
Changes to Dot.Net.DevFast 5.0.0
1. Change/Fix - IConsumer interface extends IAsyncDisposable in .Net Standard 2.1 and IDisposable in older .Net Frameworks
2. Change/Fix - IProducer interface extends IAsyncDisposable in .Net Standard 2.1 and IDisposable in older .Net Frameworks
3. Change/Fix - IPpcFeed interface extends IAsyncDisposable in .Net Standard 2.1 and IDisposable in older .Net Frameworks
4. New feature - AwaitNDispose and AwaitNDisposeAsync are added as extension on Task for both IDisposable and IAsyncDisposable params.
5. New feature - AsTaskResultAsync has been added to convert any object as an awaitable task result.
6. New feature - StartIfNeeded is added as an extension on Task.
Changes to Dot.Net.DevFast 4.0.0
1. Change/Fix - Added optional objectBufferSize with default value in AndParseJsonArray in the streaming method
2. Change/Fix - Added optional objectBufferSize with default value in FromJsonAsEnumerable in JSON deserialization extensions
3. New feature - Adding Lock Based Concurrent Heap implementation under concurrent collection
4. New feature - Adding Concurrent Min/Max Heap (lock based) implementation under concurrent collection
5. New feature - Added .Net Standard 3.1 as Target Framework
Changes to Dot.Net.DevFast 3.2.0
1. New feature - Adding Abstract Binary Heap implementation under collection
2. New feature - Adding Abstract Sizable Binary Heap implementation under collection
3. New feature - Adding Binary Min/Max Heap implementation under collection
Changes to Dot.Net.DevFast 3.1.3
1. Change/Fix - Cancellation token is usage extended for mid-air cancellation even for paused streams.
Changes to Dot.Net.DevFast 3.1.1
1. Change/Fix - For .Net Framework 4.7.2 dll, inside namespace Dot.Net.DevFast.Extensions.CreateExts, method CreateWrappedStream correctly returns an instance of Stream that wrappes the given Stream to control the Dispose behavior when passed to another stream.
2. Change/Fix - Inside Dot.Net.DevFast.Extensions.Ppc, all Pipe and Pipeline implementations now properly awaits on created as well as running tasks.
3. Change/Fix - Inside Dot.Net.DevFast.Extensions.JsonExt.JsonTxtExt, all To/FromJsonXXX extensions now contains more control parameters like encoding, flushing etc.
4. Change/Fix - Inside Dot.Net.DevFast.Extensions.StreamExt.CryptoStreamExt, all TransformXXX extensions now contains more control parameters like encoding, flushing etc.
5. Change/Fix - Inside Dot.Net.DevFast.Extensions.CreateExts, all CreateXXXWriter extensions now contains more control parameters like encoding, flushing etc.
6. Change/Fix - Inside Dot.Net.DevFast.Extensions.CompressionExts, all De/Compression extensions now contains more control parameters like encoding, flushing etc.
7. New feature - Dot.Net.DevFast.Extensions.Ppc.IPipeline interface contains UnconsumedCount property. Now polling can be done on this property to determine count of remaining produced items in the buffer.
8. New feature - Dot.Net.DevFast.Extensions.TaskExts contains StartIfNeeded extension added on both Task and Task<T>.
9. New feature - Dot.Net.DevFast.Extensions.CreateExts contains CreateKeyAndIv extension method on string is added to generate Crypto Key and IV bytes.
10. New feature - Dot.Net.DevFast.Extensions.SyncAsync contains ExecuteErrorWrapped on Action and Func<T> to execute lambda inside try catch with error handler.
11. New feature - Dot.Net.DevFast.Extensions.SyncAsync contains ExecuteErrorWrappedAsync on Func<Task> and Func<Task<T>> to execute async lambda inside try catch with error handler.
12. New feature - Dot.Net.DevFast.Extensions.SyncAsync contains ErrorWrapper on Action and Func<T> to create new lambda wrapping the given lambda inside try catch with error handler.
13. New feature - Dot.Net.DevFast.Extensions.SyncAsync contains ErrorWrapper on Func<Task> and Func<Task<T>> to create new ASYNC lambda wrapping the given ASYNC lambda inside try catch with error handler.
14. New feature - Dot.Net.DevFast.Extensions.StreamPipeExt.StreamPipeExts namespace contains, new streaming API methods:
A) Push Streaming API:
a) .Push extension methods defined on following types:
i) Task<string> and string
ii) Task<StringBuilder> and StringBuilder
iii) DirectoryInfo and FileInfo
iv) Task<byte[]> and byte[]
v) Task<ArraySegment<byte>> and ArraySegment<byte>
vi) Task<Stream> and Stream
b) .PushJson on generic <T> and .PushJsonAsync Task<T>
c) .PushJsonArray on following types:
i) IEnumerable<T> convering BlockingCollection<T> with special treatment (see method documentation)
ii) Action<IProducerBuffer<T>, CancellationToken> to support PPC style implementation
iii) Func<IProducerBuffer<T>, CancellationToken, Task> to support PPC style implementation
iv) IProducer<T> to support PPC style implementation
d) .ThenXXX extension methods to chain with .Pipe to support following:
i) Concurrent writing on Streams
ii) Byte Counting
iii) Compression
iv) Hash Computing
v) Base64 To and Fro conversions
vi) Encryption and Decryption
vii) Generic Crypto Transform
viii) Apply any custom operation on stream
e) .AndXXX as final clauses resulting:
i) returning FileInfo and writing to Files
ii) returning byte[]
iii) returning MemoryStream
iv) returning Byte count
v) Generic Stream writing
vi) Simple constructed pipeline execution
A) Pull Streaming API:
a) .Pull extension methods defined on following types:
i) DirectoryInfo and FileInfo
ii) Task<byte[]> and byte[]
iii) Task<ArraySegment<byte>> and ArraySegment<byte>
iv) Task<Stream> and Stream
b) .ThenXXX extension methods to chain with .Pipe to support following:
i) Byte Counting
ii) Decompression
iii) Hash Computing
iv) Base64 To and Fro conversions
v) Encryption and Decryption
vi) Generic Crypto Transform
vii) Apply any custom operation on stream
c) .AndXXX as final clauses
i) returning FileInfo and writing to Files
ii) returning byte[], ArraySegment<byte>
iii) returning MemoryStream
iv) Generic Stream writing
v) Simple constructed pipeline execution
vi) returning string
vii) writing StringBuilder or returning StringBuilder
d) .AndParseJsonXXX methods as:
i) AndParseJson/AndParseJsonAsync for deserializing stream as generic T object
ii) AndParseJsonArray returning IEnumerable<T>
iii) AndParseJsonArrayAsync extensions are defined, to support PPC style setup, on BlockingCollection<T>, Action<T, CancellationToken>, Func<T, CancellationToken, Task> and IConsumer<T> with the possibility of injecting IDataAdapter.
Changes to Dot.Net.DevFast 2.0.0
1. Transperant package standarization.
Changes to Dot.Net.DevFast 1.4.1
1. New feature - Extending support for .Net Framework 4.6.1 and 4.7.2 and .Net Standard 2.0
Changes to Dot.Net.DevFast 1.4.0
1. Change/Fix - IProducerFeed interface renamed as IConsumerBuffer. This breaks previous releases.
2. Change/Fix - IConsumerFeed interface renamed as IProducerBuffer. This breaks previous releases.
Changes to Dot.Net.DevFast 1.3.3
1. Change/Fix - All ConcurrentPipeline extension methods are renamed to Pipeline.
Changes to Dot.Net.DevFast 1.3.2
1. Bugfixes
Changes to Dot.Net.DevFast 1.3.1
1. Change/Fix - Abstract Adapt method of AwaitableAdapter and AwaitableListAdapter singature changed to public abstract TC Adapt(TP produced, CancellationToken token) to have cancellation support.
2. Change/Fix - IConcurrentPipeline interface name is changed to IPipeline.
3. Change/Fix - Add and TryAdd methods of IPipeline and IConsumerFeed interfaces now support CancellationToken as method parameter.
4. Removed - All obsolete ProducerConsumer extension methods in support of Pipe extension methods.
Changes to Dot.Net.DevFast 1.3.0
1. New feature - Added Dot.Net.DevFast.Extensions.Ppc.AwaitableAdapter and Dot.Net.DevFast.Extensions.Ppc.AwaitableListAdapter as abstract classes exposing single Adapt abstract method. This method can provide the required business object transformation.
2. Change/Fix - Dot.Net.DevFast.Extensions.Internals.PpcAssets.IdentityAdapter is no more publically exposed. Instead end-user should implement Dot.Net.DevFast.Extensions.Ppc.AwaitableAdapter.
3. Change/Fix - Dot.Net.DevFast.Extensions.Internals.PpcAssets.AwaitableListAdapter is no more publically exposed. Instead end-user should implement Dot.Net.DevFast.Extensions.Ppc.AwaitableListAdapter.
Changes to Dot.Net.DevFast 1.2.1
1. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.Pipe<T>(...), in all existing forms of Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...)
2. Change/Fix - All Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...) extension methods are now marked as [Obsolete] in preference to .Pipe
3. Change/Fix - Added TryAdd method with milliseconds Timeout to IConcurrentPipeline<T>, IConsumerFeed<T> and IPpcFeed<T> interfaces to support loosy-bounded-buffer pipeline
Changes to Dot.Net.DevFast 1.2.0
1. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on producer Action delegates accepting Consumer Action/Func delegate
2. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on producer Action delegates accepting IConsumer<T> instance
3. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on producer Func delegates accepting Consumer Action/Func delegate
4. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on producer Func delegates accepting IConsumer<T> instance
5. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IProducer<T> instance accepting Consumer Action/Func delegate
6. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IProducer<T> instance accepting IConsumer<T> instance
7. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on producer Action delegates accepting IReadOnlyList of Consumer Action/Func delegate
8. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on producer Action delegates accepting IReadOnlyList of IConsumer<T> instance
9. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on producer Func delegates accepting IReadOnlyList of Consumer Action/Func delegate
10. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on producer Func delegates accepting IReadOnlyList of IConsumer<T> instance
11. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IProducer<T> instance accepting IReadOnlyList of Consumer Action/Func delegate
12. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IProducer<T> instance accepting IReadOnlyList of IConsumer<T> instance
13. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of producer Action delegates accepting Consumer Action/Func delegate
14. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of producer Action delegates accepting IConsumer<T> instance
15. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of producer Func delegates accepting Consumer Action/Func delegate
16. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of producer Func delegates accepting IConsumer<T> instance
17. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of IProducer<T> instance accepting Consumer Action/Func delegate
18. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of IProducer<T> instance accepting IConsumer<T> instance
19. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of producer Action delegates accepting IReadOnlyList of Consumer Action/Func delegate
20. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of producer Action delegates accepting IReadOnlyList of IConsumer<T> instance
21. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of producer Func delegates accepting IReadOnlyList of Consumer Action/Func delegate
22. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of producer Func delegates accepting IReadOnlyList of IConsumer<T> instance
23. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of IProducer<T> instance accepting IReadOnlyList of Consumer Action/Func delegate
24. New feature - Added generic Concurrent Producer-Consumer extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ProducerConsumer<T>(...), on IReadOnlyList of IProducer<T> instance accepting IReadOnlyList of IConsumer<T> instance
25. New feature - Added overridden extension methods (all 24 implementations, same as 1-24) to accept Action/Func consumer delegates that consumes List<T> (either as fixed size chunks or as variable sized chunks with producer await timeout)
26. New feature - Added overridden extension methods (all 24 implementations, same as 1-24) to accept IConsumer<List<T>> (consumes data either as fixed size chunks or as variable sized chunks with producer await timeout)
27. New feature - Added overridden extension methods (all 24 implementations, same as 1-24) to accept user-defined data adapter (IDataAdapter<T, TC>) and Action/Func consumer delegates that consumes TC
28. New feature - Added overridden extension methods (all 24 implementations, same as 1-24) to accept user-defined data adapter (IDataAdapter<T, TC>) and IConsumer<TC>
29. New feature - Added generic Concurrent Pipeline extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ConcurrentPipeline<T>(...), on Consumer Action/Func delegate that returns an instance of IConcurrentPipeline<T> capable of accepting items during its life-cycle.
30. New feature - Added generic Concurrent Pipeline extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ConcurrentPipeline<T>(...), on IConsumer<T> that returns an instance of IConcurrentPipeline<T> capable of accepting items during its life-cycle.
31. New feature - Added generic Concurrent Pipeline extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ConcurrentPipeline<T>(...), on IReadOnlyList of Consumer Action/Func delegate that returns an instance of IConcurrentPipeline<T> capable of accepting items during its life-cycle.
32. New feature - Added generic Concurrent Pipeline extension methods, as Dot.Net.DevFast.Extensions.Ppc.PpcExts.ConcurrentPipeline<T>(...), on IReadOnlyList of IConsumer<T> that returns an instance of IConcurrentPipeline<T> capable of accepting items during its life-cycle.
33. New feature - Added overridden extension methods (all 4 implementations, same as 29-32) on Action/Func consumer delegates that consumes List<T> (either as fixed size chunks or as variable sized chunks with producer await timeout) that returns an instance of IConcurrentPipeline<T> capable of accepting items during its life-cycle.
34. New feature - Added overridden extension methods (all 4 implementations, same as 29-32) on IConsumer<List<T>> (consumes data either as fixed size chunks or as variable sized chunks with producer await timeout) that returns an instance of IConcurrentPipeline<T> capable of accepting items during its life-cycle.
35. New feature - Added overridden extension methods (all 4 implementations, same as 29-32) on Action/Func consumer delegates that accepts user-defined data adapter (IDataAdapter<T, TC>) and returns an instance of IConcurrentPipeline<T> capable of accepting items during its life-cycle.
36. New feature - Added overridden extension methods (all 4 implementations, same as 29-32) on IConsumer<TC> that accepts user-defined data adapter (IDataAdapter<T, TC>) and returns an instance of IConcurrentPipeline<T> capable of accepting items during its life-cycle.
37. New feature - Added WhenAll(repeatCount, ...) extension methods on repeatable Action/Func delegates
38. New feature - Added WhenAll(maxConcurrency, ...) extension methods on IEnumerable on Action/Func delegates
39. New feature - Added IsNows/IsNotNows (Null or white-spaces) boolean extension on string
40. New feature - Added ToTrimmedUpperSafe/ToTrimmedLowerSafe extension on string
41. New feature - Added ToAsync extension methods on Action/Func delegates
Changes to Dot.Net.DevFast 1.1.2
1. Change/Fix - Performance related transperant changes.
Changes to Dot.Net.DevFast 1.1.1
1. Change/Fix - Removed DateFormatString property initialization from CreateJsonWriter/JsonTextReader extension methods.
2. Change/Fix - AutoFlush added as method parameter to CreateWriter, default value as false.
3. Change/Fix - StringBuilder related transperant changes.
Changes to Dot.Net.DevFast 1.1.0
1. New feature - Added useful CreateXXX methods on FileInfo, StringBuilder, String, Stream.
2. New feature - Added efficient CompressAsync and DecompressXXXAsync methods on StringBuilder, String, Stream, byte[], ArraySegment<byte>.
3. New feature - Added generic ToJson/FromJson methods on StringBuilder, String, Stream, TextReader, JsonReader.
4. New feature - Added efficient generic IEnumerable<T> based ToJsonArray/FromJsonAsEnumerable methods on StringBuilder, String, Stream, TextReader, JsonReader to support LINQ based data manipulation.
5. New feature - Added efficient generic BlockingCollection<T> based ToJsonArrayParallely/FromJsonArrayParallely methods on StringBuilder, String, Stream, TextReader, JsonReader to support Parallel Producer-Consumer pattern based data manipulation.
6. New feature - Added AdaptedJsonSerializer methods on JsonWriter, JsonReader.
7. New feature - Added AdaptedJsonWriter/AdaptedJsonReader methods on JsonSerializer.
8. New feature - Added efficient ToBytes/ToByteSegment methods on string.
9. New feature - Added efficient ToStreamAsync methods on string, StringBuilder.
10. Change/Fix - Under CryptoStreamExt, Task<string> returning TransformAsync name changed to TransformAsStringAsync to avoid name collision due to optional arguments.
Dot.Net.DevFast 1.0.0
1. TryToXXX string parsing methods (bool as success indicator with parsed value in out variable)
2. ToOrDefaultXXX string parsing methods (either parsed value is returned or the given default)
3. ToXXX string parsing methods (throws Exception when parsing fails)
4. TrimXXX methods on string (useful when dealing with white-spaces, null values etc)
5. ThrowIfXXX methods (conditional exception generators, on bool, string, IEquatable, IComparable, ICollection, Dictionary etc)
6. ToBase64XXX / FromBase64XXX async / non-async methods for Base64 to/fro conversions
7. TransformXXX async / non-async methods for other kinds of Crypto transformation.