<% set_title(product_name_long, "Native", product_version, "Documentation") %>

<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

Published September 21, 2018

The <%=vars.product_name_long%> Native Client is a library that provides access for C++ and Microsoft<sup>®</sup> .NET™ clients to a <%=vars.product_name%> distributed system.

See the API docs in their staging (pre-production) locations for API details:

  - [C++ API docs](https://gemfire-nc-100-cppdocs.cfapps.io)
  - [.NET API docs](https://gemfire-nc-100-dotnetdocs.cfapps.io)

See the [_<%=vars.product_name_long%> User Guide_](/serverman/about_<%=vars.product_name.downcase%>.html) for information regarding the server.

