Agibuild.Modulus.UI.Abstractions 1.0.25347.1530

There is a newer version of this package available.
See the version list below for details.
dotnet add package Agibuild.Modulus.UI.Abstractions --version 1.0.25347.1530
                    
NuGet\Install-Package Agibuild.Modulus.UI.Abstractions -Version 1.0.25347.1530
                    
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="Agibuild.Modulus.UI.Abstractions" Version="1.0.25347.1530" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Agibuild.Modulus.UI.Abstractions" Version="1.0.25347.1530" />
                    
Directory.Packages.props
<PackageReference Include="Agibuild.Modulus.UI.Abstractions" />
                    
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 Agibuild.Modulus.UI.Abstractions --version 1.0.25347.1530
                    
#r "nuget: Agibuild.Modulus.UI.Abstractions, 1.0.25347.1530"
                    
#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 Agibuild.Modulus.UI.Abstractions@1.0.25347.1530
                    
#: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=Agibuild.Modulus.UI.Abstractions&version=1.0.25347.1530
                    
Install as a Cake Addin
#tool nuget:?package=Agibuild.Modulus.UI.Abstractions&version=1.0.25347.1530
                    
Install as a Cake Tool

Modulus

Modulus is a modern, cross-platform, plugin-based application framework designed to help developers quickly build extensible, maintainable, and AI-ready tools.

✨ Features

Multi-Host Architecture

  • UI-Agnostic Core: Business logic independent of any UI framework
  • Pluggable Hosts: Supports Avalonia (desktop) and Blazor Hybrid (MAUI)
  • Shared Core Logic: Same Domain/Application code runs across all hosts

Extension System

  • VS Extension Compatible: Uses extension.vsixmanifest (XML) format
  • Hot-Reloadable: AssemblyLoadContext-based isolation for dynamic load/unload
  • Explicit Installation: Extensions installed via CLI or UI, not auto-discovered
  • Type-Safe Entry Points: ModulusPackage base class similar to VS VsPackage

Developer Experience

  • Extension SDK with declarative attributes
  • AI Agent plugin support (LLM integration)
  • Signature verification and version control
  • Cross-platform: Windows / macOS / Linux

🏗️ Architecture

src/
├── Modulus.Core/              # Runtime, module loader, DI
├── Modulus.Sdk/               # SDK: ModulusPackage, attributes
├── Modulus.UI.Abstractions/   # UI contracts (IMenuRegistry, INavigationService)
├── Hosts/
│   ├── Modulus.Host.Avalonia/ # Avalonia desktop (ID: Modulus.Host.Avalonia)
│   └── Modulus.Host.Blazor/   # Blazor Hybrid (ID: Modulus.Host.Blazor)
└── Modules/
    ├── EchoPlugin/            # Example: Echo plugin
    ├── SimpleNotes/           # Example: Notes module
    └── ComponentsDemo/        # Example: UI components demo

📦 Extension Structure

MyExtension/
├── extension.vsixmanifest     # XML manifest (VS Extension format)
├── MyExtension.Core.dll       # Core logic (host-agnostic)
├── MyExtension.UI.Avalonia.dll
└── MyExtension.UI.Blazor.dll

🚀 Getting Started

Run Avalonia Host

dotnet run --project src/Hosts/Modulus.Host.Avalonia

Run Blazor Host

dotnet run --project src/Hosts/Modulus.Host.Blazor

Run Tests

dotnet test

🔌 Creating an Extension

1. Create Projects

MyExtension/
├── MyExtension.Core/
├── MyExtension.UI.Avalonia/
└── MyExtension.UI.Blazor/

2. Define Entry Point

// MyExtension.Core/MyExtensionPackage.cs
public class MyExtensionPackage : ModulusPackage
{
    public override void ConfigureServices(IModuleLifecycleContext context)
    {
        context.Services.AddSingleton<IMyService, MyService>();
    }
}

3. Create Manifest


<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" 
    xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011">
  <Metadata>
    <Identity Id="your-guid" Version="1.0.0" Publisher="You" />
    <DisplayName>My Extension</DisplayName>
    <Description>My awesome extension</Description>
  </Metadata>
  <Installation>
    <InstallationTarget Id="Modulus.Host.Avalonia" Version="[1.0,)" />
    <InstallationTarget Id="Modulus.Host.Blazor" Version="[1.0,)" />
  </Installation>
  <Assets>
    <Asset Type="Modulus.Package" Path="MyExtension.Core.dll" />
    <Asset Type="Modulus.Package" Path="MyExtension.UI.Avalonia.dll" 
           TargetHost="Modulus.Host.Avalonia" />
    <Asset Type="Modulus.Menu" Id="my-menu" DisplayName="My Tool" 
           Icon="Home" Route="MyExtension.ViewModels.MainViewModel" 
           TargetHost="Modulus.Host.Avalonia" />
  </Assets>
</PackageManifest>

4. Install Extension

modulus install ./MyExtension

🛠️ CLI Tool

Modulus provides a command-line tool for module management.

Install CLI

# Install from NuGet (available after publishing)
dotnet tool install -g Agibuild.Modulus.Cli

# Or install from local build
dotnet tool install -g --add-source ./artifacts/packages Agibuild.Modulus.Cli

# During development, use directly
./artifacts/cli/modulus.exe

Install Module

# Install from .modpkg file
modulus install ./MyModule-1.0.0.modpkg

# Install from directory (for development)
modulus install ./artifacts/bin/Modules/MyModule/

# Force overwrite existing installation
modulus install ./MyModule-1.0.0.modpkg --force

Uninstall Module

# Uninstall by module name
modulus uninstall MyModule

# Uninstall by module ID
modulus uninstall a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d

# Skip confirmation
modulus uninstall MyModule --force

List Installed Modules

# Basic list
modulus list

# Show detailed information
modulus list --verbose

Package Module

# Package all modules to artifacts/packages/
nuke pack-module

# Package a single module
nuke pack-module --name EchoPlugin

📚 Documentation

Project Status

  • Phase: Active Development
  • Test Coverage: 30+ tests passing
  • Platforms: Windows, macOS, Linux

Contributing

Pull requests and issues are welcome! See CONTRIBUTING.md for guidelines.

License

MIT License

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 (3)

Showing the top 3 NuGet packages that depend on Agibuild.Modulus.UI.Abstractions:

Package Downloads
Agibuild.Modulus.Sdk

SDK for building Modulus modules.

Agibuild.Modulus.UI.Avalonia

Avalonia UI components library for Modulus framework

Agibuild.Modulus.UI.Blazor

Blazor UI components library for Modulus framework

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.25353.432 327 12/19/2025
1.0.25351.1547 311 12/17/2025
1.0.25351.1456 297 12/17/2025
1.0.25348.1453 198 12/14/2025
1.0.25347.1530 192 12/13/2025
1.0.25347.1529 199 12/13/2025