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

Requirements:
* Windows (XP and up), Windows Server (2008 and up)
* Oracle JDK 8 or 11
* .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+): https://www.microsoft.com/net/download/linux
* JDK 8 or JDK 11: apt install openjdk-8-jdk
* Maven: apt install maven
* IDE: Not required. Rider or VSCode works.

Getting started:
* Build Java and .NET:
  ./build.sh

* Run tests:
  cd Apache.Ignite.Core.Tests
  dotnet test Apache.Ignite.Core.Tests.DotNetCore.csproj

* Run specific test:
  dotnet test Apache.Ignite.Core.Tests.DotNetCore.csproj --filter CacheTest  

* Run a smaller subset of tests - exclude long tests and examples tests:
  dotnet test Apache.Ignite.Core.Tests.DotNetCore.csproj --filter "TestCategory!=LONG_TEST&TestCategory!=EXAMPLES_TEST"

* 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: apt install nuget
* JDK 8 or JDK 11: apt install openjdk-8-jdk
* Maven: apt install maven
* PowerShell Core: https://github.com/PowerShell/PowerShell
* IDE: Not required.

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
