Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

What is the ModuleApiProxy?

The ModuleApiProxy has been created to allow Noah Modules utilizing .NET 6 or later to connect to Noah 4.
The current ModuleAPI which is implemented using the Full .NET Framework (version 4.6) relies upon technologies that have been deprecated in .NET 6 and later.
To mitigate this HIMSA is providing the ModuleApiProxy which will host the Noah 4 ModuleApi in a process separate from the .NET 6+ module and allow the module to interact with the Noah 4 ModuleApi via the ModuleApiProxyLib.
See diagram below:

...

Note

Please observe!!

When porting modules utilizing the Noah 4 ModuleApi to a .NET 6+ module using the ModuleApiProxy there are some differences to be aware of.
This mostly applies when updating and retrieving actions but events and callbacks are also handled differently.
See: Differences in usage of the ModuleAPI Proxy vs the traditional moduleAPI

...

The binaries for the ModuleApiProxyLib and SharedLib libraries and .NET 6+ module sample source code is available here:
https://www.himsa.com/members-2/noah-4-module-development/noah-module-development-with-net-6-and-later/ (log-in required)

...

When developing a new .NET 6+ module for Noah 4 you will need to reference a few files required when developing a .NET 6+ module utilizing the ModuleApiProxy.

Steps involved to develop a .NET 6+ module that utilizes the ModuleApiProxy

  1. Reference the following files in your .NET module project (available from the ModuleApiProxy SDK see here:

...

Module Deployment

When deploying a .NET 6+ module using the ModuleApiProxy to a computer with Noah 4 the following files must be deployed.
The files in the ModuleApiProxy are self-contained and do not depend upon the .NET Runtime, however the .NET 6+ module utilizing the ModuleApiProxy will have to install the appropriate .NET Runtime upon which it depends.
The .NET 6+ Runtimes can be downloaded from here: Download .NET

Required steps when deploying a .NET 6+ module using the ModuleApiProxy

In addition to all the .NET 6+ modules files the following files, (which are ModuleApiProxy dependencies), must be added to the modules deployment folder as part of the installation process.
All Module Api Proxy files deployed to the .NET 6+ modules folder (SharedLib.dll, ModuleApiProxyLib.dll, ModuleApiProxy.exe, ModuleApiProxy.Config.json) can be removed when the module is uninstalled.

...

Using PIMA version 1.0.0 and 1.0.1 of the ModuleApiProxy the component must be deployed like this:
(In the table below the files in cells with green background are provided by HIMSA)

.NET 6+ Module Deployment files

Deployment Folders

MyDotNet6Module.exe
“Other Module related files“

..\MyModuleFolder\

SharedLib.dll
ModuleApiProxyLib.dll
ModuleApiProxy.exe
ModuleApiProxy.Config.json

..\MyModuleFolder\

Starting with version 1.0.3 of the ModuleApiProxy the component must be deployed like this:
(In the table below the files in cells with green background are provided by HIMSA)

.NET 6+ Module Deployment files

Deployment Folders

MyDotNet6Module.exe
“Other Module related files“

..\MyModuleFolder\

ModuleApiProxyLib.dll
SharedLib.dll

..\MyModuleFolder\

ModuleApiProxy.Config.json
ModuleApiProxy.exe

..\MyModuleFolder\.proxy