UltimateUI
UltimateUI 是一个面向 WebKit 的高性能 C# GUI 框架。应用代码使用强类型 C# DOM API;框架把元素树、属性、样式和事件监听器降低成二进制 opcode frame, 再由预加载的 TypeScript shim 在 WebKit renderer 内执行 DOM mount/update。
当前 v1 目标平台是 Linux x86_64:
- 渲染宿主:WebKitGTK 6.0
- JavaScript 引擎:JavaScriptCoreGTK 6.0
- 运行时路径:C# typed DOM -> binary wire frame -> WebKitGTK -> shim decoder -> DOM
- 事件路径:DOM event ->
window.webkit.messageHandlers.uui-> C# listener registry
最小示例
var builder = UltimateAppBuilder.CreateDefaultBuilder();
var app = builder.Build();
var window = app.MainWindow = new Window();
window.Render(ctx =>
{
var count = ctx.UseState(0);
var root = new Div { Class = "container" };
var button = new Button($"Clicked {count.Value}");
button.OnClick += (_, _) => count.Update(static value => value + 1);
root.Children.Add(new H1("UltimateUI"));
root.Children.Add(button);
return root;
});
return await app.RunAsync();
当前边界
- WebKitGTK 是当前真实 renderer;
NullRenderHost用于测试、golden frame 和无 UI 环境。 - macOS
WKWebView与 WindowsWebView2是保留接口位,尚未实现。 - Native WebProcessExtension 是预留快路径;默认路径使用
webkit_web_view_evaluate_javascript。 - 用户代码不直接写 JavaScript;JavaScript 只作为框架内部 shim 存在。