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

客户端开发用 Java 还是 C#

  •  
  •   albertofwb ·
    albertofwb · 2017-09-07 21:58:26 +08:00 · 9389 次点击
    这是一个创建于 2638 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果平台仅限于 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   ·   实用小工具   ·   5443 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 08:25 · PVG 16:25 · LAX 00:25 · JFK 03:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.