Today, I would like to start writing about a Dojo project that I began yesterday.

Through the application processes that I have been going through for the past few weeks, I have rediscovered an interest in C# and .NET.

During my time at e.GO Mobile, I have had a lot of contact with AI and ChatGPT and have been introduced to the LangChain project.

I would like to begin with setting up the project on GitHub.

I have chosen to name it AssemblyChain. While Assembly refers to the binary containers in .NET, Chain naturally makes a “slight” reference to LangChain.

For the logo I have choosen an self-generted image by Midjourney:

AssemblyChain logo

Setup repository

The very first step I did was creating the repository on GitHub with an own organization. This repository will contain the .NET library with examples and documentation.

The license I have choosen the lesser strict LGPL v3.0.

Solution

To bring all sub projects together, I created a Visual Studio solution file by executing

dotnet new sln --name AssemblyChain

with dotnet CLI on the one and a Visual Studio Code workspace file on the other hand called AssemblyChain.code-workspace.

SDK project

The central project in the repository is the Software Development Kit module, which will contain all the core and basic types for all upcoming specific implementations.

To create a new class library, I executed

dotnet new classlib --output packages/AssemblyChain.SDK

from root directory and started with a generic object class called ACObject.cs:

namespace AssemblyChain.SDK;

/// <summary>
/// A basic object.
/// </summary>
public abstract class ACObject
{
}

Sandbox

For the meantime, I have created a sandbox project in the form of a console application so that one can play around with parts of the SDK:

dotnet new console --output examples/AssemblyChain.Examples.Sandbox

I also had to update the XML of the new project file as well:

  <ItemGroup>
    <ProjectReference Include="../../packages/AssemblyChain.SDK/AssemblyChain.SDK.csproj" />
  </ItemGroup>

Outlook

The next time I will write about the first “real” code I implemented and the structure I plan to use.

If you want to participate and/or have ideas, you can use the Discussions section on GitHub.