.NET Implementation of the CloudDataObject (CDO) used by Progress OpenEdge.
Fetching latest commit…
Cannot retrieve the latest commit at this time.



Copyright (c) 2017 - 2018 Robin Herbots Licensed under the MIT license (http://opensource.org/licenses/mit-license.php)


The NCDO is a .NET implementation of the CDO Specification published by Progress Software Corporation. The NCDO is a free and open-source implementation that can be used in .NET.


For more information see the Progress Data Objects Guide and Reference.


Reference the NCDO nuget package in your project.

In your application the usage is simular as in the documentation of JSDO.

  var pdSession = new CDOSession(new CDOSessionOptions() { ServiceUri = new Uri("http://<pas server url>")});
  pdSession.AddCatalog(new Uri("http://<catalog url>")).Wait();
  var cdo = new CDO("resource");
  var paramObj = new JsonObject
          { "name", "name" },
  var resp = cdo.Invoke("InvokeOperation", paramObj).Result;


The Authentication model is specified in the CDOSessionOptions and passed in the constructor of a CDOSession.

Supported protocols:

  • anonymous
  • basic
  • bearer


Any contributions (code, documentation) is also welcome.

Additions to api spec

  • added ICloudDataObject.Get

      /// <summary>
      ///     Searches for a record in a table referenced in CDO memory
      ///     and returns a reference to a dataset with all related data from the record if found. If no record
      ///     is found, it returns null.
      /// </summary>
      /// <returns></returns>
      Task<D> Get(Expression<Func<R, bool>> filter);