You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Introduction

Ignite.NET is built on top of Ignite and provides native APIs for .NET developers.

Requirements

  • Oracle JDK 7+
  • .NET Framework 4.0+
  • PowerShell 3.0+
  • Visual Studio 2010+
  • Apache Maven

Getting Started With Modern Tooling

Even though Ignite.NET can be developed and run on VS2010 and JDK7, it is more common to use latest Visual Studio and JDK.

Assuming that we are on up-to-date Windows x64 installation:

Install software

  1. Install Java JDK (not JRE): http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. Set JAVA_HOME environment variable to point to the JDK installation directory (something like "C:\Program Files\Java\jdk1.8.0_111")
  3. Download and unzip Apache Maven to some folder: https://maven.apache.org/download.cgi
  4. Add Maven bin folder to PATH environment variable (example: "c:\Programs\Maven\apache-maven-3.3.9\bin\")
  5. Install Visual Studio 2015 (free Community Edition will do). There are known issues with 2017 RC.

Get source code

For more details on working with GitHub forks and pull requests see How to Contribute#GitProcess

Build Java sources

In root source folder execute "mvn clean package -DskipTests" command.

When doing pure .NET development, you only need to run this every time you update your branch from master.

Build .NET sources

  • Open modules\platforms\dotnet\Apache.Ignite.sln in Visual Studio
  • Confirm a proposal to upgrade C++ compilers and libraries (you can also do this later by right-clicking the solution in Solution Explorer and clicking "Retarget solution"
  • Switch to x64 platform (you don't need AnyCPU for development - it is slower to build and requires x86 JDK installation)
  • Build solution

Upgrading C++ compilers and libraries causes two vcxproj files to be modified. You should not commit them, but they get in the way. To fix this, execute the following PowerShell command in the root folder:

  • ls *.vcxproj -Recurse | % {git update-index --assume-unchanged $_.FullName}

This command can be reverted by:

  • ls *.vcxproj -Recurse | % {git update-index --no-assume-unchanged $_.FullName}

Running Unit Tests

Ignite.NET uses NUnit for unit tests. You can run them with ReSharper right away, or with NUnit Test Adapter for Visual Studio.

  • Make sure to disable assembly shadow copy in unit test runner settings

Running Tests On TeamCity

  • Ignite uses TeamCity-based continuous integration: http://ci.ignite.apache.org/
  • If you do .NET-only development, you are interested only in test suites having "Platform.NET" in the name
  • Create an account to be able to start new runs
  • .NET NuGet suite can be used to produce release NuGet binaries (see Artifacts tab of a finished build)

Coding Guidelines

  • Ignite.NET follows standard MSDN Framework Design Guidelines in regards to naming, project and namespace structure, type design, etc.
  • Private fields should be _underscoreCamelCase (this is not covered by guidelines above)
  • Non-private instance fields are not allowed

Coding guidelines compliance is checked by .NET Inspections TeamCity suite (it runs Visual Studio inspections and ReSharper inspections).

 

  • No labels