Apache Ignite.NET Build Instructions (Windows)
==============================================

Requirements:
* Windows (XP and up), Windows Server (2008 and up)
* Oracle JDK 8 and above
* .NET Framework 4.0
* .NET Core 2.0+
* PowerShell 3.0+
* Visual Studio 2010+
* JAVA_HOME environment variable set to the corresponding JDK (x64 or x86)
* Apache Maven bin directory in PATH, or MAVEN_HOME environment variable

Building binaries:
  build.bat -skipCodeAnalysis
Resulting binaries will be in bin folder, and NuGet packages in nupkg folder.

Running built binaries: resulting "bin" folder is self contained, you can copy it anywhere and run
  bin\Apache.Ignite.exe  
  
Running examples and Apache.Ignite.exe from project directories:
  Set IGNITE_NATIVE_TEST_CLASSPATH environment variable to "true"


Cross-Platform Support
======================

Main Apache.Ignite.sln solution targets .NET 4.0 & VS 2010: we care for backwards compatibility.

However, this does not prevent us from supporting .NET Standard 2.0 and .NET Core 2.0,
because of ".NET Framework compatibility mode", which allows referencing any libraries
from .NET Core 2.0 projects. So we release binaries which target .NET 4.0, and they work
both with .NET 4.0+ and .NET Core 2.0+.
  

Cross-Platform Development with .NET Core (Linux, macOS)
========================================

Ignite.NET can be built, developed, and tested with .NET Core on Linux and macOS, but only partially.
A subset of functionality and tests is available. See Apache.Ignite.DotNetCore.sln.

Requirements:
* .NET Core SDK (2.1.4+): https://www.microsoft.com/net/download/linux
* JDK 8+: sudo apt-get install default-jdk
* Maven: sudo apt-get install maven
* IDE: Not required. Rider is recommended. VSCode works, but has issues with tests.

Getting started:
* Build Java and .NET:
  ./build.sh
* Run tests:
  cd Apache.Ignite.Core.Tests.DotNetCore
  dotnet test --logger "console;verbosity=detailed"
* Run specific test:
  dotnet test --filter CacheTest --logger "console;verbosity=detailed"
* IDE: Open Apache.Ignite.DotNetCore.sln


Cross-Platform Development with Mono (Linux, macOS)
========================================

Full Ignite.NET solution can be built, developed, and tested with Mono.

Requirements:
* Mono: http://www.mono-project.com/download/ (6.x may not work due to https://github.com/mono/mono/issues/18418)
* NuGet: sudo apt-get install nuget
* JDK: sudo apt-get install default-jdk
* Maven: sudo apt-get install maven
* PowerShell Core: https://github.com/PowerShell/PowerShell
* IDE: Not required. Rider is recommended, MonoDevelop also works.

Getting started:
* Build Java and .NET:
  pwsh ./build.ps1 -skipDotNetCore
* Run tests: 
  mono Apache.Ignite.Core.Tests/bin/Debug/Apache.Ignite.Core.Tests.exe -basicTests
