PC软件开发中BC/S设计架构的实现

    公司现有项目是C/S结构,客户端采用Qt进行的开发,已经开发维护近10年,结构稳定成熟。现开发一个新的项目,主要的功能需求一致,只是展示方式需要重新设计实现。公司倾向于向B/S方向转变,新项目直接采用B/S开发,所有功能模块都需要重新设计实现,周期比较长,成本比较大。在之前的项目中有过在Qt中嵌入html界面的经验,所以想采用BC/S的模式进行开发是否可行,原本的server端保持不动,client端主体逻辑不动,只采用html展现UI界面。形成由html+C++结合实现Client,即BC/S架构。

架构示意图


    我们的客户端项目采用Qt实现,采用Qt中WebKit模块作为处理引擎,加载、解析、显示前端页面。Qt与前端的js进行交互,前端页面只实现UI的展示、人机交互功能,业务逻辑处理交由C++进行处理。在整个处理过程中Qt与前端页面交互是整个架构实现的关键,因为整个项目有近20个界面,共计有40余个交互接口。所以针对Qt与前端通信交互进行了封装,形成了一个通信库(QtWeb)(后来发现这是一个很明智的选择,后面项目的开发和持续迭代过程中交互能力上都没有出现瓶颈)。

架构优缺点

优点:

1、开发速度快:在原有的系统基础之上只进行了UI部分的调整,html开发UI界面速度比较快,后续界面调整的成本也相对低

2、UI设计更加美观、多样化:原本使用Qt开发界面,界面比较固定,实现一些特效比较麻烦。html对于UI设计更加多样化,网上的实例也比较多

3、逐步向B/S过渡:可以在不影响项目进度的情况下,逐步向B/S架构过渡,减小转变的阵痛

缺点:

1、执行效率相对低:采用Qt的WebKit引擎展示html时执行效率要比采用浏览器低,Qt5中采用了Chromium浏览器引擎,执行效率有所提高,但是对比Chromium浏览器还是存在差距。界面比较复杂或者数据量比较大时会出现卡顿情况。后续不断的优化相信会解决掉

2、对前端设计有所要求:前端html中可以与Qt通信是因为html中有一个Qt对象,通过此对象进行交互。但是前端使用框架之后,可能造成访问不到这个对象导致无法通信。只能在Qt加载的html中进行交互,所以前端需要做协议的中转,都通过特定的页面或js与Qt进行通信

总结

BC/S架构是一个过渡的过程,还存在着一些不足,它应该算是对client设计的一个补充。在使用中根据实际的需求可以选择全部采用html设计界面,也可以采用Qt/MFC和html混合使用。



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值