.NET Application Development Walkthrough

This section describes how to set up a .NET native client development environment using C# and CMake.

Prerequisites

This walkthrough assumes that certain components are in place:

  • The GemFire Native Client libraries. Install the Native Client as described in Getting Started with the Native Client. Follow the ease-of-use recommendations by installing the Native Client in C:\Program Files\nativeclient.

  • The CMake tool suite. Download and install CMake, following the instructions on cmake.org.

  • Geode: Install and configure Geode. See the Geode User’s Guide for instructions and system requirements.

  • Visual Studio 2015 or higher and .NET 4.5.2.

To develop a Native Client application using .NET and CMake:

  • Create a project directory structure
  • Populate the project directories with C# source code
  • Configure the CMake build environment
  • Run CMake to configure your application
  • Build and run your application using Visual Studio

Setting up Directories and Sources

  1. Create a project directory structure. In this example, the project is called MyProject. The directory structure provides a place for your application source files and a cmake modules directory for project-specific CMake files:

    MyProject\
      cmake\
        FindGemFireNative.cmake
      CMakeLists.txt
      Program.cs
    
  2. Change directory to MyProject and create your application sources. In this example, we have one source file, Program.cs.

Configuring CMake

  1. Copy the FindGemFireNative.cmake script from one of the Native Client examples to the cmake subdirectory.

  2. Create CMakeLists.txt. Copy the file from an example, if you like, as a starting point. The CMakeLists.txt file should contain the following CMake instructions:

  • CMake minimum version

    cmake_minimum_required(VERSION 3.10)
    
  • Your project name and language

    project(MyProject LANGUAGES CSharp)
    
  • Path to the CMake modules directory where the FindGemFireNative.cmake script is located and an instruction telling CMake to use it:

    set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
    find_package(GemFireNative REQUIRED COMPONENTS dotnet)
    
  • The compilation target and the source(s) to be compiled

    add_executable(MyProject Program.cs)
    
    target_link_libraries(MyProject
      PUBLIC
        GemFireNative::dotnet)
    
    set_target_properties(MyProject PROPERTIES
        VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.5.2"
        VS_DOTNET_REFERENCES "System;${GemFireNative_DOTNET_LIBRARY}")
    

Combined, the above elements comprise the following CMakeLists.txt:

# CMakeLists.txt for .NET Native Client App
cmake_minimum_required(VERSION 3.10)

project(MyProject LANGUAGES CSharp)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

find_package(GemFireNative REQUIRED COMPONENTS dotnet)

add_executable(MyProject Program.cs)

target_link_libraries(MyProject
  PUBLIC
    GemFireNative::dotnet)

set_target_properties(MyProject PROPERTIES
    VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.5.2"
    VS_DOTNET_REFERENCES "System;${GemFireNative_DOTNET_LIBRARY}")

Configuring the App

  1. Create a build directory and set it as your current directory:

    $ mkdir build
    $ cd build
    
  2. Run CMake to configure the build:

    $ cmake ..
    

This creates a Visual Studio solution for your .NET application. For example, MyProject.sln.

Building and Running the App

Open the solution file in Visual Studio and build the project.