JustinL
V2EX  ›  Windows

请教 Windows 桌面开发选择

  •  1
     
  •   JustinL · Dec 15, 2023 via iPhone · 22684 views
    This topic created in 933 days ago, the information mentioned may be changed or developed.
    先说一下背景:建筑行业公司,内部工程师用,因此只需要 Windows 即可,同时公司所有电脑已经是 Win11 ,不用兼容 xp 那种包袱,可以考虑上最新的技术。内部使用铺开后如果反馈不错,有可能对外销售。

    做了一些 study ,感觉主要是这几种:
    1. Delphi/Lazarus 。在前公司用过,确实很方便,但是 Delphi 需要授权,Lazarus 社区也比较小,领导不喜欢,pass
    2. C#+WPF 。主要担心被反编译问题,但是貌似很多软件也是 C#,请问是否多虑?搜了一下没有太好的解决方案。
    3. C++ qt 。主要担心上手难度问题,团队没写过 C++,不过兴趣很大,就是怕交付时间不能保证。
    4. C#写界面,C++写核心算法。不知道里面有没有什么调用的坑?

    限定在 Windows 就行了,不需要讨论跨平台。

    陷入选择困难症了……请有经验的大佬们指点一二~
    Supplement 1  ·  Dec 15, 2023

    经提醒,qt可能也有授权问题。我之前一直理解是动态链接就没问题,刚马上搜了一下,情况可能会比较复杂,因为qt使用的协议很多,不同模块有可能不同。

    Supplement 2  ·  Dec 19, 2023

    感谢诸位的帮助🙏

    准备使用C# + Avalonia,尽可能地使用 aot 编译。

    但正如我在留言中提及,私心希望学点新东西,所以自己会学一下 go + wails,希望下次选型能用上。

    再次感谢大家。

    134 replies    2023-12-17 21:18:23 +08:00
    1  2  
    jgh004
        101
    jgh004  
       Dec 15, 2023
    @JustinL
    想要快,c# winform , 商业的可以用 devexpress 控件,界面中规中矩。
    想要界面好看,用 Avaloinia ,相当于 wpf.
    防反用基于虚拟机的混淆工具。
    zggsong
        102
    zggsong  
       Dec 15, 2023
    WPF
    buaacss
        103
    buaacss  
       Dec 15, 2023
    WPF 是最好用的。不过如果你真想看看其它的 UI 框架的话,我推荐 gaclib https://gaclib.net/contact.html

    照着 demo 糊一个简单的应用非常容易。
    没有授权问题,除非你要改 gaclib 本身的代码。
    纯 C++,反编译困难。
    遇到问题可以直接加群问。
    nxforce
        104
    nxforce  
       Dec 15, 2023
    @liyafe1997

    QT 中国法务部不是这样子想的
    nxforce
        105
    nxforce  
       Dec 15, 2023
    flutter 吧,不做涉及到 OS 底层冷门 API 的 desktop 应用,这个绝对可以满足。
    yuyue001
        106
    yuyue001  
       Dec 15, 2023
    可以试试 wails ,逻辑用 go 写,UI 用网页。

    安装包小,而且性能好。

    https://wails.io/zh-Hans/
    NPC666
        107
    NPC666  
       Dec 15, 2023 via Android
    可以试试 Rust+Tauri ?
    aLazarus
        108
    aLazarus  
       Dec 15, 2023
    webview2 ?
    qaz168000
        109
    qaz168000  
       Dec 15, 2023
    靠谱的选择只能是 2 和 3 了,hold 住就用 3 ,一般情况直接选 2...
    asm
        110
    asm  
       Dec 15, 2023
    不懂开发,但是谈到反编译 c#,确实不堪,跟 java 一样,拖进去就是源码,除了混淆,好像也没啥好的方案。
    asm
        111
    asm  
       Dec 15, 2023
    @asm 但是 c++,其实也一样,不过门槛高点,对于我们来说,不加 vm 的 cxx ,也如同源码。当然 vm 的,也看看加的点对不对。所以,前期没有自己核心的算法或者牛逼的竞争力的东西,反不反编译没啥区别,再着最好的方法就是注册专利,现在流行这个,都不 vm 了。注册专利,告一个准一个。
    2zhimazhima2
        112
    2zhimazhima2  
       Dec 15, 2023
    可以用 WPF+CLR+c++
    jsq2627
        113
    jsq2627  
       Dec 15, 2023 via iPhone
    核心逻辑放服务端。客户端无论是 native 还是 web 随意,反正都能被逆向。
    tutudou
        114
    tutudou  
       Dec 15, 2023
    直接 c#吧,其实界面也是很麻烦的,如果语言界面生态不完整的话,会非常的难受。
    lizhenjia569
        115
    lizhenjia569  
       Dec 15, 2023
    pyside6 走起 出活快 LGPL 协议
    mmdsun
        116
    mmdsun  
       Dec 15, 2023 via iPhone
    在这里选,微软官方推荐的技术栈:
    https://learn.microsoft.com/zh-cn/windows/apps/get-started
    levelworm
        117
    levelworm  
       Dec 15, 2023
    @JustinL 这个做法是正确的。只要能凑乎交货,那是技能学得越多越好。
    akira
        118
    akira  
       Dec 16, 2023
    建筑行业? 涉及到 CAD 之类的么。。
    u823tg
        119
    u823tg  
       Dec 16, 2023
    Avalonia aot 就行
    sofukwird
        120
    sofukwird  
       Dec 16, 2023 via Android
    我建议你选 golang ,java 和 c#这种可以以 jar 形式发布包的很快你就会碰到收费库,而且无法自己修改审查
    hez2010
        121
    hez2010  
       Dec 16, 2023 via Android
    c# + avalonia ,然后用 nativeaot 编译。这样就不用担心反编译问题了。
    Aloento
        122
    Aloento  
       Dec 16, 2023
    @shijingshijing #12 微软找你收诽谤费还差不多
    Aloento
        123
    Aloento  
       Dec 16, 2023
    C# 不用再考虑了
    tux
        124
    tux  
       Dec 16, 2023
    WebView2
    encro
        125
    encro  
       Dec 16, 2023
    当然是 wpf 。。。

    公司有 qt,wpf 项目,我也写过,你不涉及底层较多 C++库的话,就 wpf 吧。

    如果底层需要用很多 C++技术,那么用 qt 也可以。。。Qt5.9 的协议还行。

    可以结合你需要用到的底层库来考虑。
    encro
        126
    encro  
       Dec 16, 2023
    不用太考虑反编译问题,
    钉钉微信很多还是基于 webkit 呢,
    对方没必要要你源码,
    只要学你交互,
    找个外包实现你一套也不要多少成本的。
    JustinL
        127
    JustinL  
    OP
       Dec 16, 2023 via iPhone
    @u823tg
    @hez2010
    AOT 是否 .NET 8 才很好地支持?
    JustinL
        128
    JustinL  
    OP
       Dec 16, 2023 via iPhone
    @akira 有可能涉及三维模型的展示
    nevermoreluo
        129
    nevermoreluo  
       Dec 16, 2023
    很快啊,几乎没有犹豫,啪的一下就选了 wpf

    没写过 c++的团队,还是建议 wpf 好用。
    不是担心不好写啥的,大多数情况 c with class 硬搞都可以搞。
    但是所有人都摸石头过河,没有规范到头来一堆问题。
    不仅仅是开发成本,维护成本也是成本。
    如果有得选当然选 wpf ,人生苦短。
    当然如果只有一个人写,养老的那么选 c++ (doge ,狗头保命
    hez2010
        130
    hez2010  
       Dec 16, 2023 via Android
    @JustinL 7 其实就可以了,不过 8 是 lts 所以建议用 8 。
    daokedao
        131
    daokedao  
       Dec 16, 2023
    wails 看着不错
    tuomasi
        132
    tuomasi  
       Dec 16, 2023 via iPhone
    只选 mfc
    8jinmuyan8
        133
    8jinmuyan8  
       Dec 17, 2023 via Android
    slint + rust or c++
    cooldays
        134
    cooldays  
       Dec 17, 2023
    5. C#写界面(不清楚 C# Winform/WPF 界面程序是否支持 AOT), 然后用 C#写核心算法, 然后用 AOT 编译后, 看不到算法的源码
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2822 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 133ms · UTC 07:01 · PVG 15:01 · LAX 00:01 · JFK 03:01
    ♥ Do have faith in what you're doing.