Great! Here's .NET development page, in case you haven't seen it yet: https://cwiki.apache.org/confluence/display/IGNITE/Ignite.NET+Development Let me know if you need any assistance.
Pavel On Thu, Aug 3, 2017 at 5:28 AM, Raymond Wilson <[email protected]> wrote: > Hi Pavel, > > > > Thanks for putting it on the plan. > > > > I’ve been reading through the ‘how to contribute’ documentation to see > what’s required and have pulled a static download of the Git repository to > start looking at the code. I’ll see… J > > > > Thanks, > > Raymond. > > > > *From:* Pavel Tupitsyn [mailto:[email protected]] > *Sent:* Wednesday, August 2, 2017 9:08 PM > > *To:* [email protected] > *Subject:* Re: Accessing array elements within items cached in Ignite > without deserialising the entire item > > > > Actually, you are right, we can add this easily, because internal API > allows random stream access. > > I've filed a ticket: https://issues.apache.org/jira/browse/IGNITE-5904 > > > > Thank you for a good suggestion! > > And, by the way, everyone is welcome to contribute, this ticket can be a > perfect start! > > > > Pavel > > > > On Wed, Aug 2, 2017 at 12:46 AM, Raymond Wilson < > [email protected]> wrote: > > Hi Pavel, > > > > Thanks for the clarifications. I certainly appreciate that cross platform > protocols constrain what can be done… > > > > Thanks for pointing out IBinaryRawReader. > > > > Regarding random access into arrays, is this something that is on the > books for a future version? > > Thanks, > > Raymond. > > > > *From:* Pavel Tupitsyn [mailto:[email protected]] > *Sent:* Tuesday, August 1, 2017 11:31 PM > *To:* [email protected] > *Subject:* Re: Accessing array elements within items cached in Ignite > without deserialising the entire item > > > > Hi Raymond, > > > > First of all, BinaryObject is a cross-platform concept, it exists in C#, > C++, Java. > > From C# point of view there are some inconsistencies (like nullable Guid, > or non-generic collections), > > but these things are dictated by the existing protocol, so we can't change > them. > > In most cases you can just use WriteObject<>/ReadObject<> methods to avoid > these inconsistencies. > > > > 1. You can implement array pooling yourself using IBinaryRawReader methods. > > For example, byte array is written like rawWriter.WriteByte(arr.Length); > for (...) rawWriter.WriteByte(arr[i]); > > I think an extension method would be easy to write. > > > > 2. See above, use WriteObject<>/ReadObject<> to avoid dealing with > nullables > > > > 3. Random array access is not possible with current API. > > > > Thanks, > > Pavel > > > > On Tue, Aug 1, 2017 at 2:46 AM, Raymond Wilson <[email protected]> > wrote: > > Hi, > > > > I’ve been looking at IBinarizable and IBinarySerializer with regards to > controlling object serialization (using the Ignite.Net client). > > > > A couple of questions: > > > > 1. Some of the APIs in IBinarizable allow for a factory methods to > control construction of collection and dictionary elements, but not for > array elements (which could allow for performance optimization through > array pooling). > > 2. GUID and DateTime elements are nullable (and there is no > non-nullable variant for these types). Apart from being inconsistent with > all the other types supported in the API, nullability in .Net carries a > performance penalty. Curious as to why these types are defined like this? > > 3. I see it is possible to read arrays of elements. But I see no > way to read a particular element within an array without deserialising the > entire array. Is it possible to do something like byte ReadByte(string > fieldname, uint index); ? > > > > Thanks, > > Raymond. > > > > > > >
