客户端开发用 Java 还是 C# - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
albertofwb
V2EX    程序员

客户端开发用 Java 还是 C#

  •  
  •   albertofwb
    albertofwb 2017-09-07 21:58:26 +08:00 9973 次点击
    这是一个创建于 2984 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果平台仅限于 windows 的话一般是 C#

    如果希望客户端同时还能运行在 linux mac 上,也是 java

    我发现有的跨平台软件,在 linux mac 上的主要部分共用 java 代码,而在 windows 却单独用 C#

    想知道这是为什么?
    65 条回复    2019-12-17 15:21:31 +08:00
    cccRaim
        1
    cccRaim  
       2017-09-07 22:04:15 +08:00 via iPhone
    js 啊(滑稽
    JohnLou
        2
    JohnLou  
       2017-09-07 22:05:32 +08:00
    让 linux 的用户都来 windows,linux 敲敲命令行得了。
    limhiaoing
        3
    limhiaoing  
       2017-09-07 22:06:33 +08:00 via iPhone
    之前 C#官方不支持这 2 平台呗,现在.NET Core 虽然支持,但并不包含 GUI。
    WordTian
        4
    WordTian  
       2017-09-07 22:06:53 +08:00 via Android
    java 程序的界面,写的真他喵费劲啊
    albertofwb
        5
    albertofwb  
    OP
       2017-09-07 22:08:40 +08:00 via Android
    @cccRaim 这个的确是目前比较时髦的技术。平台通吃呀。
    mosliu
        6
    mosliu  
       2017-09-07 22:11:15 +08:00   2
    electron..
    wolong
        7
    wolong  
       2017-09-07 22:17:12 +08:00
    发现有的跨平台软件,在 linux mac 上的主要部分共用 java 代码,而在 windows 却单独用 C# 。

    windows 平台 C# 应该是不二之选了,自然用这个是最方便的。(也有认为用 QT 之类的更好,这个就是每个人的观点不同造成的了,反正我是喜欢 C#)

    Java 跨平台,可能在 gui 方面在各平台上有点差异,所以 linux、mac 上核心逻辑代码上共用一段 java,具体 gui 上再用相应的库。

    我想问的是,你的目标客户真的是三个平台上的用户比例都是相当的吗?有必要去折腾 java 的 gui 吗?
    gowk
        8
    gowk  
       2017-09-07 22:22:44 +08:00 via Android
    electron+1
    oyjc
        9
    oyjc  
       2017-09-07 22:27:39 +08:00
    Windows: C# .NET Framework
    MacOS/Linux/Android/iOS: C# Xamarin
    Web Browser: C# MONO-WebAssembly

    Server: .NET Core (linux or win server)
    albertofwb
        10
    albertofwb  
    OP
       2017-09-07 22:28:59 +08:00 via Android
    @wolong 当然,大部分还是 windows 用户,只是好奇为何不在 windows 上沿用大部分公共 java 代码
    janxin
        11
    janxin  
       2017-09-07 22:39:54 +08:00 via iPhone
    你要跨平台不好啊,Windows 上我只用 C#
    wolong
        12
    wolong  
       2017-09-07 22:46:00 +08:00
    @albertofwb 估计是 C#和 java 混着用不太方便?也可能 windows 是一组人在做,这个是主力方向,mac/Linux 是一组人做,这个是次要方向,相当于做着玩。具体不懂了。
    albertofwb
        13
    albertofwb  
    OP
       2017-09-07 22:47:42 +08:00 via Android
    ^_^,谢谢了
    evolify
        14
    evolify  
       2017-09-07 22:53:24 +08:00 via iPhone
    JavaFx 也还不错
    diyisoft
        15
    diyisoft  
       2017-09-07 23:42:16 +08:00 via iPhone   2
    现在 Delphi 10.2 全平台通吃
    WispZhan
        16
    WispZhan  
       2017-09-07 23:55:58 +08:00
    @evolify +1

    ---

    Java FX 比 Swing / AWT / SWT 界面更炫。而且类 XML 的 UI 布局更贴近于前端的一些开发,甚至支持 CSS。

    这个例子貌似不错。
    https://github.com/asciidocfx/AsciidocFX
    leeg810312
        17
    leeg810312  
       2017-09-08 00:06:29 +08:00 via Android
    java 的 gui 没有好用的 IDE 开发,vs 做 winform 开发太方便了
    wdlth
        18
    wdlth  
       2017-09-08 00:10:44 +08:00
    上 nw.js
    quanwei9958
        19
    quanwei9958  
       2017-09-08 00:19:26 +08:00 via iPhone
    electron +1
    dsg002
        20
    dsg002  
       2017-09-08 01:56:56 +08:00   1
    正在用 C#开发客户端的怒答一发,C#开发开发客户端方便的不是一点半点,多线程操作窗口组件几乎没有额外的知识负担。
    msg7086
        21
    msg7086  
       2017-09-08 03:17:15 +08:00   1
    Java 做图形界面就是_____________。

    当然努力一下也是可以做得好的,但是前提是你真的得努力一下。
    precisi0nux
        22
    precisi0nux  
       2017-09-08 06:39:12 +08:00   2
    说 electron 的真的不嫌体积大吗?
    Cbdy
        23
    Cbdy  
       2017-09-08 06:48:59 +08:00 via Android
    jb 全家桶是 java 做的,感觉挺好的
    ucanuup
        24
    ucanuup  
       2017-09-08 07:01:46 +08:00
    就没有人推荐 QT 吗? QT 专业做跨平台客户端。
    atcdef
        25
    atcdef  
       2017-09-08 07:36:56 +08:00
    lazarus freepascal 的 ide,跨平台不错。用这个写过几个小工具。没试过大项目
    yulitian888
        26
    yulitian888  
       2017-09-08 08:13:17 +08:00
    @limhiaoing mono GtkSharp
    yuyuyu
        27
    yuyuyu  
       2017-09-08 08:22:10 +08:00 via iPhone
    你不知道 mono 吗? c#这三个平台通吃
    Akkuman
        28
    Akkuman  
       2017-09-08 08:22:38 +08:00
    qt
    delphi
    lazarus
    都是全平台 gui
    yidinghe
        29
    yidinghe  
       2017-09-08 08:33:51 +08:00 via Android   1
    如果楼主已经熟悉 Java,那么可以考虑 javafx。如果不知道怎么入门,可以看看这里 https://www.beibq.cn/book/2ajm633/intro
    xomix
        30
    xomix  
       2017-09-08 08:36:33 +08:00
    港真做 java 的 gui 还不如做成服务器端用 nwjs 之流做客户端呢
    lrh3321
        31
    lrh3321  
       2017-09-08 08:37:52 +08:00
    ts 或者 js 吧,vscode 就是基于 electron 来的
    plqws
        32
    plqws  
       2017-09-08 08:39:52 +08:00
    JavaFX 和 Electron 二选一,选自己会的。
    torment5524
        33
    torment5524  
       2017-09-08 08:56:25 +08:00
    刚工作的时候做了几年 eclipse 插件开发,习惯之下,用 swt 做过一些客户端,体验也还不错,用 java 做客户端其实也不是不行,看熟不熟悉了,java 的界面布局刚接触很容易头大。不过现在 eclipse 也提供 swt 的拖放界面,应该方便不少,就是在不同的环境下运行需要准备不同的 swt 包。
    java8 的话可以直接用 javafx,感觉应该方便不少,一直在低版本下开发,没用过这个,只是觉得 jre 自带的话应该在跨平台的时候方便不少。
    c#界面拖拖放放就出来,效率的确是高。
    yalanaika
        34
    yalanaika  
       2017-09-08 08:57:12 +08:00
    delphi +1
    Tuisku
        35
    Tuisku  
       2017-09-08 08:57:48 +08:00
    nw.js
    kenshinji
        36
    kenshinji  
       2017-09-08 09:01:02 +08:00
    Electron
    justicelove
        37
    justicelove  
       2017-09-08 09:02:42 +08:00
    chocotan
        38
    chocotan  
       2017-09-08 09:10:43 +08:00
    jxbrowser 很不错,但是是要购买授权的
    kevinzhwl
        39
    kevinzhwl  
       2017-09-08 09:31:17 +08:00 via iPhone
    @cljnnn671 显然可以推荐,个人认为是中上之选。但入门难度有提高,楼主未必能接受。
    imherer
        40
    imherer  
       2017-09-08 09:43:29 +08:00
    electron +1
    albertofwb
        41
    albertofwb  
    OP
       2017-09-08 09:49:09 +08:00 via Android
    感谢各位的认真回复 @everybody
    daimazha
        42
    daimazha  
       2017-09-08 09:56:25 +08:00
    electron 吧,现在用的比较多。
    rwecho
        43
    rwecho  
       2017-09-08 09:57:28 +08:00
    @albertofwb

    你是要感谢各位呢还是 everybody 呢?
    tanranran
        44
    tanranran  
       2017-09-08 09:58:50 +08:00
    electron
    jjx
        45
    jjx  
       2017-09-08 10:30:35 +08:00
    @diyisoft

    delphi 有 gc 了吗

    没有 gc 的语言写应用真心累
    voocel
        46
    voocel  
       2017-09-08 10:33:13 +08:00
    @everybody 就可以 @到所有的人吗? v 站还有这隐藏技能?
    xomix
        47
    xomix  
       2017-09-08 11:11:54 +08:00
    @voocel 并不能
    leavic
        48
    leavic  
       2017-09-08 11:21:03 +08:00
    python 大法好!
    yzhen123
        49
    yzhen123  
       2017-09-08 13:30:58 +08:00
    c# + gtk#
    janxin
        50
    janxin  
       2017-09-08 14:22:57 +08:00
    =,=你们推荐 nw.js 或者 electron 的话,本地功能还是需要 C++,只是远端功能的话 B/S 也能解决吧
    jason19659
        51
    jason19659  
       2017-09-08 15:13:03 +08:00
    我会 java 嵌入个网页
    runningman
        52
    runningman  
       2017-09-08 16:05:59 +08:00
    qt
    owenliang
        53
    owenliang  
       2017-09-08 16:07:42 +08:00
    QT。

    或者

    Delphi 10.2
    a7063888
        54
    a7063888  
       2017-09-08 16:29:14 +08:00 via iPhone
    Delphi …
    shuimuyian
        55
    shuimuyian  
       2017-09-08 16:52:46 +08:00
    electron 或者 nw.js
    gnaggnoyil
        56
    gnaggnoyil  
       2017-09-09 07:59:28 +08:00
    既然.Net Core 没有 GUI 组件的话那最不烂的选择只有 Qt 了……

    顺便你们这些推荐 electron 的是认真的吗?至少为客户的机子着想吧……
    wedaren
        57
    wedaren  
       2017-09-09 10:50:24 +08:00
    electron+1
    limhiaoing
        58
    limhiaoing  
       2017-09-09 21:16:48 +08:00
    @yulitian888
    注意我的原话是
    “之前 C#官方不支持这 2 平台呗,现在.NET Core 虽然支持,但并不包含 GUI。”
    你说的 mono 并不是官方的。
    至于你说的 GtkSharp,我说的不包含 GUI 是说.NET Core 不包含 GUI。
    zjsxwc
        59
    zjsxwc  
       2017-09-09 21:36:59 +08:00 via Android
    果然很 winV2EX
    yulitian888
        60
    yulitian888  
       2017-09-09 22:41:43 +08:00 via iPad
    @limhiaoing 严格来说,你是对的。就回答楼主的问题而言,你的回答看似有歧义,会让不知情的人觉得目前并没有 gui (而不是没有官方 gui )

    然后,补充个事,mono 的版权方,Xamarin 公司,被微软收购了。所以,mono 就算不是亲儿子,也算是收养了,姑且算半官方吧。
    yulitian888
        61
    yulitian888  
       2017-09-09 22:43:20 +08:00 via iPad
    @limhiaoing 再补充一句,gtk#是随 mono 一起的,装了 mono 就有了,而不是你解读的两个东西。
    limhiaoing
        62
    limhiaoing  
       2017-09-09 23:25:29 +08:00
    @yulitian888
    注意我的原话是
    “之前 C#官方不支持这 2 平台呗,现在.NET Core 虽然支持,但并不包含 GUI。”
    这里的“之前”是微软宣布.NET Core(2014)之前,微软收购 xarmarin 是在去年(2016)。另外我没说 gtk#不属于 mono,我只是说对于你举出的 gtk#,我的原意是.NET Core 不包含 GUI。
    beginor
        63
    beginor  
       2017-09-10 10:52:12 +08:00 via Android
    mono + gtk# 跨平台, 可以自带 runtime, 还可以用 mkbundle 打包(加壳)成一个独立的可执行文件, 参考 U3D 桌面版客户端, 可以说是 mono 的一站式解决方案。
    skadi
        64
    skadi  
       2017-09-10 11:29:06 +08:00
    拒绝 electron ,真心是新一代 flash.内存占用简直爆炸.
    better2man
        65
    better2man  
       2019-12-17 15:21:31 +08:00
    您好,我这边想咨询一下您是否有撰写 aelf 技术解读资讯或文章(技术优势对比、经济系统解读、分析 aelf 经济系统设计思路)并进行发布的意愿,aelf 也会对您写出的文章做曝光推荐(含 aelf 自媒体频道、aelf 合作媒体渠道)及后续的开发者社区相关福利活动也会优先对您进行安排。

    AELF 是一个去中心化的云计算平台,旨在帮助企业 /个人高效便捷地使用基础区块链技术构建去分布式应用( DAPP )。在中心化领域中,我们使用亚马逊 AWS 部署服务,在区块链领域中,可以将服务托管在 AELF 去中心化云计算区块链网络上。

    如有意向请添加微信:a439714,请您备注(aelf 文章)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2546 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 03:43 PVG 11:43 LAX 19:43 JFK 22:43
    Do have faith in what you're doing.
    ubao msn 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