WPS二次开发逻辑-wps二次开发逻辑是什么

前言


WPS二次开发逻辑-wps二次开发逻辑是什么

三足鼎立?
国人熟悉的通用办公软件中,MSOffice、WPSOffice和永中Office肯定能位居前三甲,尽管也有各种开源的Office,但对普罗大众还是太遥远 。
WPS作为国产通用办公软件 , 一度成为国产软件的骄傲 。最近几年在国内的发展势头良好,其优异的云端本地体验和低廉的价格,受到越来越多机构用户的青睐
作为通用办公软件的二次开发者,在丰富软件生态、为用户创造价值上 , 有着举足轻重的作用 。WPS不仅支持VBA , 在最近更是推出了自家的JS宏(以下简称"JSA")脚本语言 , 成为第二个可以一键录制的办公软件供应商,对业余开发者非常的友好 。
BtOfficer是Office的重度用户,也不得不关注WPS 。但在转向WPS的过程中,并不那么一帆风顺,在遭遇《》一文中的情形,曾险些被劝退 。但好在广大网友积极支招,在评论里给了很多中肯的意见 。
那本文,就继续接着上文,谈谈WPS二次开发时,在版本选择上要注意哪些内容 。
一、WPS二次开发的箱底逻辑
WPS二次开发逻辑-wps二次开发逻辑是什么

通用办公要流行 , COM还是绕不过的
永中Office基于JAVA,独树一帜,在非Win平台进步明显 。不过可惜 , 目前通用办公市?。?还是客户端为主,而JAVA对于业余编程的门槛又太高了 。同样是国产Office,同样有特殊资源扶持,但与WPS比起来,还是差距明显 。主要原因,可能是没有1个平易近人且招小白喜欢的二次开发接口吧 。
Office和WPS都是基于COM的那一套,虽然造起来复杂,但客户端产品体验却异常好 。尤其是Office,凝聚了WinCOM技术与理论,成为COM理论的集大成者 。VB拥抱COM , 转向VBA之后,成为COM的专用语言 。
我们看到,至今很多难以超越的老牌行业软件 , 比如Adobe、ArcView、ArcGIS、AutoCAD等都无一例外地支持VBA , 更别提SAP、以及各种定制的ERP了 。所以 , WPS很早前就支持VBA , 这为WPS带来了不可估量的生态力量 。
JSA虽然基于JS,但用起来感觉跟VBA语法相差并不大,所谓API不过是调用WPS的Application下各对象的属性和方法罢了 。所以,无论是VBA还是JSA,实际上都是基于WPS的COM接口 。
也就是说 , 只要支持COM编程的语言,都可作为WPS的二开工具 。而VBA只不过是磨砺的最久最容易的那一个,如今JSA正在迎头赶来 。
二、COM接口对开发者的意义
1、COM接口是一个很严肃的产品问题
COM接口是个很复杂的东西,但使用上却不然 。系统对接口有各种各样的封装 , 应用程序也可通过各种途径(如ProgID,ClsID,GUID,UUID等标识符)调用这些接口 。
COM是面向对象的,其继承特性,就决定了一个重要的COM接口必须是一套稳定的东西,至少要做到接口标识符不要乱动 。试想,接口之鼻祖IUnKnown,成天变来变去,让继承他的其他接口如何找得到爹?
COM的规范中,接口的扩展 , 通过继承可以很好地解决 。接口的稳定 , 可以让COM组件构建起来的应用,灵活、健壮且易于扩展 。所以,规范践行良好的产品,都会有非常不错的用户体验 。对于二次开发的扩展,也可以降低代码的复杂性 。
2、WPS变更接口 , 却从未征求开发者的意见,不但损人也不利己
COM的接口机制,本身就为升级扩展,提供了良好的规范 。我们看到,Office发展这么多年 , 升级更新的速度也是同类楷模,但丝毫未扰乱编程接口的稳定 。WPS作为通用办公软件,对外提供了一系列COM接口 。但不知为何,WPS在2016版启动互联网运营之后 , 却全然不顾二开群体的利益,悄悄地将接口给改了 。
以表格为例,早期的ProgID为"ET.Application",其GUID为“{45540001-5750-5300-4B49-4E47534F4654}” , 而更改后的ProgID为"KET.Application",其GUID为“{45540001-5750-5300-4B49-4E47534F4655}” 。这一点点小改升级,却可以导致早期二开产品,有作废的风险 。
但,早期的版本尚有大量用户在使用,这就导致二开产品必须判断版本,增加处理的复杂性 。难道IE附身了?这不给自家产品找抽么?

三、COM接口可以封锁吗?或许不同版本之间的差异可以告诉你答案

1、暴露COM接口,增加开发的便捷性,是在巩固加强生态护城河
BtOfficer在遭遇WPS版本之谜事件前,从未思考过这个问题 。相信,很多开发者也不会思考这么无聊的问题 。毕竟 , COM接口暴露出来,提供给广大开发者,也是自家生态护城河的一支力量?。?谁会跟自己过意不去呢!
事实上,Office利用VBA这样的平民工具,建立起了强大的生态护城河 。历史上曾有很多挑战者,无一例外的失败,其中有很大一部分原因就是VBA开发者群体所带起来的产品忠诚度 。据微软估计,VBA的代码量已超过百亿行,是C/C的数十倍之多,每天日活用户有数百万之多 。
所以,同样作为通用办公软件的WPS,而且曾经与Office不分伯仲,没有理由会拒绝加强自己的生态护城河的行为 。
2、JS宏的加入,或将改变点什么
JS宏加入之前 , WPS没有像样的业余二开工具,不得不求助于VBA 。由于VBA于Office的根底,兼容问题 , 一直让WPS很被动 。不仅要支付VBA的授权费,还要承受骂名 。
好在时代在变化,微软IE死掉了,微软也拥抱起了Chromium 。WPS从移动端死里逃生 , 怎会没注意到 。虽说不是十年磨一剑,但JS宏最终还是来了 。
JS宏也搞了基于V8引擎的运行时,WPS的COM对象 , 也能赶起来干活了 。既然如此,为何还要留着VBA,这个耻辱的标记呢?BtOfficer认为,开掉VBA,这是迟早的事!因为 , JSA可以为WPS关上生态闭环的最后一道敞口 。
WPS的客户端是QT、前后端有全栈能力的JS,已经走在一条更不容易被人约束的道路上了 。
3、不同版本中的迹象
WPS的版本划分,其实只有两个:一是个人版,二是专业版 。专业版 , 有很多名称,比如教育版、企业版、行政版等等 。个人版,很特殊,叫个人免费版 。
WPS二次开发逻辑-wps二次开发逻辑是什么

打开官网,最大最惹眼的 , 就是个人免费版
在前文吐槽中,很多网友的回复,一开始让人很困惑 。有的人说好用功能全,没广告 , 而有的人却说广告关了也还有,功能也受限 。甚至有好几位喜爱WPS的网友,攻击BtOfficer为高级黑,是在利用矛盾找流量 。其实,对BtOfficer和其他二开用户来讲,广告有无不是重点,COM接口不能用才会真劝退 。因为,无论是个人版也好,开发版也罢,名号总还是WPS嘛 。
如果说,对于同一个对象,却有截然不同的结论,那么多半是这个对象的问题 。这让BtOfficer想起了VB6的SP6补?。上暝摹禫B的SP6更新到2021版了,却安装不上?快来看这里》),同名也不见得就是同一个东西,更何况WPS有改接口的传统 。
果然 , 官网上那个最靓的图暗藏玄机 。直到安装完成前,没有任何明显的标识,指明所安装的就是个人免费版 。如果不是开发者用户功能受限,反复折腾,估计一般用户也就认定这就是WPS了 。在前文的评论中 , 甚至有人说企业版是企业用的,个人用不了 。更别提,各种屁颠屁颠地跟随广告提示,去打卡免费领会员或4块8块的限时优惠会员了 。
不过 , 还是有经验老道的网友提醒,专业版不仅没广告,功能还更全(目测是WPS不敢得罪自己的财神爷) 。可是哪儿有专业版?。抗偻希?下载下来的 , 就是免费个人版啊 。难道,专业版是WPS销售在地推?
不过,好像也不对 , JSA这种生态武器,投入都那么少,怎么可能铺那么多人去跑现场 。所以 , BtOfficer再次去搜罗官网,果然发现了1个小秘密 。
WPS二次开发逻辑-wps二次开发逻辑是什么

至少过2道防御,才会找到专业版
第一道防御:最大、最靓眼的那个,已经足够迷惑人了 。第二道防御:如果吃过前面的亏 , 没被劝退的,在所有产品下,会不会再次被Windows给截胡?第三道防御:专业版的叫法众多 , 企业版PC端 , 会不会让一些很傻很天真的人认为,那是企业用户的菜?
这不是在劝退 , 是在干嘛?分明就是引导个人用户使用免费个人版嘛 。请问,WPS有没有考虑那些愿意花钱,不愿意使用免费版用户的意见呢?那么问题就来了 , WPS为何要花这个巧妙的小心思,千方百计要引导大家用个人版呢?从生意的角度来看,唯一可以解释的是,都是在全力为JSA的出道准备 。
【WPS二次开发逻辑-wps二次开发逻辑是什么】个人用户免费,但WPS官方保留了绝对的解释权,用来测试没有任何法律上的风险 。
4、专业版一上,疑难杂症全无
WPS二次开发逻辑-wps二次开发逻辑是什么

大家所谓从未有广告 , 大概就是这个了吧
上图所示的企业版PC端,就是所谓专业版啦 。下载后安装,查看协议 , 已经没有个人版中的广告条款 。无论是在线还是离线,运行起来也明显比个人版顺滑了好多 。看来,一分钱一分货 , 诚不欺我也!
接着,就是测试接口,无论OfficeVBA、还是VB6、以及WPS本身 , 都可以顺利使用 。而这些,几天前用付费会员的个人版还不行 。这说明了什么?说明了,WPS的确在实验关闭COM接口,而仅允许自家的JSA使用 。

四、WPS二次开发,还是专业版靠谱


WPS二次开发逻辑-wps二次开发逻辑是什么

靠谱,免费哪行!
一来,有前面猜想的原因 。就BtOfficer自己测试的情况来看 , 个人版中部分COM接口被封闭 。包括,顶级Application对象接口被封死,VBE对象的接口被封死 。这就意味着,第三方工具不能脱离WPS环境,要想用 , 得JSA优先 。而这些,在专业版中,目前还不存在 。
二来,企业机构客户是高价值用户,不仅是WPS的财神爷和保护者,也是二次开发的目标客户 。个人用户的权益敏感度低,付费意愿低,深层次需求少 。而机构客户权益敏感性强,一般都有专业法务审核服务条款(会打印出来审核),不利于自己的,一般会排除 。毕竟目前WPS还没强大到,店大欺客的地步 。正是因为这样,背后WPS也不敢耍小心思 。基于专业版,二开用户可以搭车,降低不必要的开销 。
三来、个人版很多功能必须联网,而专业版则没有这个要求 。很多专业版,还不具备升级功能,可以锁定开发环境,不惧后续版本中可能存在的接口管制 。
欢迎关注BtOfficer,更多精彩 , 让上班摸鱼两不误 。文中若有疏漏,欢迎评论指正!

相关经验推荐