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

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

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

    想学习写下 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
    zgcwkj  
       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
       2019-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   ·   我们的愿景   ·   实用小工具   ·   3501 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 04:45 · PVG 12:45 · LAX 21:45 · JFK 00:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.