You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Tupitsyn (JIRA)" <ji...@apache.org> on 2017/05/20 06:29:04 UTC

[jira] [Comment Edited] (IGNITE-2662) .NET Standard support

    [ https://issues.apache.org/jira/browse/IGNITE-2662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16018332#comment-16018332 ] 

Pavel Tupitsyn edited comment on IGNITE-2662 at 5/20/17 6:29 AM:
-----------------------------------------------------------------

.NET Standard 2.0 and Core 2.0 are on the way (https://github.com/dotnet/standard/blob/master/docs/versions/netstandard2.0.md), and they offer awesome new concept of "Reference Everything".

This means that our package can be referenced from .NET Standard 2.0 and .NET Core 2.0 applications and libraries.
However, some APIs, such as Windows Registry access (Which we use to locate Java home dir) are not supported and cause {{FileNotFoundException}}.
We should detect current execution environment and avoid these APIs when they are not available.

In short, what should be done (once .NET Standard 2.0 is released):
* Create a new test project in a separate solution targeting .NET Core 2.0
* Write unit test to cover all major functionality
* Make sure Windows-specific APIs are not called when they are not available

At last, we can enable Linux by embedding linux-built {{ignite.jni.so}} the same way as we embed x86 and x64 {{ignite.jni.dll}} on Windows. This can be done in a separate ticket.


was (Author: ptupitsyn):
.NET Standard 2.0 and Core 2.0 are on the way (https://github.com/dotnet/standard/blob/master/docs/versions/netstandard2.0.md), and they offer awesome new concept of "Reference Everything".

This means that our package can be referenced from .NET Standard 2.0 and .NET Core 2.0 applications and libraries.
However, some APIs, such as Windows Registry access (Which we use to locate Java home dir) are not supported and cause {{FileNotFoundException}}.
We should detect current execution environment and avoid these APIs when they are not available.

In short, what should be done (once .NET Standard 2.0 is released):
* Create a new test project in a separate solution targeting .NET Core 2.0
* Write unit test to cover all major functionality
* Make sure Windows-specific APIs are not called when they are not available

> .NET Standard support
> ---------------------
>
>                 Key: IGNITE-2662
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2662
>             Project: Ignite
>          Issue Type: New Feature
>          Components: platforms
>    Affects Versions: 1.1.4
>            Reporter: Pavel Tupitsyn
>              Labels: .net
>
> Ignite.NET should target .NET Standard so it is available on maximum number of platforms, see
> https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
> https://weblog.west-wind.com/posts/2016/Nov/23/NET-Standard-20-Making-Sense-of-NET-Again
> https://github.com/dotnet/core/blob/master/roadmap.md
> This will allow us to run on Windows, OSX, and Linux, and target .NET Core in additional to good old regular .NET.
> Possible difficulties:
> * JNI interop. Core has dllImport and it works on linux, and our C++ client works on linux, so it should be possible
> * Reflection. We use it a lot, and API has changed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)