HC.Innovator.Client.Core 1.0.0

dotnet add package HC.Innovator.Client.Core --version 1.0.0
                    
NuGet\Install-Package HC.Innovator.Client.Core -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="HC.Innovator.Client.Core" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="HC.Innovator.Client.Core" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="HC.Innovator.Client.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add HC.Innovator.Client.Core --version 1.0.0
                    
#r "nuget: HC.Innovator.Client.Core, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package HC.Innovator.Client.Core@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=HC.Innovator.Client.Core&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=HC.Innovator.Client.Core&version=1.0.0
                    
Install as a Cake Tool

Innovator Client Core

A lightweight .NET library for working with Aras Innovator using the Innovator.Client SDK.

This project wraps common Innovator session creation, data-model access, user membership helpers, and workflow inspection into a small reusable API. It also includes a console demo application showing how to connect to Aras and perform everyday operations.
The test are primarily written to demonstrate the API.

Why this project exists

The library is meant to simplify common Aras Innovator tasks in .NET without forcing application code to deal directly with verbose AML and low-level connection setup.

Some examples includes:

  • creating and reusing Innovator sessions
  • retrieving item metadata and relationship data
  • working with users and group membership
  • inspecting workflow maps and activity templates
  • giving a demo app that exercises these patterns in practice

Features

  • Session creation using Aras connection preferences and credentials
  • Optional session caching with SessionManager
  • MD5 password detection for hashed credentials
  • extension methods for common item lookup patterns
  • user helpers for create/get/enable/member checks
  • workflow map traversal through activity templates and paths
  • metadata helpers for item types and related model objects
  • example console application in demo/DemoConsoleApp

Project structure

  • src/InnovatorCore - main reusable library
    • Connections/ - session and session manager
    • Extensions/ - convenience methods on Innovator and Item
    • Extensions/Meta/ - data model helpers such as item types and methods
    • Users/ - user and membership helpers
    • Workflows/ - workflow map and activity metadata
  • demo/DemoConsoleApp - sample console application
  • tests/InnovatorCore.Tests - unit/integration tests for the main functionality

Requirements

  • .NET 10 SDK
  • An Aras Innovator instance reachable from your environment

Installation

Add the project to your solution or reference it from another .NET project.

dotnet add reference src/InnovatorCore/InnovatorCore.csproj

Or, if you are consuming it from another project, add a project reference in your .csproj file:

<ItemGroup>
  <ProjectReference Include="..\InnovatorCore\InnovatorCore.csproj" />
</ItemGroup>

Getting started

Create a session

using Connections;

var inn = Session.CreateSession(
    "https://your-aras-instance.example.com",
    "YourDatabase",
    "admin",
    "yourPassword");

Reuse named sessions

using Connections;

var inn = SessionManager.CreateSession(
    "default",
    "https://your-aras-instance.example.com",
    "YourDatabase",
    "admin",
    "yourPassword");

var sameInn = SessionManager.GetSession("default");

Get an item by ID

using Extensions;

var item = inn.GetItem("Part", "some-part-id");

Get an item by name

using Extensions;

var itemType = inn.GetItemByName("ItemType", "Part");

Access the data model

using Extensions;

var model = inn.DataModel();
var partType = model.ItemType("Part");
string itemNumberDataType = partType.Property("item_number").DataType;

Work with users

using Users;

var userHelper = new User(inn);
var existing = userHelper.UserExists("jsmith");

var created = userHelper.CreateUser("jsmith", "Password123", "Jane", "Smith");

Inspect workflow maps

using Workflows;

var workflowMap = new WorkflowMap(inn, workflowMapId);
foreach (var activity in workflowMap.ActivityTemplates)
{
    Console.WriteLine(activity.Name);
}

Core API overview

Session

Creates a Innovator.Client.IOM.Innovator instance using a URL, database, username, and password. It also automatically detects hashed MD5 passwords.

SessionManager

Keeps a dictionary of named sessions so the same Aras connection can be reused without repeated login overhead.

InnovatorExtensions

Adds convenience methods to the Innovator instance for common operations such as:

  • GetUser()
  • GetItem(...)
  • GetItemByName(...)
  • GetItemByConfigId(...)
  • GetIdentity()
  • ApplyAML(...)
  • DataModel()

ItemExtensions

Adds convenience methods to Item instances for common operations such as: Apply/GetProperty are wrapped in retries on Deadlocks.

  • CreateRelation(...)
  • GetRelations(...)
  • ToList()
  • Apply()
  • Apply(...)
  • GetProperty(...)
  • LastModified()

User

Provides helper methods such as:

  • CreateUser(...)
  • UserExists(...)
  • GetUserByLoginName(...)
  • UserIsEnabled(...)
  • IsMemberOf(...)
  • IsDirectMemberOf(...)
  • AddUserAsMember(...)
  • RemoveUserAsMember(...)

DataModel

Builds metadata-oriented helpers for item types and related model information. It can be used to resolve item definitions and related metadata from Aras.

WorkflowMap

Allows inspection of workflow structures by loading Workflow Map data and exploring its ActivityTemplate objects and map paths.

Demo application

The repository includes a sample console application in demo/DemoConsoleApp that demonstrates:

  • reading configuration from appsettings.json
  • connecting to Aras
  • selecting and switching connections
  • creating or deleting users
  • querying memberships
  • exploring workflow and metadata information

Run it with:

dotnet run --project demo/DemoConsoleApp/DemoConsoleApp.csproj

Testing

The test project is under tests/InnovatorCore.Tests and exercises session creation, user behavior, and workflow interactions.

dotnet test --project tests/InnovatorCore.Tests/InnovatorCore.Tests.csproj

Notes

This project is intentionally practical and focused on working with Aras Innovator as a .NET client library. It is useful when you need a thin wrapper around common Innovator patterns while keeping the logic readable and easy to extend.

License

This project is provided under the repository license. See the LICENSE file for details.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 31 9/18/2026

First Release