AtomUI.Foundation
1.0.0
Prefix Reserved
dotnet add package AtomUI.Foundation --version 1.0.0
NuGet\Install-Package AtomUI.Foundation -Version 1.0.0
<PackageReference Include="AtomUI.Foundation" Version="1.0.0" />
<PackageVersion Include="AtomUI.Foundation" Version="1.0.0" />
<PackageReference Include="AtomUI.Foundation" />
paket add AtomUI.Foundation --version 1.0.0
#r "nuget: AtomUI.Foundation, 1.0.0"
#:package AtomUI.Foundation@1.0.0
#addin nuget:?package=AtomUI.Foundation&version=1.0.0
#tool nuget:?package=AtomUI.Foundation&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.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
-
net10.0
- No dependencies.
-
net8.0
- 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 | 436 | 8/9/2026 |