﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.10.0/dotnetdoc/api/Apache.Ignite.Core.Client.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<!-- Yandex.Metrika counter -->
    <script type="text/javascript" >
      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
    
      ym(72949126, "init", {
           clickmap:true,
           trackLinks:true,
           accurateTrackBounce:true,
           webvisor:true
      });
    </script>
    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    <!-- /Yandex.Metrika counter -->
<script type='text/javascript'>
    window.__lo_site_id = 284467;
    
      (function() {
        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
        })();
      </script>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Namespace Apache.Ignite.Core.Client
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Apache.Ignite.Core.Client
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.0">
    
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
    
      gtag('config', 'UA-61232409-1');
    </script></head>
  <body data-spy="scroll" data-target="#affix">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Client">
  
  <h1 id="Apache_Ignite_Core_Client" data-uid="Apache.Ignite.Core.Client" class="text-break">Namespace Apache.Ignite.Core.Client
  </h1>
  <div class="markdown level0 summary"></div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">Classes
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.IgniteClientConfiguration.html">IgniteClientConfiguration</a></h4>
      <section><p>Ignite thin client configuration.
<p>
Ignite thin client connects to a specific Ignite node with a socket and does not start JVM in process.
This configuration should correspond to <a class="xref" href="Apache.Ignite.Core.IgniteConfiguration.html#Apache_Ignite_Core_IgniteConfiguration_ClientConnectorConfiguration">ClientConnectorConfiguration</a>
on a target node.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.IgniteClientConfigurationSection.html">IgniteClientConfigurationSection</a></h4>
      <section><p>Ignite configuration section for app.config and web.config files.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.IgniteClientException.html">IgniteClientException</a></h4>
      <section><p>Ignite thin client exception.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.SslStreamFactory.html">SslStreamFactory</a></h4>
      <section><p>Predefined SSL stream factory, loads certificate from specified file.</p>
</section>
    <h3 id="interfaces">Interfaces
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.IClientCluster.html">IClientCluster</a></h4>
      <section><p>Represents whole cluster (group of all nodes in a cluster).</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.IClientClusterGroup.html">IClientClusterGroup</a></h4>
      <section><p>Defines grid projection which represents a common functionality over a group of nodes.
Grid projection allows to group Ignite nodes into various subgroups to perform distributed
operations on them. All ForXXX(...)&apos; methods will create a child grid projection
from existing projection. If you create a new projection from current one, then the resulting
projection will include a subset of nodes from current projection. The following code snippet
shows how to create grid projections:</p>
<pre><code>var g = Ignition.StartClient().GetCluster();

// Projection over .NET nodes.
var remoteNodes = g.ForDotNet();

// Projection over server nodes.
var randomNode = g.ForServers();

// Projection over all nodes that have user attribute &quot;group&quot; set to value &quot;worker&quot;.
var workerNodes = g.ForAttribute(&quot;group&quot;, &quot;worker&quot;);</code></pre>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.IClientClusterNode.html">IClientClusterNode</a></h4>
      <section><p>Interface representing a single cluster node obtained through a thin client.
You can get a list of all nodes in grid by calling <a class="xref" href="Apache.Ignite.Core.Client.IClientClusterGroup.html#Apache_Ignite_Core_Client_IClientClusterGroup_GetNodes">GetNodes()</a>.
<p>
You can use Ignite node attributes to provide static information about a node.
This information is initialized once within grid, during node startup, and
remains the same throughout the lifetime of a node. 
<p>
All members are thread-safe and may be used concurrently from multiple threads.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.IClientConnection.html">IClientConnection</a></h4>
      <section><p>Represents Ignite client connection.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.IIgniteClient.html">IIgniteClient</a></h4>
      <section><p>Main entry point for Ignite Thin Client APIs.
You can obtain an instance of <a class="xref" href="Apache.Ignite.Core.Client.IIgniteClient.html">IIgniteClient</a> through one of the
<a class="xref" href="Apache.Ignite.Core.Ignition.html#Apache_Ignite_Core_Ignition_StartClient">StartClient()</a> overloads.
<p>
Instances of this class and all nested APIs are thread safe.</p>
</section>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.ISslStreamFactory.html">ISslStreamFactory</a></h4>
      <section><p>SSL Stream Factory defines how SSL connection is established.</p>
</section>
    <h3 id="enums">Enums
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Client.ClientStatusCode.html">ClientStatusCode</a></h4>
      <section><p>Client status codes (see <a class="xref" href="Apache.Ignite.Core.Client.IgniteClientException.html#Apache_Ignite_Core_Client_IgniteClientException_StatusCode">StatusCode</a>).</p>
</section>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            © 2015 - 2019 The Apache Software Foundation
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
