[ 
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)

Reply via email to