V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
PaulKing
V2EX  ›  问与答

关于 Windows 桌面应用开发的技术选型

  •  
  •   PaulKing · 2015-12-14 23:02:15 +08:00 · 6244 次点击
    这是一个创建于 3276 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位 V 友好, 最近我们公司需要做一款兼容 Windows XP 的 Windows 音乐播放器, 支持 Socket.io 通信, 对应用的稳定性和内存管理要求比较严格. 由于我之前没整过 Windows 桌面应用开发, 对这方面也几乎是一片空白, 因此在技术选型上的一些想法可能不是很成熟, 在此想请教下各位有没有什么比较好的方案来做这个事情.

    先来谈下我自己的想法, 一开始我是准备开 Visual Studio 用 C# 来做, 但后来发现 Windows XP 最高只能运行到 .NET 4.0, 这直接导致很多的 NuGet 包都没法使用, 很多功能都需要自己手写, 后面维护起来的话比较困难, 并且开发效率也很难提升上去.

    QT 的学习成本太高, 并且目前最新的几个版本都对 Windows XP 没怎么做测试.

    后来我跑去了解了一下 NW.js 和 Electron, 可惜的是 Electron 不支持 Windows XP, 所以直接排除在外, NW.js 目前最高版本也只是 v0.13.0, 很多的特性也处于使用阶段, 并且 Chrome 团队也宣布未来将不再对 Windows XP 进行安全修复, 更新等操作. 今天我也邮件询问了 NW.js 作者, 他表示未来如果能通过对 NW.js 少量修改既能支持 XP 的话, 就会继续支持下去.

    现在的我若要使用 NW.js 的话, 目前主要面临着两个较大的问题:

    1. 应用上线后的迭代更新
    2. 应用桌面快捷方式的创建

    因为我们这款应用最终使用的用户都是电脑小白, 所以这一套最终都需要做到完全自动化, 对于问题一, 我能找到的 NW.js 应用更新方案有如下两个:

    1. 使用 node-webkit-updater 完成可执行包的自动化覆盖操作
    2. 使用 chocolatey 来进行包的管理操作

    但这两种方式就目前看来都算不上很靠谱的解决方案.

    问题二的 "应用桌面快捷方式的创建" 这个目前我还没有找到比较好的解决方案, 在想是否能通过自己写个脚本来自动生成.

    最后我来总结一下现在主要的应用需求:

    1. 支持 Windows XP 的桌面音乐播放器
    2. 支持 Socket.io 通信
    3. 运行稳定 (要求至少放着连续播三天)
    4. 要有一个应用可持续迭代更新及内测的解决方案
    5. 一个月时间独自完成开发 (当中包括学习时间)

    技术选型这块到目前为止我还未找到较为靠谱的解决方案, 一个人的思考方式和技术视野始终有限, 想到 V2EX 上大神云集, 遂来发帖求助, 还请高人指点.

    21 条回复    2015-12-15 19:21:28 +08:00
    LMkillme
        1
    LMkillme  
       2015-12-14 23:18:47 +08:00
    PHPhub 写得不错~
    LMkillme
        2
    LMkillme  
       2015-12-14 23:21:45 +08:00
    QT 个人感觉学习成本不会太高,以前也是拿起 QT 就现学现卖撸了个百度音乐播放器,信号槽机制印象深刻,界面也挺好看的。
    PaulKing
        3
    PaulKing  
    OP
       2015-12-14 23:29:28 +08:00
    @LMkillme 其实 QT 主要还是考虑到它最近的几个版本对没有针对 Windows XP 做测试, 这块是令我比较担心的一点.
    theoractice
        4
    theoractice  
       2015-12-15 00:54:09 +08:00 via Android
    http://www.kfstorm.com/blog/
    c#不是问题。这个博主写了个我用了好几年的 wpf 版豆瓣 fm 客户端,界面超棒而且完美支持 xp 。

    http://wubin.in/#article/5
    还是豆瓣 fm 客户端,这个是用 aauto+htmlayout 写的。据说作者从编程菜鸟到写完第一版只用了俩星期。

    上面俩方法都满足 lz 所有的要求,界面都很华丽,还都有源代码。自己选吧。个人感觉 aauto 对小白用户更友好因为不用装.net
    theoractice
        5
    theoractice  
       2015-12-15 02:00:02 +08:00
    哈哈, github 搜一下 doubanfm ,各种语言的客户端都有。这东西跟 LZ 的需求非常相似,多看看自己评估下难度呗。
    theoractice
        6
    theoractice  
       2015-12-15 02:21:37 +08:00
    反正 NW.js 建议放弃。很难想象一个纯听歌软件启动就得半天然后还后台开一堆进程占内存的。
    pynix
        7
    pynix  
       2015-12-15 04:31:33 +08:00
    建议 wpf

    UWP 更佳。。。初创不用考虑 xp 用户了。应该考虑 wp 用户。。。。
    pynix
        8
    pynix  
       2015-12-15 04:31:49 +08:00
    不建议。。。 not 不用。
    BGLL
        9
    BGLL  
       2015-12-15 08:27:34 +08:00 via Android
    Qt 对 xp 兼容性还是挺好的,而且也不一定要用最新版本啊。
    wy315700
        10
    wy315700  
       2015-12-15 08:32:07 +08:00 via Android
    WTL
    hjc4869
        11
    hjc4869  
       2015-12-15 08:41:00 +08:00
    现在这个时间做兼容 XP 的软件还要追求稳定,又要用这么多新技术,确实是个难题了……
    chenjf2k
        12
    chenjf2k  
       2015-12-15 09:13:40 +08:00
    客户端.net 2.0~3.5 轻松解决。 服务端都可以( Node.js 或.net 4.5 )
    xwing
        13
    xwing  
       2015-12-15 09:25:31 +08:00
    Delphi....
    tabris17
        14
    tabris17  
       2015-12-15 09:31:55 +08:00
    wxWidgets
    harry890829
        15
    harry890829  
       2015-12-15 09:32:16 +08:00
    然而公司项目, win 桌面客户端使用 c/c++编写,界面库使用 wxwidgets ,通信使用 zmq
    superdong
        16
    superdong  
       2015-12-15 09:50:03 +08:00
    PaulKing
        17
    PaulKing  
    OP
       2015-12-15 10:18:37 +08:00
    @superdong 请问 GitHub 上面有地址吗? 我上去看看
    yougg
        18
    yougg  
       2015-12-15 10:27:50 +08:00
    Windows XP 上面满足楼主使用的现成的音乐播放器应该就有很多, 为什么公司要求自己开发呢?
    wshcdr
        19
    wshcdr  
       2015-12-15 11:27:59 +08:00
    XP?要么 MFC , 要么 wxWidget 了,
    hqs123
        20
    hqs123  
       2015-12-15 11:43:32 +08:00
    MFC 太旧了, winForm 、 WPF 把,也可以 Qt.
    PaulKing
        21
    PaulKing  
    OP
       2015-12-15 19:21:28 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3530 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:23 · PVG 19:23 · LAX 03:23 · JFK 06:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.