Dot Net to Domino

Native .NET wrappers for the HCL Notes/Domino C API.

Dot-NET-to-Domino provides a managed object model inspired by the HCL Notes object model while calling the native Notes/Domino C API directly, with a familiar syntax.

Goals

  • Native HCL Notes/Domino C API access from .NET.
  • Familiar objects such as NotesSession, NotesDatabase, NotesView, and NotesDocument.
  • Deterministic cleanup through IDisposable and Notes-compatible Recycle() methods.
  • No Java, JNI, JNA, or JNX dependency.

NuGet package

Package ID: DotNetToDomino

dotnet add package DotNetToDomino

Basic usage

using DotNetToDomino;

using var session = new NotesSession(@"C:\Program Files\HCL\Notes");
using var db = session.OpenDatabase("", "names.nsf");

Console.WriteLine(db.IsOpen);

The HCL Notes or Domino native runtime must already be installed and licensed on the machine running the application.

Null safety

The NuGet assembly enables C# nullable reference annotations and treats compiler warnings as errors when building this repository. APIs that may not find a Notes object return nullable types, for example NotesDocument?:

var document = db.GetDocumentByUNID(unid)
    ?? throw new InvalidOperationException("The document could not be opened.");

Console.WriteLine(document.ParentDatabase.ReplicaID);

Required arguments are validated before native calls and produce clear ArgumentNullException, ArgumentException, or ArgumentOutOfRangeException errors. A member access on a variable that is already null happens in the caller before the library can run; use nullable warnings and an explicit null check as shown above.

Check out the blog post https://xpagedeveloper.com/2026/dotnettodomino

Project can be found on openntf.org