AtomUI.Foundation.Generator
1.0.0
Prefix Reserved
dotnet add package AtomUI.Foundation.Generator --version 1.0.0
NuGet\Install-Package AtomUI.Foundation.Generator -Version 1.0.0
<PackageReference Include="AtomUI.Foundation.Generator" Version="1.0.0" />
<PackageVersion Include="AtomUI.Foundation.Generator" Version="1.0.0" />
<PackageReference Include="AtomUI.Foundation.Generator" />
paket add AtomUI.Foundation.Generator --version 1.0.0
#r "nuget: AtomUI.Foundation.Generator, 1.0.0"
#:package AtomUI.Foundation.Generator@1.0.0
#addin nuget:?package=AtomUI.Foundation.Generator&version=1.0.0
#tool nuget:?package=AtomUI.Foundation.Generator&version=1.0.0
AtomUI.Foundation
Documentation Language: English | 简体中文
Overview
AtomUI.Foundation is the foundational infrastructure repository for the AtomUI ecosystem. It provides shared runtime primitives and source-generation support that other AtomUI packages can build on without depending on a specific control library.
The first release focuses on modularity:
AtomUI.Foundationcontains module identifiers, module descriptors, dependency graph resolution, lifecycle hosting and module service registration primitives.AtomUI.Foundation.Generatorcontains Roslyn source generators and diagnostics for module catalog generation.
Packages
| Package | Description |
|---|---|
AtomUI.Foundation |
Runtime infrastructure package for shared AtomUI foundation APIs. |
AtomUI.Foundation.Generator |
Analyzer/source-generator package for generated AtomUI infrastructure. |
Current prerelease version:
dotnet add package AtomUI.Foundation --version 1.0.0-alpha.1
If your project needs generated module catalogs, reference the generator as an analyzer:
<PackageReference Include="AtomUI.Foundation.Generator" Version="1.0.0-alpha.1" PrivateAssets="all" />
Modularity
Mark module classes with ModuleAttribute and derive from ModuleBase:
using AtomUI.Modularity;
[Module(DisplayName = "Core")]
public sealed partial class CoreModule : ModuleBase
{
}
[Module(DisplayName = "Selection", Dependencies = [typeof(CoreModule)])]
public sealed partial class SelectionModule : ModuleBase
{
}
The module catalog generator emits an internal ModuleGeneratedCatalog type with a CreateRegistrations() method:
using AtomUI.Modularity;
var registrations = ModuleGeneratedCatalog.CreateRegistrations();
var host = new ModuleHost(registrations);
var result = await host.InitializeAsync();
Generated catalog naming can be customized with MSBuild properties:
<PropertyGroup>
<AtomUIModularityCatalogNamespace>MyApp.Generated</AtomUIModularityCatalogNamespace>
<AtomUIModularityCatalogTypeName>MyModuleCatalog</AtomUIModularityCatalogTypeName>
</PropertyGroup>
Local Development
Build the full solution:
dotnet build AtomUI.Foundation.slnx
Run runtime tests:
dotnet test tests/AtomUI.Foundation.Tests/AtomUI.Foundation.Tests.csproj --framework net10.0
Run generator tests:
dotnet test tests/AtomUI.Foundation.Generator.Tests/AtomUI.Foundation.Generator.Tests.csproj --framework net10.0
Publish packages to a local NuGet source:
pwsh -File scripts/PublishToLocalSources.ps1
pwsh -File scripts/PublishToLocalSources.ps1 -localSourcesDir /path/to/nuget.local -buildType Release
Repository Layout
| Path | Purpose |
|---|---|
src/AtomUI.Foundation |
Runtime package source. |
src/AtomUI.Foundation.Generator |
Roslyn generator package source. |
tests/AtomUI.Foundation.Tests |
Runtime tests. |
tests/AtomUI.Foundation.Generator.Tests |
Generator tests. |
build/ |
Centralized MSBuild versioning, package metadata and output configuration. |
docs/ |
Architecture and engineering documentation. |
scripts/ |
Local development and publishing scripts. |
License
AtomUI.Foundation uses the same license as AtomUI: GNU Lesser General Public License v3.0. See LICENSE.
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
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 | 388 | 8/9/2026 |