GEODE-8593: Update NC examples to use Builder pattern (.NET) (#689)

* GEODE-8593: Update NC examples to use Builder pattern (.NET)
* Modify locator port (40404 -> 10334) per reviewer's advice
* Clarify that declarative config is XML file-based
diff --git a/docs/geode-native-book-dotnet/master_middleman/source/subnavs/geode-nc-nav.erb b/docs/geode-native-book-dotnet/master_middleman/source/subnavs/geode-nc-nav.erb
index 65c2fd0..c3ed8b8 100644
--- a/docs/geode-native-book-dotnet/master_middleman/source/subnavs/geode-nc-nav.erb
+++ b/docs/geode-native-book-dotnet/master_middleman/source/subnavs/geode-nc-nav.erb
@@ -66,38 +66,16 @@
     </li>
 
     <li class="has_submenu">
-        <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/connection-pools.html">Using Connection Pools</a>
+        <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/configuring-pools.html">Configuring Pools</a>
         <ul>
-            <li class="has_submenu">
-                <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/client-load-balancing.html">How Client Load Balancing Works</a>
-                <ul>
-                    <li>
-                        <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/about-server-locators.html">Server Locators</a>
-                    </li>
-                    <li>
-                        <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/about-connection-pools.html">Connection Pools</a>
-                    </li>
-                    <li>
-                        <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/discovering-locators-dynamically.html">Discovering Locators Dynamically</a>
-                    </li>
-                </ul>
+            <li>
+                <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/client-pool-api.html">Native Client Pool API</a>
             </li>
-            <li class="has_submenu">
-                <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/configuring-pools.html">Configuring Pools</a>
-                <ul>
-                    <li>
-                        <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/client-pool-api.html">Native Client Pool API</a>
-                    </li>
-                    <li>
-                        <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/configuring-pools-attributes-example.html">Pool Configuration Example and Settings</a>
-                    </li>
-                    <li>
-                        <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/subscription-properties.html">Subscription Properties</a>
-                    </li>
-                    <li>
-                        <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/running-connection-pool-code.html">Running the Connection Pool Code</a>
-                    </li>
-                </ul>
+            <li>
+                <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/configuring-pools-attributes-example.html">Pool Configuration Example and Settings</a>
+            </li>
+            <li>
+                <a href="/docs/geode-native/<%=vars.product_language%>/<%=vars.product_version_nodot%>/connection-pools/subscription-properties.html">Subscription Properties</a>
             </li>
         </ul>
     </li>
diff --git a/docs/geode-native-docs-cpp/connection-pools/configuring-pools-attributes-example.html.md.erb b/docs/geode-native-docs-cpp/connection-pools/configuring-pools-attributes-example.html.md.erb
index 1509540..9b81ca3 100644
--- a/docs/geode-native-docs-cpp/connection-pools/configuring-pools-attributes-example.html.md.erb
+++ b/docs/geode-native-docs-cpp/connection-pools/configuring-pools-attributes-example.html.md.erb
@@ -36,6 +36,7 @@
       .createFactory()
       .addLocator("localhost", 34756)
       .setFreeConnectionTimeout(std::chrono::milliseconds(12345))
+      .setIdleTimeout(std::chrono::milliseconds(5555))
       .setLoadConditioningInterval(std::chrono::milliseconds(23456))
       .setMaxConnections(7)
       .setMinConnections(3)
@@ -54,9 +55,9 @@
 ```
 
 
-## Declarative Pool Configuration
+## Declarative (File-based) Pool Configuration
 
-This example shows a declarative pool configuration. Following the example is a table that describes the XML pool attributes you can configure.
+This example shows a file-based pool configuration using an XML configuration file. Following the example is a table that describes the XML pool attributes you can configure.
 
 **Note:**
 You create an instance of `PoolFactory` through `PoolManager`.
diff --git a/docs/geode-native-docs-cpp/regions/regions.html.md.erb b/docs/geode-native-docs-cpp/regions/regions.html.md.erb
index 357d499..c9e3e80 100644
--- a/docs/geode-native-docs-cpp/regions/regions.html.md.erb
+++ b/docs/geode-native-docs-cpp/regions/regions.html.md.erb
@@ -54,19 +54,19 @@
 cache.getPoolManager()
     .createFactory()
     .addLocator("localhost", 10334)
-    .create("pool");
+    .create("examplePool");
 
 auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
 auto regionFactory2 = cache.createRegionFactory(RegionShortcut::CACHING_PROXY);
 
 auto region = regionFactory
-    .setPoolName("pool")
-    .create("example_userinfo");
+    .setPoolName("examplePool")
+    .create("clientRegion1");
 
 auto region2 = regionFactory2
-    .setPoolName("pool")
+    .setPoolName("examplePool")
     .setEntryTimeToLive(ExpirationAction::INVALIDATE, std::chrono::seconds(120))
-    .create("example_userinfo2");
+    .create("clientRegion2");
 ```
 
 ## <a id="declarative-region-creation"></a>Declarative Region Creation
@@ -85,7 +85,7 @@
       http://geode.apache.org/schema/cpp-cache/cpp-cache-1.0.xsd"
     version="1.0">
     <pool name="examplePool" subscription-enabled="true">
-        <server host="localhost" port="40404" />
+        <server host="localhost" port="10334" />
     </pool>
     <region name="clientRegion1" refid="PROXY">
         <region-attributes pool-name="examplePool"/>
diff --git a/docs/geode-native-docs-dotnet/connection-pools/about-connection-pools.html.md.erb b/docs/geode-native-docs-dotnet/connection-pools/about-connection-pools.html.md.erb
deleted file mode 100644
index 2f66e68..0000000
--- a/docs/geode-native-docs-dotnet/connection-pools/about-connection-pools.html.md.erb
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title:  Connection Pools
----
-
-<!--
-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.
--->
-
-Clients contain connection pools. Each region is associated with a connection pool using a region attribute, and operations on the region use connections from the respective pools.
-
-The server connectivity options are specified in the connection pool configuration. Each pool has a minimum and maximum number of connections.
-
-Each cache operation that requires server connectivity obtains a connection from the pool for the server group that the operation affects, performs the operation using the connection, and returns the connection to the pool. If the pool size is less than the maximum number of connections and all connections are in use, the connection pool creates a new connection and returns it. If the pool is at the maximum number of connections, that thread blocks until a connection becomes available or a `free-connection-timeout` occurs. If a `free-connection-timeout` occurs, an `AllConnectionsInUse` exception is thrown.
-
-The connection pool has a configurable timeout period that is used to expire idle connections. The idle connections are expired until the pool has the minimum number of connections. A monitoring thread expires idle connections, adds sufficient connections to bring up the count to minimum, and closes connections whose lifetime has been exceeded. See the `load-conditioning-interval` and `idle-timeout` attributes of the [&lt;pool&gt;](../../reference/topics/client-cache.html#cc-pool) element. A separate thread (ping) tests each connected endpoint for its status and if the endpoint is not reachable, the thread closes all connections that have been made to the endpoint. See the `ping-interval` attribute of the &lt;pool&gt; element&gt;.
-
-<a id="client-load-balancing__fig_226964BAA1464DBA9F5CEDC2CB7B3585"></a>
-<span class="figtitleprefix">Figure: </span>Logical Architecture of Client/Server Connections
-
-<img src="../images/client-server-arch.gif" id="client-load-balancing__image_1E8316666E1B4CC2ADE4D927B629E49F" class="image" />
-
-When a connection receives an exception, the operation is failed over to another connection from the pool. The failover mechanism obtains the endpoint to failover to from the locator or from the specified endpoint list in the pool.
-
-
diff --git a/docs/geode-native-docs-dotnet/connection-pools/about-server-locators.html.md.erb b/docs/geode-native-docs-dotnet/connection-pools/about-server-locators.html.md.erb
deleted file mode 100644
index d637df3..0000000
--- a/docs/geode-native-docs-dotnet/connection-pools/about-server-locators.html.md.erb
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title:  Server Locators
----
-
-<!--
-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.
--->
-
-Server locators continuously monitor server availability and server load information. The client is configured with a list of server locators and consults a server locator to request a connection to a server in the distributed system.
-
-Locators provide clients with dynamic server discovery and server load balancing. They give clients connection information for the server with the least load at any given time.
-
-Server locators provide these main features:
-
--   **Automated discovery of servers and locators**. Adding and removing servers or locators is made easy as each client does not require a list of servers to be configured at the time of pool creation.
--   **Client load rebalancing**. Server locators give clients dynamic server information and provide server load rebalancing after servers depart or join the system.
--   **High availability**. When a client/server connection receives an exception, the connection is automatically failed over to another available connection in the pool. Redundancy is also provided for client subscriptions.
-
-Alternatively, you can configure a pool statically with a list of endpoints. When the pools are statically configured, a round-robin load balancing policy is used to distribute connections across the servers.
-
-
diff --git a/docs/geode-native-docs-dotnet/connection-pools/client-load-balancing.html.md.erb b/docs/geode-native-docs-dotnet/connection-pools/client-load-balancing.html.md.erb
deleted file mode 100644
index 7f5cebf..0000000
--- a/docs/geode-native-docs-dotnet/connection-pools/client-load-balancing.html.md.erb
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title:  How Client Load Balancing Works
----
-
-<!--
-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.
--->
-
-In a distributed system, servers can be added or removed and their capacity to service new client connections may vary. The server connectivity options are specified in the connection pool configuration.
-
-The connection pool API supports connecting to servers through server locators or directly connecting to servers.
-
--   **[Server Locators](about-server-locators.html)**
-
-    Server locators continuously monitor server availability and server load information. The client is configured with a list of server locators and consults a server locator to request a connection to a server in the distributed system.
-
--   **[Connection Pools](about-connection-pools.html)**
-
-    Clients contain connection pools. Each region is associated with a connection pool using a region attribute, and operations on the region use connections from the respective pools.
-
--   **[Discovering Locators Dynamically](discovering-locators-dynamically.html)**
-
-    A background thread periodically queries the locator for any other locators joining the distributed system.
-
-
diff --git a/docs/geode-native-docs-dotnet/connection-pools/client-pool-api.html.md.erb b/docs/geode-native-docs-dotnet/connection-pools/client-pool-api.html.md.erb
index 6bb7047..d7e9f80 100644
--- a/docs/geode-native-docs-dotnet/connection-pools/client-pool-api.html.md.erb
+++ b/docs/geode-native-docs-dotnet/connection-pools/client-pool-api.html.md.erb
@@ -23,9 +23,6 @@
 
 This section lists the primary native client API for pool management. For complete information on the classes and interfaces described here, see the API documentation.
 
-**Note:**
-Only C\# versions of Pool API interfaces, classes, and methods are shown throughout the text in this section (example: `Pool.GetQueryService()`) . The code examples demonstrate both C++ and C\# versions.
-
 **Apache.Geode.Client.Cache**
 
 -   `Pool` interface. API to retrieve pool attributes.
diff --git a/docs/geode-native-docs-dotnet/connection-pools/configuring-pools-attributes-example.html.md.erb b/docs/geode-native-docs-dotnet/connection-pools/configuring-pools-attributes-example.html.md.erb
index 4696143..285fdc3 100644
--- a/docs/geode-native-docs-dotnet/connection-pools/configuring-pools-attributes-example.html.md.erb
+++ b/docs/geode-native-docs-dotnet/connection-pools/configuring-pools-attributes-example.html.md.erb
@@ -25,11 +25,38 @@
 -   Server. Host and port where a server is listening.
 -   Pool. Client/server connection pool.
 
-The example shows a declarative pool configuration. Following the example is a table that describes the attributes that can be configured.
+This page shows examples of creating a pool configuration programmatically using C# code, and declaratively using XML.
 
-## Example—Declarative Pool Configuration
+## Programmatic Pool Configuration
 
-This example shows a declarative pool configuration.
+This example shows a programmatic pool configuration. For a list of the attributes you can configure, see `PoolFactory` in the API docs.
+
+```csharp
+cache.GetPoolManager()
+      .CreateFactory()
+      .AddLocator("localhost", 34756)
+      .SetFreeConnectionTimeout(new TimeSpan.FromMilliseconds(12345))
+      .SetIdleTimeout(new TimeSpan.FromMilliseconds(5555))
+      .SetLoadConditioningInterval(new TimeSpan.FromMilliseconds(23456))
+      .SetMaxConnections(7)
+      .SetMinConnections(3)
+      .SetPingInterval(new TimeSpan.FromMilliseconds(12345))
+      .SetReadTimeout(new TimeSpan.FromMilliseconds(23456))
+      .SetRetryAttempts(3)
+      .SetServerGroup("ServerGroup1")
+      .SetSocketBufferSize(32768)
+      .SetStatisticInterval(new TimeSpan.FromMilliseconds(10123))
+      .SetSubscriptionAckInterval(new TimeSpan.FromMilliseconds(567))
+      .SetSubscriptionEnabled(true)
+      .SetSubscriptionMessageTrackingTimeout(new TimeSpan.FromMilliseconds(900123))
+      .SetSubscriptionRedundancy(0)
+      .SetThreadLocalConnections(true)
+      .Create("test_pool_1");
+```
+
+## Declarative (File-based) Pool Configuration
+
+This example shows a file-based pool configuration using an XML configuration file. Following the example is a table that describes the XML pool attributes you can configure.
 
 **Note:**
 You create an instance of `PoolFactory` through `PoolManager`.
diff --git a/docs/geode-native-docs-dotnet/connection-pools/configuring-pools.html.md.erb b/docs/geode-native-docs-dotnet/connection-pools/configuring-pools.html.md.erb
index 848c27a..5934b27 100644
--- a/docs/geode-native-docs-dotnet/connection-pools/configuring-pools.html.md.erb
+++ b/docs/geode-native-docs-dotnet/connection-pools/configuring-pools.html.md.erb
@@ -35,8 +35,4 @@
 
     Each connection pool has a single subscription connection that can be to any server that matches the requirements of the connection pool.
 
--   **[Running the Connection Pool Code](running-connection-pool-code.html)**
-
-    Examples demonstrate a simple procedure to create a pool factory and then create a pool instance in C++ and C\#. They also help you to execute a query.
-
 
diff --git a/docs/geode-native-docs-dotnet/connection-pools/connection-pools.html.md.erb b/docs/geode-native-docs-dotnet/connection-pools/connection-pools.html.md.erb
deleted file mode 100644
index e57778d..0000000
--- a/docs/geode-native-docs-dotnet/connection-pools/connection-pools.html.md.erb
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title:  Using Connection Pools
----
-
-<!--
-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.
--->
-
-*Using Connection Pools* describes how connection pools achieve load balancing for the client and describes how to configure connection pools as server locators or as a list of servers.
-
--   **[How Client Load Balancing Works](client-load-balancing.html)**
-
-    In a distributed system, servers can be added or removed and their capacity to service new client connections may vary. The server connectivity options are specified in the connection pool configuration.
-
--   **[Configuring Pools](configuring-pools.html)**
-
-    A pool can be configured as locators or as a list of servers.
-
-
diff --git a/docs/geode-native-docs-dotnet/connection-pools/discovering-locators-dynamically.html.md.erb b/docs/geode-native-docs-dotnet/connection-pools/discovering-locators-dynamically.html.md.erb
deleted file mode 100644
index e00bed0..0000000
--- a/docs/geode-native-docs-dotnet/connection-pools/discovering-locators-dynamically.html.md.erb
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title:  Discovering Locators Dynamically
----
-
-<!--
-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.
--->
-
-A background thread periodically queries the locator for any other locators joining the distributed system.
-
-However, if locator A (to which the client is connected) goes down before it discovers locator B, locator B is never discovered even though it is alive and the client receives a `NoLocatorsAvailable` exception.
-
-One connection is attached to every application thread that is `local` to the respective thread. This is known as a thread local connection.
-
-In this case, to perform any cache operation the client is not required to obtain a connection from pool. Instead the thread local connection of the client is used.
-
-A thread local connection can be released by invoking the `Pool::releaseThreadLocalConnection()` method. The released connection is returned to the pool. If the number of threads is larger than the number of `max-connections`, the client throws an `AllConnectionsInUseException` after the `free-connection-timeout` lapses, unless the `Pool::releaseThreadLocalConnection()` method is used judiciously.
-
-If a connection expires or the server goes down on which the connection was established, a thread local connection is immediately replaced with a good connection obtained from the pool.
-
-
diff --git a/docs/geode-native-docs-dotnet/connection-pools/running-connection-pool-code.html.md.erb b/docs/geode-native-docs-dotnet/connection-pools/running-connection-pool-code.html.md.erb
deleted file mode 100644
index 784527f..0000000
--- a/docs/geode-native-docs-dotnet/connection-pools/running-connection-pool-code.html.md.erb
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title:  Running the Connection Pool Code
----
-
-<!--
-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.
--->
-
-Examples demonstrate a simple procedure to create a pool factory and then create a pool instance in C++ and C\#. They also help you to execute a query.
-
-The examples create a pool with locators. Ensure that you create a pool with locators or endpoints, but not both. The first example demonstrates creating a pool by adding locators. The second example demonstrates creating a pool by adding servers.
-
-## Connection Pool Creation and Execution Using C++
-
-``` pre
-PropertiesPtr prptr = Properties::create();
-systemPtr = CacheFactory::createCacheFactory(prptr);
-
-cachePtr = systemPtr->create();
-PoolFactoryPtr poolFacPtr = PoolManager::createFactory();
-//to create pool add either endpoints or add locators or servers
-//pool with endpoint, adding to pool factory
-//poolFacPtr->addServer("localhost", 12345 /*port number*/);
-//pool with locator, adding to pool factory
-poolFacPtr->addLocator("localhost", 34756 /*port number*/);
-PoolPtr pptr = NULLPTR;
-if ((PoolManager::find("examplePool")) == NULLPTR) {
-  // Pool with this name does not exist
-  pptr = poolFacPtr->create("examplePool");
-}
-RegionFactoryPtr regionFactory =
-    cachePtr->createRegionFactory(CACHING_PROXY);
-regionPtr = regionFactory
-    ->setPoolName("examplePool")
-    ->create("regionName");
-QueryServicePtr qs = cachePtr->getQueryService("examplePool");
-```
-
-## Connection Pool Creation and Execution Using C\# .NET
-
-``` pre
-Properties prop = Properties.Create();
-CacheFactory cacheFactory = CacheFactory.CreateCacheFactory(prop);
-Cache cache = cacheFactory.Create();
-
-PoolFactory poolFact = PoolManager.CreateFactory();
-//to create pool add either endpoints or add locators
-//pool with endpoint, adding to pool factory.
-poolFact.AddServer("localhost", 40404 /*port number*/);
-//pool with locator, adding to pool factory
-//poolFact.AddLocator("hostname", 15000 /*port number*/);
-Pool pool = null;
-if (PoolManager.Find("poolName") == null) {
-  pool = poolFact.Create("poolName");
-}
-int loadConditInterval = pool.LoadConditioningInterval;
-RegionFactory regionFactory =
-    cache.CreateRegionFactory(RegionShortcut.CACHING_PROXY);
-IRegion<string, string> region =
-    regionFactory.SetPoolName(poolName).Create<string, string>(regionName);
-```
-
-
diff --git a/docs/geode-native-docs-dotnet/getting-started/getting-started-nc-client.html.md.erb b/docs/geode-native-docs-dotnet/getting-started/getting-started-nc-client.html.md.erb
index 270b655..1ee5324 100644
--- a/docs/geode-native-docs-dotnet/getting-started/getting-started-nc-client.html.md.erb
+++ b/docs/geode-native-docs-dotnet/getting-started/getting-started-nc-client.html.md.erb
@@ -34,41 +34,38 @@
 
 To connect to a server, your application must follow these steps:
 
-1. Instantiate a `CacheFactory`, setting characteristics of interest (for example, `log-level`).
-1. Create a cache and use it to instantiate a `PoolFactory`, specifying the hostname and port for the server locator.
-1. Create a named pool of network connections.
-1. Instantiate a region of the desired type (usually CACHING_PROXY or PROXY) and connect it by name to its counterpart on the server.
+1. Create a cache, setting characteristics of interest (for example, `log-level`).
+1. Use the cache to create a named pool of network connections, specifying the hostname and port for at least one server locator.
+1. Instantiate a region of the desired type (usually PROXY, sometimes CACHING_PROXY) and connect it by name to its counterpart on the server.
 
 Once the connection pool and the shared region are in place, your client application is ready to share data with the server.
 
 **Server Connection: .NET Example**
 
-This example of connecting to the server is taken from the .NET `PutGetRemove` example.
-
-Instantiate a `CacheFactory` and set its characteristics:
+Create a cache and set its characteristics:
 
 ``` csharp
-    var cacheFactory = new CacheFactory()     // instantiate cache factory
-        .Set("log-level", "none");            // set cache log-level characteristics
+var cache = new CacheFactory()
+    .Set("log-level", "none")
+    .SetAuthInitialize(new ExampleAuthInitialize())
+    .Create();
 ```
 
-Create a cache and use it to instantiate a `PoolFactory`:
+Use the cache to create a named pool of network connections, specifying the hostname and port for the server locator:
 
 ``` csharp
-    var cache = cacheFactory.Create();        // create cache
-
-    var poolFactory = cache.GetPoolFactory()  // instantiate pool factory
-        .AddLocator("localhost", 10334);      // add locator to pool factory
+cache.GetPoolManager()
+    .CreateFactory()
+    .AddLocator("localhost", 10334)
+    .Create("pool");
 ```
 
-Create a named pool of network connections, and instantiate a region of the desired type:
+Instantiate a region of the desired type and connect to the pool by name:
 
 ``` csharp
-    poolFactory.Create("pool");               // create a pool called "pool" that knows where the server is
-
-    var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY) // instantiate region factory with PROXY characteristics
-        .SetPoolName("pool");
-    var region = regionFactory.Create<string, string>("example_userinfo"); // create a connection to the region "example_userinfo" on the server
+var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
+    .SetPoolName("pool");
+var region = regionFactory.Create<string, string>("example_userinfo");
 ```
 
 See the _<%=vars.product_name%> User Guide_ section [Configuring a Client/Server System](serverman/topologies_and_comm/cs_configuration/setting_up_a_client_server_system.html)
diff --git a/docs/geode-native-docs-dotnet/getting-started/put-get-example.html.md.erb b/docs/geode-native-docs-dotnet/getting-started/put-get-example.html.md.erb
index 6aa61bb..30dc2a7 100644
--- a/docs/geode-native-docs-dotnet/getting-started/put-get-example.html.md.erb
+++ b/docs/geode-native-docs-dotnet/getting-started/put-get-example.html.md.erb
@@ -26,6 +26,7 @@
 The example performs a sequence of operations, displaying simple log entries as they run.
 
 - To run the example, follow the instructions in the `README.md` file in the example directory.
+
 - Review the source code in the example directory to see exactly how it operates.
 
 - Begin by running a script that sets up the server-side environment by invoking `gfsh` commands to create a region, simply called "example_userinfo."
@@ -45,42 +46,43 @@
 The .NET example creates a cache, then uses it to create a connection pool and a region object (of class `IRegion`).
 
 ```csharp
-   var cacheFactory = new CacheFactory()
-       .Set("log-level", "none");
-   var cache = cacheFactory.Create();
+  var cache = new CacheFactory()
+      .Set("log-level", "none")
+      .Create();
 
-   var poolFactory = cache.GetPoolFactory()
-       .AddLocator("localhost", 10334);
-   poolFactory.Create("pool");
+  cache.GetPoolManager()
+      .CreateFactory()
+      .AddLocator("localhost", 10334)
+      .Create("pool");
 
-   var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
-       .SetPoolName("pool");
-   var region = regionFactory.Create<string, string("example_userinfo");
+  var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
+      .SetPoolName("pool");
+  var region = regionFactory.Create<string, string>("example_userinfo");
 ```
 
 After declaring some keys and values, the client then populates the data store with two key/value pairs. 
 
 ```csharp
-      region.Put(rtimmonsKey, rtimmonsValue);
-      region.Put(scharlesKey, scharlesValue);
+  region.Put(rtimmonsKey, rtimmonsValue);
+  region.Put(scharlesKey, scharlesValue);
 ```
 
 Next, the application retrieves the stored values using `Get` operations.
 
 ```csharp
-      var user1 = region.Get(rtimmonsKey, null);
-      var user2 = region.Get(scharlesKey, null);
+  var user1 = region.Get(rtimmonsKey, null);
+  var user2 = region.Get(scharlesKey, null);
 ```
 
 Finally, the application deletes one of the stored values using the `Remove` method.
 
 ```csharp
-      if (region.Remove(rtimmonsKey))
-      {
-        Console.WriteLine("Info for " + rtimmonsKey + " has been deleted");
-      }
-      else
-      {
-        Console.WriteLine("Info for " + rtimmonsKey + " has not been deleted");
-      }
+  if (region.Remove(rtimmonsKey))
+  {
+    Console.WriteLine("Info for " + rtimmonsKey + " has been deleted");
+  }
+  else
+  {
+    Console.WriteLine("Info for " + rtimmonsKey + " has not been deleted");
+  }
 ```
diff --git a/docs/geode-native-docs-dotnet/regions/regions.html.md.erb b/docs/geode-native-docs-dotnet/regions/regions.html.md.erb
index 5700a16..2dd3f71 100644
--- a/docs/geode-native-docs-dotnet/regions/regions.html.md.erb
+++ b/docs/geode-native-docs-dotnet/regions/regions.html.md.erb
@@ -37,27 +37,34 @@
 
 To create a region:
 
-1. Instantiate a `CacheFactory` and use it to create a cache.
+1. Create a cache using `CacheFactory` to set its characteristics.
 1. The cache includes an instance of `PoolManager`&mdash;use it to create a connection pool.
-1. Use cache to instantiate a `RegionFactory` and use it to create a region, specifying any desired attributes
+1. Use the cache to instantiate a `RegionFactory` and use it to create a region, specifying any desired attributes
 and an association with the connection pool.
 
 ### .NET C# Region Creation Example
 
-This example illustrates how to create a pair of regions using C#:
+This example illustrates how to create two regions with different characteristics using C#:
 
 ``` csharp
-var cache = new CacheFactory().Create();
+var cache = new CacheFactory()
+    .Set("log-level", "none")
+    .Create();
 
 var examplePool = cache.GetPoolManager()
     .CreateFactory()
-    .AddLocator("localhost", 40404)
+    .AddLocator("localhost", 10334)
     .SetSubscriptionEnabled(true)
     .Create("examplePool");
 
 var clientRegion1 = cache.CreateRegionFactory(RegionShortcut.PROXY)
   .SetPoolName("examplePool")
   .Create("clientRegion1");
+
+var clientRegion2 = cache.CreateRegionFactory(RegionShortcut.CACHING_PROXY)
+  .SetPoolName("examplePool")
+  .SetEntryTimeToLive(ExpirationAction.Invalidate, new TimeSpan(0, 0, 120))
+  .Create("clientRegion2");
 ```
 
 ## <a id="declarative-region-creation"></a>Declarative Region Creation
@@ -76,7 +83,7 @@
       http://geode.apache.org/schema/cpp-cache/cpp-cache-1.0.xsd"
     version="1.0">
     <pool name="examplePool" subscription-enabled="true">
-        <server host="localhost" port="40404" />
+        <server host="localhost" port="10334" />
     </pool>
     <region name="clientRegion1" refid="PROXY">
         <region-attributes pool-name="examplePool"/>
diff --git a/docs/geode-native-docs-dotnet/security/authentication.html.md.erb b/docs/geode-native-docs-dotnet/security/authentication.html.md.erb
index b2ed353..4aa255e 100644
--- a/docs/geode-native-docs-dotnet/security/authentication.html.md.erb
+++ b/docs/geode-native-docs-dotnet/security/authentication.html.md.erb
@@ -27,14 +27,13 @@
 
 ### .NET Authentication Example
 
-The following excerpt is taken from the .NET example provided with your Native Client distribution in the `../examples/dotnet/authinitialize` directory.
-
 In this C# authentication example, the `CacheFactory` creation process sets the authentication callback:
 
 ```cs
-  var cacheFactory = new CacheFactory()
-    .Set("log-level", "none")
-    .SetAuthInitialize(new ExampleAuthInitialize());
+  var cache = new CacheFactory()
+      .Set("log-level", "none")
+      .SetAuthInitialize(new ExampleAuthInitialize())
+      .Create();
 ```
 
 Credentials are implemented in the `GetCredentials` member function of the `ExampleAuthInitialize` class, which implements the `IAuthInitialize` interface:
diff --git a/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/pdx-serializable-examples.html.md.erb b/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/pdx-serializable-examples.html.md.erb
index 9635e7f..ed32566 100644
--- a/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/pdx-serializable-examples.html.md.erb
+++ b/docs/geode-native-docs-dotnet/serialization/dotnet-serialization/pdx-serializable-examples.html.md.erb
@@ -105,9 +105,9 @@
 The .NET example mainline creates a cache, then uses it to register the PdxSerializable class that was created in Orders.cs:
 
 ```csharp
-   var cacheFactory = new CacheFactory()
-       .Set("log-level", "none");
-   var cache = cacheFactory.Create();
+var cache = new CacheFactory()
+    .Set("log-level", "none")
+    .Create();
 
    cache.TypeRegistry.RegisterPdxType(Order.CreateDeserializable);
 ```
@@ -115,9 +115,10 @@
 The client creates a connection pool and a region named "example_orderobject":
 
 ```csharp
-   var poolFactory = cache.GetPoolFactory()
-       .AddLocator("localhost", 10334);
-   poolFactory.Create("pool");
+cache.GetPoolManager()
+    .CreateFactory()
+    .AddLocator("localhost", 10334)
+    .Create("pool");
 
    var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
         .SetPoolName("pool");
diff --git a/docs/geode-native-docs-dotnet/transactions.html.md.erb b/docs/geode-native-docs-dotnet/transactions.html.md.erb
index 367d70e..3630d05 100644
--- a/docs/geode-native-docs-dotnet/transactions.html.md.erb
+++ b/docs/geode-native-docs-dotnet/transactions.html.md.erb
@@ -88,13 +88,14 @@
 The .NET example creates a cache, then uses it to create a connection pool.
 
 ```csharp
-   var cache = new CacheFactory()
-       .Set("log-level", "none").Create();
+  var cache = new CacheFactory()
+      .Set("log-level", "none")
+      .Create();
 
-   var poolFactory = cache.GetPoolFactory()
-       .AddLocator("localhost", 10334);
-      
-   poolFactory.Create("pool");
+  cache.GetPoolManager()
+      .CreateFactory()
+      .AddLocator("localhost", 10334)
+      .Create("pool");
 
    var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
        .SetPoolName("pool");
diff --git a/examples/dotnet/authinitialize/Program.cs b/examples/dotnet/authinitialize/Program.cs
index 23f8a2e..0f8d5de 100644
--- a/examples/dotnet/authinitialize/Program.cs
+++ b/examples/dotnet/authinitialize/Program.cs
@@ -24,14 +24,16 @@
   {
     static void Main(string[] args)
     {
-      var cacheFactory = new CacheFactory()
+      var cache = new CacheFactory()
           .Set("log-level", "none")
-          .SetAuthInitialize(new ExampleAuthInitialize());
-
-      var cache = cacheFactory.Create();
-      var poolFactory = cache.GetPoolFactory()
-          .AddLocator("localhost", 10334);
-      poolFactory.Create("pool");
+          .SetAuthInitialize(new ExampleAuthInitialize())
+          .Create();
+		  
+      cache.GetPoolManager()
+	      .CreateFactory()
+          .AddLocator("localhost", 10334)
+          .Create("pool");
+		  
       var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
           .SetPoolName("pool");
       var region = regionFactory.Create<string, string>("region");
diff --git a/examples/dotnet/authinitialize/README.md b/examples/dotnet/authinitialize/README.md
index cba6ea6..ceee1d1 100644
--- a/examples/dotnet/authinitialize/README.md
+++ b/examples/dotnet/authinitialize/README.md
@@ -29,12 +29,14 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-authinitialize.exe`, expect the following output:
+1. Execute `Debug\dotnet-authinitialize.exe`. Expect the following output:
 
-       ExampleAuthInitialize::ExampleAuthInitialize called
-       ExampleAuthInitialize::GetCredentials called
-       a = 1
-       b = 
+    ```console
+    ExampleAuthInitialize::ExampleAuthInitialize called
+    ExampleAuthInitialize::GetCredentials called
+    a = 1
+    b = 2
+	```
 
 1. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/dotnet/continuousquery/Program.cs b/examples/dotnet/continuousquery/Program.cs
index 7d826de..18048ad 100644
--- a/examples/dotnet/continuousquery/Program.cs
+++ b/examples/dotnet/continuousquery/Program.cs
@@ -24,19 +24,19 @@
   {
     public static void Main(string[] args)
     {
-      var cacheFactory = new CacheFactory()
-          .Set("log-level", "none");
-      var cache = cacheFactory.Create();
+      var cache = new CacheFactory()
+          .Set("log-level", "none")
+          .Create();
 
       Console.WriteLine("Registering for data serialization");
 
       cache.TypeRegistry.RegisterPdxType(Order.CreateDeserializable);
 
-      var poolFactory = cache.GetPoolFactory()
-          .AddLocator("localhost", 10334);
-      var pool = poolFactory
-        .SetSubscriptionEnabled(true)
-        .Create("pool");
+      var pool = cache.GetPoolManager()
+          .CreateFactory()
+          .AddLocator("localhost", 10334)
+          .SetSubscriptionEnabled(true)
+          .Create("pool");
 
       var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
           .SetPoolName("pool");
diff --git a/examples/dotnet/continuousquery/README.md b/examples/dotnet/continuousquery/README.md
index 90ace18..660d2a2 100644
--- a/examples/dotnet/continuousquery/README.md
+++ b/examples/dotnet/continuousquery/README.md
@@ -28,19 +28,21 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-continuousquery.exe`, expect the following output:
+1. Execute `Debug\dotnet-continuousquery.exe`. Expect the following output:
 
-       Registering for data serialization
-       Executing continuous query
-       Create orders
-       Putting and changing Order objects in the region
-       MyCqListener::OnEvent(CREATE) called with key Order2, value Order: [2, product y, 37]
-       MyCqListener::OnEvent(CREATE) called with key Order4, value Order: [4, product z, 102]
-       MyCqListener::OnEvent(CREATE) called with key Order6, value Order: [6, product z, 42]
-       MyCqListener::OnEvent(UPDATE) called with key Order2, value Order: [2, product y, 45]
-       MyCqListener::OnEvent(DESTROY) called with key Order2, value Order: [2, product y, 29]
-       MyCqListener::OnEvent(DESTROY) called with key Order6, value null
-       MyCqListener::close called
+    ```console
+    Registering for data serialization
+    Executing continuous query
+    Create orders
+    Putting and changing Order objects in the region
+    MyCqListener::OnEvent(CREATE) called with key Order2, value Order: [2, product y, 37]
+    MyCqListener::OnEvent(CREATE) called with key Order4, value Order: [4, product z, 102]
+    MyCqListener::OnEvent(CREATE) called with key Order6, value Order: [6, product z, 42]
+    MyCqListener::OnEvent(UPDATE) called with key Order2, value Order: [2, product y, 45]
+    MyCqListener::OnEvent(DESTROY) called with key Order2, value Order: [2, product y, 29]
+    MyCqListener::OnEvent(DESTROY) called with key Order6, value null
+    MyCqListener::close called
+    ```
 
 1. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/dotnet/dataserializable/Program.cs b/examples/dotnet/dataserializable/Program.cs
index b37010f..ca7d0ba 100644
--- a/examples/dotnet/dataserializable/Program.cs
+++ b/examples/dotnet/dataserializable/Program.cs
@@ -24,17 +24,18 @@
   {
     public static void Main(string[] args)
     {
-      var cacheFactory = new CacheFactory()
-          .Set("log-level", "none");
-      var cache = cacheFactory.Create();
+      var cache = new CacheFactory()
+          .Set("log-level", "none")
+          .Create();
 
       Console.WriteLine("Registering for data serialization");
 
       cache.TypeRegistry.RegisterType(Order.CreateDeserializable, 7);
 
-      var poolFactory = cache.GetPoolFactory()
-          .AddLocator("localhost", 10334);
-      poolFactory.Create("pool");
+      cache.GetPoolManager()
+          .CreateFactory()
+          .AddLocator("localhost", 10334)
+          .Create("pool");
 
       var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
           .SetPoolName("pool");
diff --git a/examples/dotnet/dataserializable/README.md b/examples/dotnet/dataserializable/README.md
index b1c5be4..3d37b67 100644
--- a/examples/dotnet/dataserializable/README.md
+++ b/examples/dotnet/dataserializable/README.md
@@ -28,16 +28,16 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-dataserializable.exe`, expect the following output:
+1. Execute `Debug\dotnet-dataserializable.exe`. Expect the following output:
 
-       Create orders
-       Storing orders in the region
-       Getting the orders from the region
-       OrderID: 1
-       Product Name: product x
-       Quantity: 23
-       OrderID: 2 Product Name: product y Quantity: 3s
-
+    ```console
+    Registering for data serialization
+    Storing order object in the region
+    order to put is Order: [65, Donuts, 12]
+    Successfully put order, getting now...
+    Order key: 65 = Order: [65, Donuts, 12]
+    ```
+    
 1. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
 
    For Windows cmd:
diff --git a/examples/dotnet/functionexecution/Program.cs b/examples/dotnet/functionexecution/Program.cs
index 2a1f074..a2bff53 100644
--- a/examples/dotnet/functionexecution/Program.cs
+++ b/examples/dotnet/functionexecution/Program.cs
@@ -26,13 +26,14 @@
   {
     static void Main(string[] args)
     {
-      var cacheFactory = new CacheFactory()
-          .Set("log-level", "none");
-      var cache = cacheFactory.Create();
+      var cache = new CacheFactory()
+          .Set("log-level", "none")
+          .Create();
 
-      var poolFactory = cache.GetPoolFactory()
-          .AddLocator("localhost", 10334);
-      poolFactory.Create("pool");
+      cache.GetPoolManager()
+          .CreateFactory()
+          .AddLocator("localhost", 10334)
+          .Create("pool");
 
       var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
           .SetPoolName("pool");
diff --git a/examples/dotnet/functionexecution/README.md b/examples/dotnet/functionexecution/README.md
index 0fc5d34..0fcbd97 100644
--- a/examples/dotnet/functionexecution/README.md
+++ b/examples/dotnet/functionexecution/README.md
@@ -28,17 +28,19 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-functionexecution.exe`, expect the following output:
+1. Execute `Debug\dotnet-functionexecution.exe`. Expect the following output:
 
-       Storing id and username in the region
-       Getting the user info from the region
-       rtimmons = Robert Timmons
-       scharles = Sylvia Charles
-       Function Execution Results:
-          Count = 1
-          value = Robert Timmons
-          value = Sylvia Charles
-
+    ```console
+    Storing id and username in the region
+    Getting the user info from the region
+    rtimmons = Robert Timmons
+    scharles = Sylvia Charles
+    Function Execution Results:
+       Count = 1
+       value = Robert Timmons
+       value = Sylvia Charles
+    ```
+    
 1. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
 
    For Windows cmd:
diff --git a/examples/dotnet/pdxautoserializer/Program.cs b/examples/dotnet/pdxautoserializer/Program.cs
index 2cacc78..0c36274 100644
--- a/examples/dotnet/pdxautoserializer/Program.cs
+++ b/examples/dotnet/pdxautoserializer/Program.cs
@@ -24,17 +24,18 @@
   {
     public static void Main(string[] args)
     {
-      var cacheFactory = new CacheFactory()
-          .Set("log-level", "none");
-      var cache = cacheFactory.Create();
+      var cache = new CacheFactory()
+          .Set("log-level", "none")
+          .Create();
 
       Console.WriteLine("Registering for reflection-based auto serialization");
 
       cache.TypeRegistry.PdxSerializer = new ReflectionBasedAutoSerializer();
 
-      var poolFactory = cache.GetPoolFactory()
-          .AddLocator("localhost", 10334);
-      poolFactory.Create("pool");
+      cache.GetPoolManager()
+          .CreateFactory()
+          .AddLocator("localhost", 10334)
+          .Create("pool");
 
       var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
           .SetPoolName("pool");
diff --git a/examples/dotnet/pdxautoserializer/README.md b/examples/dotnet/pdxautoserializer/README.md
index 625697f..0eb8f49 100644
--- a/examples/dotnet/pdxautoserializer/README.md
+++ b/examples/dotnet/pdxautoserializer/README.md
@@ -28,14 +28,16 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-pdxautoserializer.exe`, expect the following output:
+1. Execute `Debug\dotnet-pdxautoserializer.exe`. Expect the following output:
 
-       Registering for reflection-based auto serialization
-       Storing order object in the region
-       order to put is Order: [65, Vox AC30, 11]
-       Successfully put order, getting now...
-       Order key: 65 = Order: [65, Vox AC30, 11
-
+    ```console
+    Registering for reflection-based auto serialization
+    Storing order object in the region
+    order to put is Order: [65, Vox AC30, 11]
+    Successfully put order, getting now...
+    Order key: 65 = Order: [65, Vox AC30, 11
+    ```
+    
 1. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
 
    For Windows cmd:
diff --git a/examples/dotnet/pdxserializable/Program.cs b/examples/dotnet/pdxserializable/Program.cs
index 30a07ef..d3bac58 100644
--- a/examples/dotnet/pdxserializable/Program.cs
+++ b/examples/dotnet/pdxserializable/Program.cs
@@ -24,17 +24,18 @@
   {
     public static void Main(string[] args)
     {
-      var cacheFactory = new CacheFactory()
-          .Set("log-level", "none");
-      var cache = cacheFactory.Create();
+      var cache = new CacheFactory()
+          .Set("log-level", "none")
+          .Create();
 
       Console.WriteLine("Registering for data serialization");
 
       cache.TypeRegistry.RegisterPdxType(Order.CreateDeserializable);
 
-      var poolFactory = cache.GetPoolFactory()
-          .AddLocator("localhost", 10334);
-      poolFactory.Create("pool");
+      cache.GetPoolManager()
+          .CreateFactory()
+          .AddLocator("localhost", 10334)
+          .Create("pool");
 
       var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
           .SetPoolName("pool");
diff --git a/examples/dotnet/pdxserializable/README.md b/examples/dotnet/pdxserializable/README.md
index a40d317..1eb6e1d 100644
--- a/examples/dotnet/pdxserializable/README.md
+++ b/examples/dotnet/pdxserializable/README.md
@@ -28,13 +28,15 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-pdxserializable.exe`, expect the following output:
+1. Execute `Debug\dotnet-pdxserializable.exe`. Expect the following output:
 
-       Registering for data serialization
-       Storing order object in the region
-       order to put is Order: [65, Donuts, 12]
-       Successfully put order, getting now...
-       Order key: 65 = Order: [65, Donuts, 12]
+    ```console
+    Registering for data serialization
+    Storing order object in the region
+    order to put is Order: [65, Donuts, 12]
+    Successfully put order, getting now...
+    Order key: 65 = Order: [65, Donuts, 12]
+    ```
 
 1. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/dotnet/putgetremove/Program.cs b/examples/dotnet/putgetremove/Program.cs
index 084cc02..9319625 100644
--- a/examples/dotnet/putgetremove/Program.cs
+++ b/examples/dotnet/putgetremove/Program.cs
@@ -24,13 +24,14 @@
   {
     static void Main(string[] args)
     {
-      var cacheFactory = new CacheFactory()
-          .Set("log-level", "none");
-      var cache = cacheFactory.Create();
+      var cache = new CacheFactory()
+          .Set("log-level", "none")
+          .Create();
 
-      var poolFactory = cache.GetPoolFactory()
-          .AddLocator("localhost", 10334);
-      poolFactory.Create("pool");
+      cache.GetPoolManager()
+          .CreateFactory()
+          .AddLocator("localhost", 10334)
+          .Create("pool");
 
       var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
           .SetPoolName("pool");
diff --git a/examples/dotnet/putgetremove/README.md b/examples/dotnet/putgetremove/README.md
index 5f9cf2e..218edac 100644
--- a/examples/dotnet/putgetremove/README.md
+++ b/examples/dotnet/putgetremove/README.md
@@ -30,14 +30,16 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-putgetremove.exe`, expect the following output:
+1. Execute `Debug\dotnet-putgetremove.exe`. Expect the following output:
 
-       Storing id and username in the region
-       Getting the user info from the region
-       rtimmons = Robert Timmons
-       scharles = Sylvia Charles
-       Removing rtimmons info from the region
-       Info for rtimmons has been deleted
+    ```console
+    Storing id and username in the region
+    Getting the user info from the region
+    rtimmons = Robert Timmons
+    scharles = Sylvia Charles
+    Removing rtimmons info from the region
+    Info for rtimmons has been deleted
+	```
 
 1. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/dotnet/remotequery/Program.cs b/examples/dotnet/remotequery/Program.cs
index 997ff6b..f39594b 100644
--- a/examples/dotnet/remotequery/Program.cs
+++ b/examples/dotnet/remotequery/Program.cs
@@ -24,17 +24,18 @@
     {
         public static void Main(string[] args)
         {
-            var cacheFactory = new CacheFactory()
-                .Set("log-level", "none");
-            var cache = cacheFactory.Create();
+            var cache = new CacheFactory()
+              .Set("log-level", "none")
+              .Create();
 
             Console.WriteLine("Registering for data serialization");
 
             cache.TypeRegistry.RegisterPdxType(Order.CreateDeserializable);
 
-            var poolFactory = cache.GetPoolFactory()
-                .AddLocator("localhost", 10334);
-            var pool = poolFactory.Create("pool");
+            var pool = cache.GetPoolManager()
+                .CreateFactory()
+                .AddLocator("localhost", 10334)
+                .Create("pool");
 
             var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
                 .SetPoolName("pool");
diff --git a/examples/dotnet/remotequery/README.md b/examples/dotnet/remotequery/README.md
index 9ea2ff1..91a6261 100644
--- a/examples/dotnet/remotequery/README.md
+++ b/examples/dotnet/remotequery/README.md
@@ -28,16 +28,18 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-remotequery.exe`, expect the following output:
+1. Execute `Debug\dotnet-remotequery.exe`. Expect the following output:
 
-       Registering for data serialization
-       Create orders
-       Storing orders in the region
-       Getting the orders from the region
-       The following orders have a quantity greater than 30:
-       Order: [6, product z, 42]
-       Order: [4, product z, 102]
-       Order: [2, product y, 37
+    ```console
+    Registering for data serialization
+    Create orders
+    Storing orders in the region
+    Getting the orders from the region
+    The following orders have a quantity greater than 30:
+    Order: [6, product z, 42]
+    Order: [4, product z, 102]
+    Order: [2, product y, 37
+    ```
 
 1. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/dotnet/sslputget/Program.cs b/examples/dotnet/sslputget/Program.cs
index d73eb9c..af7d6ed 100644
--- a/examples/dotnet/sslputget/Program.cs
+++ b/examples/dotnet/sslputget/Program.cs
@@ -26,18 +26,18 @@
     {
         static void Main(string[] args)
         {
-            var cacheFactory = new CacheFactory();
-            cacheFactory.Set("log-level", "none");
-            cacheFactory.Set("ssl-enabled", "true");
-            cacheFactory.Set("ssl-keystore", Environment.CurrentDirectory + @"\.\ClientSslKeys\client_keystore.pem");
-            cacheFactory.Set("ssl-keystore-password", "apachegeode");
-            cacheFactory.Set("ssl-truststore", Environment.CurrentDirectory + @"\.\ClientSslKeys\client_truststore.pem");
+            var cache = new CacheFactory()
+              .Set("log-level", "none")
+              .Set("ssl-enabled", "true")
+              .Set("ssl-keystore", Environment.CurrentDirectory + @"\.\ClientSslKeys\client_keystore.pem")
+              .Set("ssl-keystore-password", "apachegeode")
+              .Set("ssl-truststore", Environment.CurrentDirectory + @"\.\ClientSslKeys\client_truststore.pem")
+              .Create();
 
-            var cache = cacheFactory.Create();
-
-            var poolFactory = cache.GetPoolFactory()
-                .AddLocator("localhost", 10334);
-            var pool = poolFactory.Create("pool");
+            cache.GetPoolManager()
+                .CreateFactory()
+                .AddLocator("localhost", 10334)
+                .Create("pool");
 
             var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
                 .SetPoolName("pool");
diff --git a/examples/dotnet/sslputget/README.md b/examples/dotnet/sslputget/README.md
index 6212851..89d906a 100644
--- a/examples/dotnet/sslputget/README.md
+++ b/examples/dotnet/sslputget/README.md
@@ -27,12 +27,14 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-sslputget.exe`, expect the following output:
+1. Execute `Debug\dotnet-sslputget.exe`. Expect the following output:
 
-       Storing id and username in the region
-       Getting the user info from the region
-       rtimmons = Robert Timmons
-       scharles = Sylvia Charles 
+    ```console
+    Storing id and username in the region
+    Getting the user info from the region
+    rtimmons = Robert Timmons
+    scharles = Sylvia Charles 
+    ```
 
 1. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
 
diff --git a/examples/dotnet/sslputget/stopserver.ps1 b/examples/dotnet/sslputget/stopserver.ps1
index 4e59f7a..e2e5719 100644
--- a/examples/dotnet/sslputget/stopserver.ps1
+++ b/examples/dotnet/sslputget/stopserver.ps1
@@ -35,5 +35,5 @@
 
 if ($GFSH_PATH -ne "")
 {
-   Invoke-Expression "$GFSH_PATH -e 'connect --use-ssl=true --key-store=$PSScriptRoot\ServerSslKeys\server_keystore.jks --trust-store=$PSScriptRoot\ServerSslKeys\server_truststore.jks --trust-store-password=gemstone --key-store-password=gemstone' -e 'shutdown --include-locators=true'"
+   Invoke-Expression "$GFSH_PATH -e 'connect --use-ssl=true --key-store=$PSScriptRoot\ServerSslKeys\server_keystore.p12 --trust-store=$PSScriptRoot\ServerSslKeys\server_truststore.jks --trust-store-password=apachegeode --key-store-password=apachegeode' -e 'shutdown --include-locators=true'"
 }
diff --git a/examples/dotnet/transaction/Program.cs b/examples/dotnet/transaction/Program.cs
index b8ccdf4..1b38eb3 100644
--- a/examples/dotnet/transaction/Program.cs
+++ b/examples/dotnet/transaction/Program.cs
@@ -50,15 +50,16 @@
     static void Main(string[] args)
     {
       var cache = new CacheFactory()
-          .Set("log-level", "none").Create();
+          .Set("log-level", "none")
+          .Create();
 
-      var poolFactory = cache.GetPoolFactory()
-          .AddLocator("localhost", 10334);
-      
+      cache.GetPoolManager()
+          .CreateFactory()
+          .AddLocator("localhost", 10334)
+          .Create("pool");
+
       Console.WriteLine("Created cache");
 
-      poolFactory.Create("pool");
-
       var regionFactory = cache.CreateRegionFactory(RegionShortcut.PROXY)
           .SetPoolName("pool");
       var region = regionFactory.Create<string, int>("exampleRegion");
diff --git a/examples/dotnet/transaction/README.md b/examples/dotnet/transaction/README.md
index 28539d5..01aa256 100644
--- a/examples/dotnet/transaction/README.md
+++ b/examples/dotnet/transaction/README.md
@@ -30,7 +30,7 @@
     $ startserver.ps1
     ```
 
-1. Execute `dotnet-transaction.exe`, The output logs the cache and region creation, and the results of up to five attempts to commit the transaction.
+1. Execute `Debug\dotnet-transaction.exe`. The output logs the cache and region creation, and the results of up to five attempts to commit the transaction.
 Example execution ends when the transaction is successfully committed, or when the maximum number of attempts is reached without a successful commit.
 
     ```console