Vladimir Ozerov created IGNITE-1654: ---------------------------------------
Summary: .Net: Ensure consistent "keepPortable" behavior. Key: IGNITE-1654 URL: https://issues.apache.org/jira/browse/IGNITE-1654 Project: Ignite Issue Type: Task Components: interop Affects Versions: ignite-1.4 Reporter: Vladimir Ozerov Priority: Critical Fix For: 1.5 We need to ensure that "keep portable" concept is a) Consistent; b) Exists for all logical units where it is necessary. Lets split "keep portable" behavior in two scenarios: 1) Client mode. This is when client (caller) operates on portable objects. Example: ICache<IPortableObject, IPortableObject>.Get(...); 2) Server mode. This is when some server side object (caller) operates on portable objects. Example: a remote service which should not deserialize passed arguments and operate on portables instead. Looks like both cases can be handled using the same "keep portable" flag on related logical unit. Logical units affected: 1) Compute - at the very least closures can be executed in this mode; 2) Cache; 3) Data streamer; 4) Data structures: atomic stamped, atmoc reference; 5) Cache events; 6) Messages; 7) Services. Probably we should introduce a kind of "IKeepPortableEnabled<T>" (or so) interface, which will have a method "T WithKeepPortable()". This way users will be able to easily understand that "keep portable" semantics is applicable. Lets split it into several children tickets if necessary. -- This message was sent by Atlassian JIRA (v6.3.4#6332)