V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ShikiSuen
V2EX  ›  Apple

求推荐个好用的跨 WinNT / macOS 的非 Web 的 GUI 框架(给 C# 或 Swift 用的)。

  •  
  •   ShikiSuen · 287 天前 · 734 次点击
    这是一个创建于 287 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这些天接了个产品资讯管理系统的案子,事主希望拥有原生 GUI 介面操作体验。

    我只熟悉 SwiftUI 的 GUI 介面开发( AppKit 略懂);语言的话我只懂 .NET 6 版的 C# 以及 Swift 5 。 给事主的第一版程序赶鸭子上架用 C# .NET 6 WinForms 完成的。 这玩意可以在 macOS 系统下编译成能在 Windows 系统内跑的单独 EXE (需要安装 .NET 6 ),也能满足我全程在 macOS 系统下开发的需要。 ( Visual Studio 在 Windows 系统下的操作真让我适应不来。)

    WinFroms 虽然够传统(从 Visual Basic 7 开始就有了),但有个缺点就是对 HiDPI 那翔一般的支持。 不过事主没在用 HiDPI 显示器,所以这一点可以先搁置争议。

    但 WinForms 毕竟不像 CocoaTron 那样可以写 NSView 再套到 NSWindows 当中、然后用 NSWindowController 管理。 (没错,CocoaTron 就是 Windows 版的 AppKit 。) 这让我非常不适应。于是 2.0 版的程序的开发就让我有点想换个前端方案了。

    尝试了下面几个方案都不太可行:

    1. Cocoatron:这东西在现在的 Xcode 里面完全没法用;老电脑虽可,但我不会用 ObjC (只能略看懂)。

    2. swift-cross-ui:用 Gtk4 做的非官方 SwiftUI 跨平台模组。我这边 macOS 编译出来发现非得用 XQuartz 才能跑、效能稀烂; Windows 能编译出来,但介面操作了完全看不出画面有响应(除了窗体最大化有,但绘制的效果也不准确)。

    3. Qlift:给 Swift 用的 Qt 模组,要求 Qt5 。但我这边 Windows 虚拟机空间不足。一个 Qt5 WINNT 安装居然要 50GB 也太特么扯。更何况我 Google 找不到任何人在 Windows 上用这套的经验心得。

    4. MAUI:微软出这玩意就是用来𫫇心传统 WinNT 开发者的,妈的编译一个测试用 App 还要给 Windows 开 Sideload 、就故意不让你直接弄出一个 Single EXE 。我看介面还得自己撸 XML ,比 SwiftUI 体验烂多了。如果要是有办法能像 SwiftUI 那样用训令口吻直接写 UI 的话那还可以考虑。

    于是还有别的选择吗?

    Kroos
        1
    Kroos  
       287 天前
    阿瓦隆?但也需要 xaml 撸界面。。。
    ericguo
        2
    ericguo  
       286 天前
    > 产品资讯管理系统的案子,事主希望拥有原生 GUI 介面操作体验。

    无法理解,这种产品资讯管理系统,不用 Web 完全没理由啊!
    ShikiSuen
        3
    ShikiSuen  
    OP
       286 天前
    @ericguo 一是事主要求如此,二是我也没有前端 H5 的本地 App 开发经验。就比较麻烦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   965 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:17 · PVG 07:17 · LAX 16:17 · JFK 19:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.