GoesSoftware.SuperSDK.App 7.14.2

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

SuperSDK.App 使用指南

初始化

using SApp = SuperSDK.App.SuperApp;

public partial class App : Application
{
    public override void Initialize()
    {
        AvaloniaXamlLoader.Load(this);
        
        SApp.Initialize(config =>
        {
            config.AppInfo = new SuperSDK.Core.AppInfo
            {
                ProductName = "My App",
                Version = "1.0.0",
                IconPath = "avares://YourApp/app.ico"
            };
            
            config.UseBuiltInLogger(showOnStartup: false);
            config.UseSqlDebug(showOnStartup: false);
            config.RegisterEntity<YourEntity>();
        });
    }

    public override void OnFrameworkInitializationCompleted()
    {
        if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
        {
            desktop.MainWindow = new MainWindow();
            desktop.ShutdownRequested += (s, e) => SApp.Cleanup();
        }
        base.OnFrameworkInitializationCompleted();
    }
}

常用 API

// 日志
SApp.LogInfo("信息");
SApp.LogWarning("警告");
SApp.LogError("错误");

// 窗口
SApp.ToggleLogger();      // Logger 窗口
SApp.ToggleSqlDebug();    // SQL Debug 窗口
SApp.ShowAbout();         // About 窗口

// 主题切换(默认暗黑模式)
SApp.ToggleTheme();       // 切换 Dark/Light 主题

图标配置

.csproj 中添加:

<ItemGroup>
    <AvaloniaResource Include="app.ico" />
</ItemGroup>

Splash 启动画面

Initialize 中通过 config.AddRequest / config.AddPublish 添加启动任务,MainWindow 打开后自动执行:

SApp.Initialize(config =>
{
    config.AppInfo = new SuperSDK.Core.AppInfo { ... };

    // 添加启动任务(按顺序执行,自动显示进度条)
    config.AddRequest<LoadConfigReq>(new LoadConfigReq(), "Loading configuration...");
    config.AddRequest<InitDatabaseReq>(new InitDatabaseReq(), "Initializing database...");
    config.AddPublish(new CacheWarmupMsg(), "Warming up cache...");
});
  • AddRequest<TReq>(request, statusText) — 发送请求并等待 handler 完成,handler 需返回 GzSplashResult
  • AddPublish<T>(message, statusText) — 发布消息,立即完成
  • AddTask(Func<Task>, statusText) — 自定义异步任务

Splash 会持续监听 GzSplashStatusMsg,任何地方发布该消息都会实时更新进度条下方的状态文字:

MessageBus.Pub(new GzSplashStatusMsg { Text = "Connecting to server..." });

Handler 注册示例(在任何模块中):

MessageBus.RegisterReqHandler<LoadConfigReq, GzSplashResult>(this, async req =>
{
    await LoadConfig();
    return new GzSplashResult();
});

托管外部窗口(AddManagedUI)

将自定义窗口纳入 SuperApp 统一管理,Cleanup() 时自动关闭,ToggleTheme() 时自动同步主题。

要求: 窗口必须继承 GzWindow(来自 SuperSDK.UI.Views)。

using SuperSDK.UI.Views;

// 继承 GzWindow 而非 Window
public partial class MyToolWindow : GzWindow
{
    public MyToolWindow()
    {
        InitializeComponent();

        // 若此窗口关闭时应隐藏而非销毁,拦截 Closing 事件
        Closing += (s, e) =>
        {
            if (AllowClose) return;  // Cleanup() 会设置 AllowClose=true 后再关闭
            e.Cancel = true;
            Hide();
        };
    }
}
// 注册托管
var myWindow = new MyToolWindow();
SApp.AddManagedUI(myWindow);

// 不再需要时取消注册(可选,Cleanup 会自动处理)
SApp.RemoveManagedUI(myWindow);
  • AllowClose 默认为 falseCleanup() 会先将其设为 true 再调用 Close(),保证拦截逻辑不会阻止退出。
  • 若窗口关闭后直接销毁(无隐藏需求),无需处理 Closing 事件,继承 GzWindow 即可。
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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 was computed.  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 (1)

Showing the top 1 NuGet packages that depend on GoesSoftware.SuperSDK.App:

Package Downloads
GoesSoftware.SuperSDK.Plot

SuperSDK 绘图与数据分析 UI 组件库 - 数据表格、SPC 图表、曲线绘制等

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
7.16.2 0 4/14/2026
7.16.0 25 4/13/2026
7.15.10 25 4/13/2026
7.15.6 24 4/13/2026
7.15.5 34 4/12/2026
7.15.1 32 4/12/2026
7.15.0 32 4/12/2026
7.14.12 33 4/12/2026
7.14.11 33 4/12/2026
7.14.8 36 4/12/2026
7.14.7 33 4/12/2026
7.14.6 30 4/12/2026
7.14.5 31 4/12/2026
7.14.3 33 4/11/2026
7.14.2 31 4/11/2026
7.14.0 37 4/10/2026
7.13.0 42 4/10/2026
7.12.0 37 4/10/2026
7.11.0 34 4/10/2026
7.10.0 78 4/8/2026
Loading failed

add lua function