写 windwos 应用程序,选择方向? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
octalempyrean
V2EX    程序员

写 windwos 应用程序,选择方向?

  •  
  •   octalempyrean 2019-10-22 17:21:40 +08:00 9205 次点击
    这是一个创建于 2185 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想学习写下 Windows C# 桌面应用程序,大佬帮忙指引条路。

    1. C# + winform
    2. C# + WPF
    3. 如果选择 1 或 2,那么界面是自己写还是类似 DotNetBar or DevExpress?
    4. 还是什么?
    60 条回复    2019-10-24 08:38:38 +08:00
    libasten
        1
    libasten  
       2019-10-22 17:24:17 +08:00
    界面这个看你或者甲方的需求啊。
    没有购买 dev 这些组件授权,建议还是自带的吧,字体和对齐都弄好了,也蛮好看的。
    memedahui
        2
    memedahui  
       2019-10-22 17:26:52 +08:00
    目测楼下有说 electron 的.
    Jirajine
        3
    Jirajine  
       2019-10-22 17:28:35 +08:00 via Android
    electron 或 qt
    yanzidao
        4
    yanzidao  
       2019-10-22 17:30:28 +08:00
    Qt 支持一下
    MonoLogueChi
        5
    MonoLogueChi  
       2019-10-22 17:33:05 +08:00
    WPF 是未来,也是现在微软主推的桌面程序设计方式。而且 wpf 的组件样式现在也越来越多,开发难度也越来越低了
    hkitdog
        6
    hkitdog  
       2019-10-22 17:34:32 +08:00 via iPhone
    易语言,做出来的界面比 UWP, WPF 还好看
    zgcwkj
        7
    zgckj  
       2019-10-22 17:35:06 +08:00
    C# + ( winform,wpf )
    好看的界面 > miniblink(小,难,有第三方库)
    好看的界面 > NanUI(大,简单,C#winform)
    Foreverdxa
        8
    Foreverdxa  
       2019-10-22 17:36:15 +08:00
    现在正在写 qt 仔,接触加写软件,两年半到三年时间,薪资没有端盘子的高。。。
    还是推荐 qt,很方便,也很简单,而且是 c++,自由度也比较高
    thfurior
        9
    thfurior  
       2019-10-22 17:37:47 +08:00
    c# wpf 最简单
    macha
        10
    macha  
       2019-10-22 18:05:16 +08:00
    没有 win32 的开发经验就 electron 吧,C#的根子还是 win32。electron 完全就是写前端,而且不用装 C#的 framework。
    anakinsky
        11
    anakinsky  
       2019-10-22 18:19:24 +08:00
    推荐 Qt or Duilib
    amazingrise
        12
    amazingrise  
       2019-10-22 18:28:28 +08:00 via Android
    wpf 其实特简单。性能也比 electron 要强。
    beginor
        13
    beginor  
       2019-10-22 18:30:28 +08:00 via Android
    C#+Cef.net , 界面用浏览器实现,C# 专门调用 Windows API 方便
    Caballarii
        14
    Caballarii  
       2019-10-22 18:40:03 +08:00
    electron 可以跨平台
    wangyzj
        15
    wangyzj  
       2019-10-22 19:41:17 +08:00
    WPF
    Counter
        16
    Counter  
       2019-10-22 20:16:51 +08:00 via Android
    @MonoLogueChi
    @thfurior
    @amazingrise
    @wangyzj
    请问 VS 新建一个新的 WPF 解决方案,什么也不做,内存占用就 20MB,是为啥?
    Counter
        17
    Counter  
       2019-10-22 20:19:42 +08:00 via Android
    @MonoLogueChi
    @thfurior
    @amazingrise
    @wangyzj
    是编译运行的程序内存占用 20MB
    octalempyrean
        18
    octalempyrean  
    OP
       2019-10-22 22:11:27 +08:00 via Android
    .net core 怎么没说的呢?
    tusdasa
        19
    tusdasa  
       2019-10-22 22:14:13 +08:00 via Android
    Qt 啊 还跨平台
    ddup
        20
    ddup  
       2019-10-22 22:35:03 +08:00 via Android
    WPF,会前端技术栈的话就 electron 可以跨平台。
    secondwtq
        21
    secondwtq  
       2019-10-22 22:58:42 +08:00
    @octalempyrean .Net Core 本身和 GUI 无关吧,GitHub 上倒是有个跨平台的 GUI 框架 Avalonia (名字挺有意思,Avalon 是 WPF 原来的 codename),不过这个是伪经,不属于微软教认可的经典,所以不建议接触
    微软现在主推的应该是 UWP/WinUI 吧,UWP 相对于 WPF 应该算是有继承,但并不是一个东西
    当然要是指 Win32 的话那最新的应该还是 WPF

    哦对,说起 Express,理论上现在 .Net Core 和 WPF 开源之后,商业公司不需要购买 VS Professional License 也可以开发 WPF 程序了,不知道可不可行( IDE 就别想用了)。不过 anyway,Community 版本是允许 Individual Developer 商用的
    azhw
        22
    azhw  
       2019-10-22 23:09:52 +08:00
    @octalempyrean dotnet core 刚出的 3.0 也是 wpf winform
    再说,5 之后大一统了,只有 dotnet5 没有 core 了
    huruwo
        23
    huruwo  
       2019-10-22 23:19:20 +08:00
    electron 是什么鬼 ,市面上有多少 electron 开发的软件?
    suit
        24
    suit  
       2019-10-22 23:25:35 +08:00 via iPhone
    对性能要求比较高的话,用 winform 好把控一点
    Revenant
        25
    Revenant  
       2019-10-22 23:45:21 +08:00
    @macha #10
    1. Electron 打包生成的程序目录太大了
    2. 如果不考虑 XP 的话,win7 系统自带.net 3.5, win8 以上自带.net 4.0 以上的版本,并不需要刻意安装 runtime
    nvioue
        26
    nvioue  
       2019-10-23 00:14:36 +08:00 via Android
    为什么要搞这个???不怕失业?
    amazingrise
        27
    amazingrise  
       2019-10-23 01:09:36 +08:00 via Android
    @Counter 其实现在时代不一样了,内存充足的情况下是允许这种适度使用的。原理层面的话,不太清楚。猜测是因为 CLR。(非严格意义上可以理解是.net 世界的 jvm )
    MaiKuraki
        28
    MaiKuraki  
       2019-10-23 01:13:40 +08:00
    windwos 拼写错了
    MaiKuraki
        29
    MaiKuraki  
       2019-10-23 01:22:20 +08:00
    aardio ?
    就是有一个用户整天在 V 站上推广的那个?
    felixin
        31
    felixin  
       2019-10-23 01:25:41 +08:00 via Android
    electron 应该是趋势了,连微软自己都用 VS code,microsoft teams,跨平台的优势是巨大的,以后转成在线服务也非常方便,微软也已经这么干了

    对于 UWP,可以看看 platform.uno ,不过个人感觉没有 react 系列有优势
    MaiKuraki
        32
    MaiKuraki  
       2019-10-23 01:25:59 +08:00
    前两天下载了一个 VPN 客户端好像是.net core 做的
    Kylin30
        33
    Kylin30  
       2019-10-23 03:28:36 +08:00
    delphi
    sker101
        34
    sker101  
       2019-10-23 04:03:20 +08:00 via iPhone   1
    electron 虽然对于前端简单 但是想写 windows 程序除非完全不需要用到 windows 底层 api 不然没有 c++基础基本写不来 很多包 nodejs 都没有 得自己写然后转换
    trait
        35
    trait  
       2019-10-23 08:27:49 +08:00 via iPhone   6
    别用 electron,真的是垃圾,那启动速度,过场切换,让人想不到 2019 年了,这么高的个人 pc 配置应用程序反而倒退这么多,什么时候这种新 flash 能死掉
    鲍尔默这个废物,dotnet 本就是为跨平台而生,没这脑残,早就一统江湖了,还轮得到如今这些臭鱼烂虾,一己之力毁了 C# dotnet
    https://i.loli.net/2019/10/23/xGI1tcm9VYSsqEg.jpg
    octalempyrean
        36
    octalempyrean  
    OP
       019-10-23 08:37:27 +08:00 via Android
    @MaiKuraki 哎呀
    murmur
        37
    murmur  
       2019-10-23 08:40:24 +08:00   2
    那么多应用程序只是 chrome 的扩展而已,那些吹 electron 的,你们只认识浏览器的壳子,去别人目录里数数别人带了多少 native 程序和 dll,人家的 electron 或者 chrome 扩展就是显示点业务数据,核心还是落在 c 上
    murmur
        38
    murmur  
       2019-10-23 08:41:11 +08:00
    更别说腾讯家的奇葩架构除了 chrome 扩展还有 qq 浏览器,这什么恶心架构。。
    mcdull619
        39
    mcdull619  
       2019-10-23 09:04:47 +08:00
    macha
        40
    macha  
       2019-10-23 09:35:09 +08:00
    @murmur @Revenant
    如果自己写着玩用 electron 也还好,打包出来大概 50M 差不多,关键是不用去学 Windows 的一堆 API 和编程讨论。
    如果是公司级别的产品不推荐 electron。因为访问 native 的话很多时候还是要自己去写 C++插件。都开始写 C++了,还不如直接上 duilib。找个懂 win32 的人把 duilib+libcef+libcurl+openssl+log+image 库+zlib+等等库的框架搭好,前端还是负责 UI,c++负责提供 native API、异形窗口、service、进程间通信等等。
    dinjufen
        41
    dinjufen  
       2019-10-23 10:01:43 +08:00
    感觉 PC 桌面市场越来越小了。。
    cmdOptionKana
        42
    cmdOptionKana  
       2019-10-23 10:09:07 +08:00
    @trait 你说的是假如 C# 早就正确发展的情况,但现实是 C# 还不能做跨平台 GUI。

    现在 electron 主要解决三个问题:界面美观现代化,轻松跨平台,简单易学。electron 的缺点谁都知道,但能同时做到这三点的却只有这一个选择。
    loginv2
        43
    loginv2  
       2019-10-23 10:22:37 +08:00
    Qt
    Delphi
    Lazarus
    LokiSharp
        45
    LokiSharp  
       2019-10-23 11:21:13 +08:00   3
    坚决抵制 Electron 我可不想在我的电脑上装 几十个 Chromium
    yanzidao
        46
    yanzidao  
       2019-10-23 12:47:13 +08:00
    搭车问一下,现在.NET 是否还是相对容易被逆向工程,也就是说反编译?
    Chenamy2017
        47
    Chenamy2017  
       2019-10-23 13:36:26 +08:00
    以前主做 QT 的,优势简单、跨平台,C++接口。
    现在转 Electron 了,微软的 VSCode 正是用此开发,貌似用户量很大了,我也在用。
    Electron 的定位主要还是前端界面,要处理什么的还是上 C++之类的。
    qile1
        48
    qile1  
       2019-10-23 15:41:32 +08:00 via Android
    go 不是也可以开发 gui,谁弄过这个,不行就起 web 服务
    hnbcinfo
        49
    hnbcinfo  
       2019-10-23 16:00:09 +08:00
    windows 应用程序肯定还是微软亲生的更好,那就 WPF 吧,简单漂亮,而且 MVVM 模式开发起来也相当舒服。
    zhaozhentou
        50
    zhaozhentou  
       2019-10-23 16:01:21 +08:00
    duilib
    nirvanacqw
        51
    nirvanacqw  
       2019-10-23 16:08:03 +08:00
    为什么没人说 uwp 呢
    hkitdog
        52
    hkitdog  
       2019-10-23 16:14:47 +08:00 via iPhone
    @yanzidao 可以狗
    jsq2627
        53
    jsq2627  
       2019-10-23 16:15:15 +08:00
    从 Win8 就开始推的 WinRT/UWP,至今不温不火。WPF 坐拥企业市场生态,过去几年缺几乎停滞更新迭代。现在又搞什么 XAML Islands 重新给 WPF 续命。
    Xamarin Forms 野心很大,底层搞的也很好,就是很难用。

    微软难道不知道开发者想要什么吗?一个看起来不错的 UI 库,不太差的开发体验,尽可能跨平台。WPF/UWP/Xamarin 总是在某个方面缺根弦。。要不桌面市场也没 electron 什么事了
    jsq2627
        54
    jsq2627  
       2019-10-23 16:18:40 +08:00
    @LokiSharp #45 .Net Core 3 来了,未来可能要变成装几十个 .Net Core Runtime :doge:
    andyholo
        55
    andyholo  
       2019-10-23 16:37:56 +08:00
    javafx 试试?跨平台,能和 webview 交互,能用 css 定制组件样式,还有 java 生态的无数包可以用
    FantasyPupil
        56
    FantasyPupil  
       2019-10-23 17:10:01 +08:00
    推荐 2,1 做界面确实难。
    yanzidao
        57
    yanzidao  
       2019-10-23 17:15:02 +08:00
    @hkitdog 混淆?
    Linko
        58
    Linko  
       2019-10-23 17:25:35 +08:00
    学习.net core + WPF
    dosmlp
        59
    dosmlp  
       2019-10-23 18:06:06 +08:00
    问就是 Qt
    darknoll
        60
    darknoll  
       2019-10-24 08:38:38 +08:00
    一边日常抵制 Electron
    一边又用着 vscode
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3125 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 11:52 PVG 19:52 LAX 04:52 JFK 07:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86