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

继软件兼容性问题的讨论:金蝶这种财务软件,运行环境严重老旧,为什么部分底层还是 VB6.0?

  •  
  •   JSheilaYB087 · 2020-03-25 21:40:51 +08:00 · 3052 次点击
    这是一个创建于 1706 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先不是针对金蝶软件,知道很多行业软件都是这样,基本上要等新版系统或环境出了 3 年再做支持和兼容。

    先看一下:金蝶 GKIS 标准版 V10.0 的安装配置指南文档里面所写的兼容性。(软件是 2019 年末发布的最新版本)

    二. 操作系统要求

    不支持的操作系统:Windows 98 、Windows XP Home 版、Windows Server 2003 64 位、Windows 7 Home 版及其他非 windows 操作系统。

    1 、服务器端,只支持简体中文,建议使用 Server 系统

    Windows Server 2012 Essentials 简体中文版 (64 位)

    Windows 8 Enterprise 简体中文版 (32 位 /64 位) (单机使用)

    Windows 2008 R2 EnterPrise 简体中文版 (64 位)

    Windows 2008 EnterPrise 简体中文版 (32 位 /64 位) (推荐使用)

    Windows 2008 Standard 简体中文版 (32 位 /64 位)

    Windows7 简体中文旗舰版 (32 位 /64 位) (单机使用)

    Windows Server 2003 EnterPrise 简体中文版(32 位) (推荐使用)

    Windows Server 2003 Standard 简体中文版(32 位)

    2 、客户端,只支持简体中文

    Windows Server 2012 Essentials 简体中文版 (64 位)

    Windows 10 简体中文专业版 /企业版版(32 位 /64 位)

    Windows 8 Enterprise 简体中文版(32 位 /64 位)

    Windows 2008 R2 EnterPrise 简体中文版 ( 64 位)

    Windows 2008 EnterPrise 简体中文版 ( 32 位 /64 位)

    Windows 2008 Standard 简体中文版 ( 32 位 /64 位)

    Windows7 简体中文旗舰版( 32 位 /64 位)

    Windows Server 2003 EnterPrise 简体中文版( 32 位)

    Windows Server 2003 Standard 简体中文版( 32 位)

    看看这个操作系统的兼容性,要不是 Windows10 普及率高,金蝶不可能把 Windows10 写进去的。

    不包括 ESU,在产品生命周期中的操作系统只有 Windows Server 2012 和 Windows 10。而服务器系统 2012R2,2016 和 2019 均未提及,桌面的 Windows8.1 系统也未提及。

    问经销商的技术人员,他们也说你环境是 2012R2/2016 的只能试试看,这个金蝶官方没有测试过,不对环境问题做保证

    3 、数据库环境要求

    仅服务器端需要数据库环境。支持 SQL 数据库,简体中文字符集。

    1 、如果服务器环境无 SQL Server,默认安装 SQL 2008 Express 数据库;

    2 、支持完整版 SQL,如:SQL Server 2000 、SQL Server 2005 、SQL Server 2008 、SQL Server 2008 R2 、SQL Server 2012 、SQL Server 2016,建议安装对应版本的最新 SQL 补丁。

    3 、SQL Server 安装时,服务器身份认证方式要求为“SQL Server 和 Windows 身份验证模式”安装。

    4 、安装 SQL Server 时,数据库排序规则是 Chinese_PRC_CI_AS 。在安装 SQL Server 2005 及以上版本时,兼容级别建议选择 80 即 SQL Server 2000 。

    看看这个数据库程序的兼容性

    假设装上最新的 Service Pack 后,在产品生命周期中的数据库只有 SQL Server 2012 和 2016。而新版的 2017,2019 未提及。

    问经销商的技术人员,也是一样的态度,新版环境只能试试看,这个金蝶官方没有测试过,不对环境问题做保证

    特别提一点:数据库底层兼容级别还是 80 即 SQL Server 2000,万年没跟新。照道理应该要迭代升级呀。且数据库访问默认没有 TLS 加密,是明文传输!

    软件本体方面

    然后再看了看软件方面,用了 AccessEngine2010,.Net4.0 等。但是细看发现,部分 exe 文件是 2015 年编译的,编译的库竟然是 VB6.0 。这个是当年高中上《信息技术》课学的 Visual Basic 6.0 语言啊,我记得那个 SDK 还非常容易崩。竟然还有真的用在这种生产环境上的,而且还是金蝶这种作为一个财务软件的知名公司。软件跑起来也是卡,还没一个优秀的 WEB 程序流畅。

    安全隐患

    财务软件照道理应该是一个安全敏感类应用程序啊,安全级别应该很高啊,为何对于环境的兼容性要求如此“之高”,以至于不能用在最新一代的机器上?而且明文传输,存在严重安全隐患。强制开启 TLS 后,也没有自签名证书的确认。难道非要安装在一个满是漏洞的 XP 环境上才能保证 100%兼容吗?这样的适配性也太差了吧。

    对于远程办公

    这样的软件,都不敢远程啊,也不敢把端口放公网上,生怕那天就被沦陷了。

    最后补充一下

    我不反对苹果这种激进的做法,促进了软件的安全更新与环境适配和优化,不会像微软这种老掉牙的软件还在跑。

    15 条回复    2020-03-27 13:35:57 +08:00
    imdong
        1
    imdong  
       2020-03-25 21:48:15 +08:00   ❤️ 1
    又不是不能用.....删
    能用就不错了!
    =======

    堆了这么多年的屎山,改个 BUG 能不蹦就不错了,谁敢动?
    dexterzzz
        2
    dexterzzz  
       2020-03-25 22:09:43 +08:00
    这是国内软件的水平
    看下 SAP,微软 dynamic 都是最新版本的技术
    MeteorCat
        3
    MeteorCat  
       2020-03-25 22:15:11 +08:00 via Android
    涉及财务这种东西一般是不敢改,稳定为主。而且楼上说的对,这种长年累月的堆积的"屎山",没有一定魄力根本没办法改
    beyondex
        4
    beyondex  
       2020-03-25 22:19:51 +08:00 via Android
    只能说这个公司十分不看重技术投入,国外也有个例子,波音飞机。。。
    hiplon
        5
    hiplon  
       2020-03-25 22:46:23 +08:00
    金蝶也有新版,SAP 也是越更越卡
    JSheilaYB087
        6
    JSheilaYB087  
    OP
       2020-03-25 22:59:22 +08:00
    @hiplon 这个就是最新版的。
    sarices
        7
    sarices  
       2020-03-25 23:00:51 +08:00
    通常这些软件都是单机的,有些敏感的公司,直接离线
    weijar
        8
    weijar  
       2020-03-25 23:04:21 +08:00
    以前在某管理软件公司待过,可以说技术水平渣到极点。
    屎山什么的,有重构的意愿的话都不是问题,问题是对技术毫不在意看上去能用就行。
    CallMeReznov
        9
    CallMeReznov  
       2020-03-25 23:25:36 +08:00
    你甚至可以再金蝶这种财务软件上找到若干个不同版本的语言混合编写的痕迹.
    jim9606
        10
    jim9606  
       2020-03-26 00:13:53 +08:00
    屎山就是这样的了,office 也是有一堆二十多年历史有没法改甚至连源码都没有的组件还得继续用
    要支持 XP/2003,也没法用太新的 runtime
    性能没什么追求的软件也不做 64 位了,反正 64 位系统也能跑
    至于安全问题,反正要是没有打补丁的习惯那就靠虚拟机+防火墙撑着呗
    买断制软件不更新是常态,不然谁买新版,又不是不能用。所以现在都喜欢搞订阅制了
    whywhywhy
        11
    whywhywhy  
       2020-03-26 08:36:07 +08:00   ❤️ 1
    金蝶一部分 vb6 开发的,也有部分是.Net 4.0 编译的,金蝶真的没资格挑客户,兼容 XP 是必须的( XP 的.net 只有 4.0 ),说是屎山,但是这种强逻辑大型软件要重构简直是灾难,能继续用下去又能赚钱不美么。

    同时金蝶也使用了新技术,云端!所以总拿 VB6.0 说事是真没意思。说用 VB6.0 编写就不稳定,卡顿那真是天大的误会。。。说真的金蝶再不济,也不会招不起程序员。


    @dexterzzz 谁家的大型软件会总是去追求最新的语言啊,SAP 这种大型软件,复杂度高,而编程语言日新月异,就为了追求“最新语言开发”隔一两年推翻一次重来么。那还真不如一直用老语言。
    并不是 SAP 最近开发了一个 HTML5 版本的大型软件,就一直用最新的语言、技术去写,那真的不现实。

    @CallMeReznov 金蝶也有云端,所以技术上并不会说只使用老技术,像客户端版本的金蝶,复杂度高,不是必要性的情况下肯定不会推倒重来,说到底一个公司不会真的缺会新技术的程序员
    zvcs
        12
    zvcs  
       2020-03-26 10:06:08 +08:00 via iPhone
    @dexterzzz SAP 太陈旧了。显示图片都很难。
    JSheilaYB087
        13
    JSheilaYB087  
    OP
       2020-03-26 19:42:37 +08:00
    @whywhywhy

    感谢您的回复,从金蝶的公司利益角度而言,你说的确实没错,但是从技术角度和安全角度出发,也有很多不合理的地方。针对你说的几点,我想也分别回复一下吧。

    针对你说的第一段:

    2020 年为啥还要兼容 XP 这个问题暂不讨论,但是一个新发布的软件不兼容新版系统就觉得不合理了,如:2012R2,2016,2019 等等。产品比系统晚,可以理解,但是 2016 服务器系统(作为目前新购服务器的主流系统)出了 4 年了,金蝶官方也没完整做过兼容性测试,这个就有点离谱了,滞后的周期略长。

    针对你说的第二段:

    有个问题:云端并不能完全取代目前金蝶客户端的产品需求,经销商当时也没给云端方案。如果说哪天说云端取代旧产品,旧产品不再更新,也是值得支持的。在安全方面,https 的 tls1.2 1.3 的安全性大大提升。用户也不是直接执行数据库命令来操作,大幅降低数据库渗透的问题。

    我说的 VB6.0 的 SDK 问题是我当年学生时代所发生的,并没有指 VB6.0 编写的程序就不稳定、卡顿等。但是目前 2020 年,一个产品再用 VB6.0 开发是不值得推荐的。

    针对你说的第三段:

    大型软件确实不必一味地追求新语言,但是至少得跟上主流吧?我觉得 10 年重构一次不过分吧?适配新的系统、新的 API 、新的安全要求、以及性能优化等等,也是有很多好处的。缺点就是要出一堆 bug,这些也是要有一定的时间去消化的。金蝶这个 SQL 2000 的数据库用到现在,但是部分功能不兼容新一代 SQL 就有点过分了。数据库加密什么的就不奢求了吧?

    总结一下:

    相比让金蝶兼容国产 Linux 等需求,兼容新一代 Windows 和 SQL 的要求不过分吧。程序老旧,兼容性、性能、安全等都是问题,在适当的条件下,重构一下,我觉得还是有很多体验提升的价值,以及在安全性上面的意义重大。
    whywhywhy
        14
    whywhywhy  
       2020-03-27 09:14:37 +08:00
    @JSheilaYB087
    https://club.kingdee.com/club/newclub/patch/list?productType=%E9%87%91%E8%9D%B6EAS
    可以在这里看一下,每天都在修 bug,很多 bug 是真的 bug,但是更多的 bug 是因为业务的多变性,一开始无法确定所以导致了 bug,业务性的 bug 根本无法避免!这是 EAS 。K3,KIS 那边也是经常有补丁发出来。你是客户,你是企业,你要啥,最起码的是要“能用”!!!!你花几十万几百万买个不能用的东西,哪怕它用的是最新的技术写出来的,又有什么用呢

    然后才是好用,事实上 SAP 在开发 HTML5 版本之前的客户端,也是古董 UI,说明架构也老了,但是它能用啊。我现在用的是金蝶 KIS 旗舰 7.0 。。讲真的,上面补丁列表里的还是好的,有多少 bug 没人管的比比皆是。

    然后说到服务器端,要支持更高版本的 sql server,就要重构自己的 SQL,想要用真香的新版特性,就要做兼容,新版旧版都要写,最重要的是什么?最重要的是这些主要是金蝶在写,金蝶的开发人员已经在骂娘了!我服务器是 2016,我给金蝶虚拟化了一个 windows 2012 R2 ( 2014 版),没毛病!微软也还在提供安全支持,挺好的。它支持 sql 2016 已经很可以了这不就是在改进么。。金蝶的服务器端应该用在 windows 2016 问题不大的,想用就用吧! sql 也有兼容模式,想用就用吧。。。。

    作为用户,我知道你希望使用新特性,因为可以方便的编 SQL,然并卵啊,那满天的 bug,每一个都会给企业带来暴击,10 年推倒重来一次?不可能做到的。。前面十几年的 BUG 还没修完呢!!!

    ERP 软件作为一个强逻辑,强定制化,数据高度关联的软件,最重要的是稳定的用下去,放在客户的环境里一直傻傻的没有存在感稳定运行,这比什么都靠谱。。重构带来的成本、BUG 都是要用户承受的,你可以建议金蝶彻底重构,但是这些风险、成本都要用户企业来承担。。。。你猜会怎么样!会被用友一脚踢下去啊!!

    所以高端市场可以用新技术,也是作为试验田,中低端市场还是节约成本稳定为主,对用户对自己都好。但是总体来讲都是搞一个架构然后继续完善一直用很多年!软件行业最忌讳流水线太长!!!你做运维难道不希望服务器一直十年二十年一直不动一直傻傻的运行下去?

    激进的策略也没问题,谁买单呢?中低企业会买单?你在开玩笑!!!!这样的 ERP 厂商等着被市场淘汰吧!至于高端的企业,能承受成本哪怕从 0 开始给你贴身定制一套完全没有问题啊。。。真的没问题的!

    不好意思!虽然语言很激动,但是更多的感受到的是无奈!我给别人写程序,一千行的代码我都不愿意重构!!!自己写的时候就会赞同一楼的话,能用的东西凭什么重构,就为了追新么。。。你想要它支持更新的 sql server,想必是做报表方便吧,那么你一个好好的东西,稳定正常运行的东西,又没有新需求新变化,领导要你用新语言重写一次又一次,你甘心么。
    whywhywhy
        15
    whywhywhy  
       2020-03-27 13:35:57 +08:00
    “财务软件照道理应该是一个安全敏感类应用程序啊”,其实 ERP 类软件的特性就是高度数据关联,高度定制化,高度复杂,高度兼容性,最后才是高度安全性,为什么呢?因为在企业环境,内网攻击的概率小,中小企业成为目标的概率更小,中间人攻击的概率更更小!

    TLS 加密的流行也是 let's encrypt 证书免费化所以成功,但是企业中常见的加密传输其实都很脆弱,为什么?因为 SSL 证书需要可信 CA 认证,自签的可信个毛线,真的能防中间人吗?内部应用中间人也跟你搞个自签名的 TLS 通道,你也识别不出来真假!或许你能识别,但是大部分人包括运维都未必能识别。

    你可以看看网上各种教程用到 wget 下载 https 路径文件时,通常都会打个--no-check-certificate 参数,这参数啥意思咱不用解释了吧,这意思就是放弃 TLS/SSL 的可信特性,可信不可信的证书全不管直接使用!

    还有邮件客户端有时候也遇到 SSL 证书不匹配的情况,邮件客户端发现不对劲问你要不要继续收发邮件,你会点拒绝么,我告诉你大部分人不会点拒绝,基本上全部会点继续!当你要干活的时候,就算浏览器告诉你这个网站使用了不可信的证书,或者自签名证书,你会继续吗?你会的,因为拒绝就代表你这项工作无法完成,无法继续操作了!



    可能你会说这种情况很少见,肯定会拒绝云云。。。。。那我问你,你还记得当年那几年 12306 的自签名证书么?嘴上大家都说不安全,就没见过这几亿网民有几个坚定说不用的!

    我这样表达不是说 TLS/SSL 不安全,而是即便你采用了最安全的 EV SSL,你的用户在被问到是为了安全继续访问,还是为了操作忽略安全提醒的时候,几乎没有人会选前者,再安全的技术,面对用户“要干活”的场景,都是无奈的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1679 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:48 · PVG 00:48 · LAX 08:48 · JFK 11:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.