公司客户端使用 mfc 编写,主要使用环境在 xp 上,所以现在还是虚拟机 xp+vc6.0 开发
现在终于说通领导开始考虑 html5 来代替 mfc 写客户端了,领导让我写一封邮件来说明 html5 和 mfc 各自的优势神马的
我觉得 mfc 一点优势都没有啊,根本被 html5 碾压啊
好吧,抱怨完了,我就想问下,怎么写邮件能够让领导赶紧拍板改成 html5 ,顺便问下 html5 的优势有些什么,我对 html5 不太熟……
1
bengol 2016-09-06 09:08:42 +08:00 via Android 2
mfc 碾压 h5 吧,骚年
|
2
geeglo 2016-09-06 09:09:30 +08:00 2
你不熟,就说被 html5 碾压?
|
3
harry890829 OP @bengol 你是认真的么……客户端还需要美化啊,每个控件都需要自己写啊…… mfc 的优势是系统调用?要是使用 html5 的话,外部框架也是我这边来写,对于一些对系统的调用并没有问题吧
|
4
harry890829 OP @geeglo mfc 写界面太烦了, mfc 还有什么优势?客户端操作全部线性,也没有多线程之间的一些问题
|
5
qqmishi 2016-09-06 09:11:31 +08:00 via Android 2
我预感领导用了 html5 之后会选择回到 mfc
|
6
Sharuru 2016-09-06 09:11:32 +08:00 via Android
主要使用在 XP 上的话,还是 MFC 妥...
|
7
ctftemp 2016-09-06 09:11:44 +08:00 via Android 3
不熟就说服老板?
|
8
harry890829 OP |
9
harry890829 OP @ctftemp html5 的话,不是我来写了啊,我就写外部容器了
|
10
CYNM 2016-09-06 09:13:30 +08:00
xp?妥妥的 mfc 啊
|
11
xxligang 2016-09-06 09:14:48 +08:00
winform
|
12
iwege 2016-09-06 09:15:22 +08:00
xp 就不用考虑 html5 了。直接 mfc 还好一点。
|
13
thinkif 2016-09-06 09:15:34 +08:00 1
楼主在自己对 HTML 5 不熟的情况下,就敢说『根本被 html5 碾压』,预感到以后可能会有大坑啊,特别是『主要使用环境在 xp 上』
|
14
geeglo 2016-09-06 09:15:43 +08:00
@harry890829
光一个兼容性就够喝一壶。 在 xp 下面, html5 的兼容性咋办?,内嵌谷歌浏览器的内核?最新的好像都不能在 xp 下用了。 还有一些系统交互啥的。 换了之后事情更多,更麻烦,而且不一定能有完美的解决方案。 |
15
fancymax 2016-09-06 09:16:09 +08:00 2
MFC 开发出一个程序 50K , html 写出来 50M 。
|
16
mringg 2016-09-06 09:18:34 +08:00
你是认真的么?对于 C 端,尤其是 windows 平台, winform,wpf 貌似都碾压 html5 吧
|
17
mringg 2016-09-06 09:18:55 +08:00
更不用说 MFC
|
18
kevinzhwl 2016-09-06 09:18:56 +08:00 via iPhone
@harry890829 啥叫多线程问题?感觉你还是真是不熟,而且两个都不熟啊。根据自己的业务推断一下有哪些坑吧
|
19
VeryEase 2016-09-06 09:24:33 +08:00
如果你们内部自用,随便折腾,如果是发布版本给客户用,还是用 MFC 吧... ,不考虑 XP 的话,来个 WPF 。 产品还是要考虑下使用场景,一厢情愿的套用新技术,满足了自己的技术欲望,客户怎么办...
|
20
xixibb 2016-09-06 09:24:59 +08:00
xp 下面用 html5 做桌面端程序取代 mfc 。。。。。。看这坑楼主怎么填。。
|
21
xbb7766 2016-09-06 09:27:48 +08:00 via Android 3
卤煮是来逗的么?先被碾压,再来个不熟,要不把火开大点…?
既然是 Xp ,用个 winform 也比鬼 h5 强。性能碾压,内存开销碾压,花样碾压。用 xp 的古董机器能跑顺 h5 也需要运气。😨 |
22
sammo 2016-09-06 09:28:30 +08:00
|
23
harry890829 OP @CYNM
@xxligang @iwege @thinkif @geeglo @fancymax @mringg 不好意思,出来丢人了,上面不让 append 了,我就发这里了,对于 mfc 自定义界面的效率来说,我真心非常痛苦,看到别人 html 写界面非常快,所以才觉得 html5 的优势,而且客户端本身只是打开网页而已,我会写好一个容器,就是用固定的去加载页面,业务逻辑中一些判断也没有对系统的要求,基本上只是逻辑的判断,所以我才觉得 html5 会更适合一些 对于你们提到的 html5 的兼容性,其实我确实不太了解,我才上来向大家询问,不过对于 c 端界面的编写,确实比较弱, winform 和 wpf 也没怎么研究过,晚点去看看吧 我进公司就是为了写 linux 的,临时被派来接手 mfc ,本来想到能够把界面交出去,还挺开心的,看来还是要自己吃下去 |
24
sammo 2016-09-06 09:29:56 +08:00
|
25
harry890829 OP |
26
nicevar 2016-09-06 09:31:03 +08:00
哈哈, html5 坑了很多公司,不管是桌面还是移动端
最惨的是那种准备上线了才发现有问题完全没有办法解决,最后只能抛弃 |
27
harry890829 OP @sammo 多谢
|
29
harry890829 OP @nicevar 这个我确实不太清楚,之前不了解,但是一直听到 html5 的界面快啊,开发周期短啊,直接桌面版来个容器就好了啊,一直觉得是个神奇的东西
|
30
Phariel 2016-09-06 09:33:35 +08:00 via Android
兼容性 系统级接口调用 你说说 HTML5 能做什么?
|
31
harry890829 OP @xbb7766 自然是听过的,但是公司使用 c++写啊,而且自己是并没有学过 c#什么的,而且我也不准备学,我来这里面试的时候,我和面试官就说过,我不想写 windows ,我是要写 linux 的,结果公司写 mfc 的人走了,让我顶缸
|
32
harry890829 OP @Phariel 看到你们都提到了兼容性和系统及接口调用的问题,麻烦能否详细说下,这里面到底有些什么坑,本来程序中可以说唯一的功能就是收发报文,其他都是业务逻辑,并没有调用本地的什么别的东西,最多就是还有个 sqlite 和悬浮小窗口
|
33
zonghua 2016-09-06 09:36:43 +08:00
MFC 不知道,但是使用 Visual Studio 去设计 Winform 的界面就像 Photoshop 一样简单容易
|
34
xbb7766 2016-09-06 09:39:53 +08:00 via Android
@harry890829 c++负责功能, c#负责界面呢。
|
35
harry890829 OP @xbb7766 我现在就在科普 winform 部分的知识,不过……我先看看吧,不过如果让我一直写 mfc 的话,我想我在公司也干不长了
|
36
VeryEase 2016-09-06 09:49:17 +08:00
@harry890829 你要真不想研究 MFC , 而且软件确实只在 XP 上跑,可以考虑下 C++ BUILDER , VCL 真是令人怀念..., 但是这个东西更加古董了,估计现在没多少人研究了,可以拿这个来拖个界面,业务逻辑封装成 DLL 来调用就可以了。
|
37
ferran 2016-09-06 09:50:25 +08:00
lz 要被领导“碾压”的节奏。。。
|
38
nicevar 2016-09-06 09:53:03 +08:00
@harry890829 嗯,确实是快,但是兼容性问题太多,比如移动端的,不少公司采用 html5 ,这样在 iOS 和 android 上面加个 webview 的壳就行了,但是有些公司还想往微信上推广,结果被微信内置浏览器坑了,导致迟迟不能上线,不过现在微信已经升级 blink 内核的,兼容性稍微好点。 MFC 如果没有自己积累的一套 UI 库,开发起来有点麻烦,各种自绘,很多公司都是一直采用 mfc 的,比较稳定
|
39
liyu 2016-09-06 09:53:19 +08:00 2
你这样搞,后面绝对死定了。
|
40
tidewind 2016-09-06 09:54:36 +08:00
看到楼主回头是岸,我就欣慰了,"MFC 一点优势都没有" ,我看到这句话时我都震惊了,很多年前我用的 wxWidgets 来搞界面,那也只是为了所谓的小巧精简和垮平台,想换换口味,从来没敢说, MFC 一点优势都没。
|
41
harry890829 OP @VeryEase 不一定,现在只是知道大多数客户端是装在 xp 上的, mfc 写界面还有别的方式么?公司目前都是手动代码编写,坐标都是手算的
|
42
VeryEase 2016-09-06 09:59:09 +08:00
@harry890829 一些界面如果要按照自己的想法来展示,确实要自绘,好像没有其它比较“方便”的方式了。
|
43
harry890829 OP |
45
VeryEase 2016-09-06 10:05:27 +08:00
@nicevar 不至于吧。 以前基本上就拿这个来做下界面,底层都用标准 C/C++来实现,好像没碰到有很多 BUG 的情况。对界面要求不高的话, VCL 确实比较爽, MFC 有时做的很郁闷。
|
46
FrankFang128 2016-09-06 10:11:41 +08:00 1
XP 最多 IE 8 ,哪有 HTML 5 啊。
你要自己编译 WebKit 么…… |
47
leaves615 2016-09-06 10:13:24 +08:00
如果只是针对 XP 开发,就没必要 HTML5 了,,使用 HTML5 的
优势: 1. 开发周期短。 2. 学习成本低,上手快;技术门槛相对低。 3. 配合多平台容器,降低跨平台兼容成本。 4. 一次开发,多平台通用(前提各平台容器已经实现必要的功能)。 劣势: 1. 无法直接调用原生系统 API ;如采用桥接方式,开发周期成本不亚于原生实现。 2. 界面效果、使用习惯无法与原生开发媲美。 3. 执行效率、用户操作友好度远低于原生应用; |
48
mringg 2016-09-06 10:13:44 +08:00
@harry890829 咱们只讨论技术了,有时候进行了一些调侃,不要在意,并没有进行人身攻击
html5 确实有好处,如果你那能研究出比较好的解决方案,那么写 C 端也是极好的 |
49
so898 2016-09-06 10:14:52 +08:00
Qt 大法好!
|
50
solaya 2016-09-06 10:25:03 +08:00
用 Qt
|
51
nicevar 2016-09-06 10:26:00 +08:00
@VeryEase 一直以来都是 Delphi 比较稳定, C++ builder 在 6.0 的时候很多公司的开发人员发现不少的 bug ,直接影响到开发,之后的版本问题也不少, VC 比 MFC 先进,用起来肯定爽, Borland 的开发软件都很好用,现在的 jetbrains 有点类似的感觉
|
52
harry890829 OP @FrankFang128 这个情况不了解,多谢
@leaves615 多谢分析,经过大家的教导,我意识到自己之前的想法确实有问题,也没有对 html5 做深入的了解,现在在找界面更好的解决方案 @so898 @solaya 两位,问下 qt 客户端现在对 windows 免费开放了么?记得以前还是需要买许可 |
53
BGLL 2016-09-06 10:43:45 +08:00 1
CEF(Chromium Embedded Framework) 3 都支持 XP ,兼容性不是什么大问题。
|
54
jasontse 2016-09-06 10:48:15 +08:00 via iPad
这个容器在 XP 下对 HTML5 的兼容性能玩死你
|
55
DingSoung 2016-09-06 10:50:46 +08:00
开发上位机,还 xp, 最好用 MFC , 实在痛苦, 如果你对 Qt 熟的话,也行
|
56
harry890829 OP @BGLL 这……这……
|
58
zhujinliang 2016-09-06 11:12:11 +08:00 via iPhone
我们这一开始做的网页版的,后来因为有部分客户的需求,用 cefsharp 做了个壳,客户大多是 xp 机器
主要难在让页面调用系统底层的问题上,试了多种方法,最后通过注册 schema 来做的 除此之外最长的时间用在了安装部署升级问题上,当然这种问题作为任何一个 win 程序都要解决,但我们本来是基于 web 的啊,因为几个需求凭添麻烦 至今有客户抱怨闪屏之类的问题,而我们无法重现 也有 ghost 装的机器可能是缺少 xx 组件无法运行,我也无法重现、无法调试,叫他找他们网管重装系统这样糊弄着 |
59
tairan2006 2016-09-06 11:14:30 +08:00
XP 最好别用 HTML5 ,我觉得 C#的 winform 不错…或者考虑用 delphi?
|
60
zhujinliang 2016-09-06 11:18:28 +08:00 via iPhone
|
61
linchanx 2016-09-06 11:19:18 +08:00
拿 html5 跟 MFC 比?少年,这 2 个根本不是一个层次的东西。你那 mfc 跟 qt 比还差不多。
|
62
timi 2016-09-06 11:35:38 +08:00
那么现在 html5 一般都用在什么场景。。。为何感觉被各位喷的一无是处了。。。
|
63
lincanbin 2016-09-06 11:40:33 +08:00 1
XP ,你说的是 HTML4 吧。
是不是现在 HTML 5 火过头了,随便写个网页都叫 H5 ? MFC 还是比 HTML 5 好太多。 |
65
loading 2016-09-06 11:43:29 +08:00 via Android 1
Delphi 我认为才是正解。
|
66
sfqtsh 2016-09-06 11:45:40 +08:00 via Android
。。。想做出好的界面,就让公司买 VC 的界面库呗~
|
67
P0P 2016-09-06 11:58:07 +08:00
重点是 xp
|
68
yangxiongguo 2016-09-06 11:59:24 +08:00
MFC 哇,当年学完 C 语言就去学 C++,然后搞 MFC 去了, IDE 从 vc6 到 vs2008 ,到 vs2010 。
|
69
vimffs 2016-09-06 12:06:39 +08:00 via Android
用 Qt 后,再也回不去 MFC
|
70
vimffs 2016-09-06 12:09:22 +08:00 via Android
MFC 像五笔,难学易忘
|
71
tabris17 2016-09-06 12:35:52 +08:00
如果是 B/C 架构的软件,换成 B/S 架构没什么问题,不过 WebViewUI 在性能上和操作上总会有些问题
|
72
soland 2016-09-06 12:36:11 +08:00
@harry890829 “就是还有个 sqlite 和悬浮小窗口” 哈哈,大坑。
|
73
loading 2016-09-06 12:40:20 +08:00 via Android
|
74
Felldeadbird 2016-09-06 12:43:33 +08:00
H5 有一些东西还不太稳定的。例如,语音库。这个东西做不好会导致浏览器崩溃。然后还会兼容问题。
我觉得楼主既然觉得 MFC 太过落后,可以选择 QT 啊。。。 |
75
harry890829 OP @zhujinliang 汗,听上去你们也很蛋疼的样子
@linchanx 就是觉得本地写界面太难受,本以为可以简化操作 @timi 并不知道到底发生了什么,感觉 html5 很多坑, xp 上的坑更严重…… @lincanbin 呃,也是哦,我只是想用网页来做界面的编写,应该是用词不当 @loading 这个还是放弃了,至少我不会因为这个原因去学另外一种语言 @sfqtsh 不太可能,还是我自己写吧 @P0P 对啊 @yangxiongguo 都是泪 @vimffs qt 的话,不知道和 mfc 怎么能够兼容一下,晚点我研究研究 @tabris17 哎,上面说的兼容性问题,应该就是说的这个问题 @soland sqlite 这个东西我觉得用网页解决界面的话, sqlite 存在地意义就小很多了,悬浮窗口的话……反正自己写容器嘛,悬浮窗口就是一个双击打开功能 |
76
harry890829 OP |
77
KaoN 2016-09-06 12:57:36 +08:00
qt 老早就可以在 win 上免费用了。。。怎么也得有 7 、 8 年了吧
|
78
newbieo0O 2016-09-06 13:00:12 +08:00
web技术并不适合做客户端。又卡又慢。楼主你犯大错了。
|
79
dtfm 2016-09-06 13:06:57 +08:00
XP 上 性能能撑得住 HTML 5 么?我感觉领导被你带瘸了。
|
80
jucelin 2016-09-06 13:12:58 +08:00
可以参考手机 app 的开发模式:原生开发( Native App ),混合开发( Hybrid App )。
主流都是原生开发 |
81
ijustdo 2016-09-06 13:47:01 +08:00
xp 哈哈 xp 上 ie 你看能好好的支持 html5 么 哈哈 到时候 你 vc 用 ie 浏览器组件 显示 h5 你会把写 h5 的人给搞死
|
82
cxshun 2016-09-06 13:49:57 +08:00
感觉还真不如用 qt 呢,而且 qt 早就免费了,在很久前被诺基亚收购后就免费,诺基亚良心啊。
HTML5 突出一个坑爹,各个浏览器内核的兼容性就可以搞死人了,再者你们搞客户端,用啥 HTML5 嘛,好好用原生就行了,而且 XP 那 10 几年前的东西,想要用近几年流行的技术,还是要想想清楚啊。 |
83
zhouzm 2016-09-06 13:51:25 +08:00
谁说 xp 不能用 html5 的, avast 的 gui 就是用 cef 内核实现的。
别把手机 app 的体验和桌面开发混为一谈。 使用 cef 为内核,完全可以开发出在低配电脑(例如:内存 512M)上也能流畅运行的桌面客户端程序,并且界面美观,开发效率远胜原生技术. |
84
Young87 2016-09-06 13:52:33 +08:00
以后还是得调查好了再来这里寻求意见,否则很容易让自己很难堪
|
85
Khlieb 2016-09-06 13:57:22 +08:00 via Android
|
86
lincanbin 2016-09-06 14:15:02 +08:00
客户端吧,举例说,让你后台 Load 一个本地文件,进行处理,你用 HTML 5 怎么实现?
再写个 ActiveX ? |
88
harry890829 OP |
90
murmur 2016-09-06 14:38:24 +08:00
要么 qt 要么 c#怎么也轮不到 html5 稍微一个涉及底层一点点的功能用 h5 就搞的你要死要活
所以怎么想 c#都是最佳选择 |
92
ijustdo 2016-09-06 14:40:05 +08:00
现在明白了 你是说 c++的 linux 下啊 哈哈 gtk wxwigest or qt 都可以啊 如果以前做过 cpp 的 gui 上手这几个应该不会太麻烦
|
93
eddiechen 2016-09-06 14:49:04 +08:00
lz 你这标题和正文那句"我对 html5 不太熟……"实在太喜感了
本来是一个严肃的技术方案优劣分析活生生的变成了喜剧 好几年前也在 win 上用 mfc 写界面,超级麻烦,很多很多效果都得自定义控件,从零开始能写死人 后来味了 win 和 mac 跨平台使用用了 qt ,比 mfc 好用多了,不过 qt 自身的 bug 也是不少,这个得要有心理准备 实在想省事那么就是出钱去买一套 mfc 上啥的封装库了,不过这个能搞成的概率也非常低 不知道几年后的现在,其他人 win 下写界面又是如何搞的 |
94
Zzzzzzzzz 2016-09-06 14:57:03 +08:00
又不是做游戏搞渲染, 普通业务搞搞展示出个报表有什么做不来的, 从早年的裸写 qtwebkit 、 xulrunner 到这几年的 nw.js 、 electron , 方案很多。 activestate 拿 mozilla 的 xulrunner 做 komodo stduio 这种 IDE 卖了十几年了, html5 干不了或者性能上满足不了的又不是不能用 C/C++实现了注册相应接口
|
95
zuotech 2016-09-06 15:01:10 +08:00
HTML 是有很多好处的, 关键还是看业务逻辑上 HTML 能否满足
|
96
xjp 2016-09-06 15:02:00 +08:00
不要听他们瞎扯 说使用 html 开发的应用怎么样怎么样的 你看看网易云音乐和有道云笔记还有有道云协助 这三个都是使用 html 开发的 非常典型 只不过底层技术没有开源出来
开源出来的有 nw.js 和 electron 作者也经常在 V2EX 逛 楼主可以查一下相关资料 其实最大的问题应该是 xp 的兼容 nw.js 和 electron 已经不兼容 xp 了 |
97
xjp 2016-09-06 15:03:32 +08:00
刚查了一下 nw.js lts 版本还支持 xp 的
|
98
youxiachai 2016-09-06 15:06:47 +08:00
xp .... 就不要搞什么 html 5...绝对是自己找麻烦...orz
|
99
mlhorizon 2016-09-06 15:08:25 +08:00
html5 容易写, html5 的壳难弄,感觉楼主作死的前奏。
现有技术无法满足需求的情况下,再去考虑新技术吧。 |
100
gaodeng 2016-09-06 15:24:51 +08:00
HaloRadio 大部分界面是 html 的. 用的是 cef3+duilib ,支持 xp. 唯一的问题就是安装包有几十 M.可能是小应用没什么复杂的东西,目前倒是没有碰到什么坑。楼主可以参考看看 https://www.v2ex.com/t/282377#reply23
|