前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何选择UI框架

如何选择UI框架

作者头像
gaigai
发布2019-10-28 15:26:10
2.3K0
发布2019-10-28 15:26:10
举报
文章被收录于专栏:Windows开发Windows开发

Windows界面开发,笔者使用过的方案有三种:MFC、Duilib、WEB(基于CEF运行容器),各有优缺点。

MFC进行界面开发,其所见即所得,通过向导方便给控件增加处理函数,实现很简单,初学者练手必备,但它的缺点也是很明显的,不是使用DUI技术,没有布局概念,不支持背景贴图,很难做出炫酷的界面,适合界面要求不高的工具类产品(比如测试工具)。

Duilib进行界面开发,其使用DUI技术,通过XML文件编写布局、控件、设置属性,国内很多知名软件(包括微信PC版、91助手、钉钉等)都使用Duilib库作为界面开发库,缺点是有bug很久没有更新,如果自己没有界面开发库的沉淀,建议将Duilib库作为基础,进行扩展和BUG修订。

基于CEF运行容器的WEB技术进行界面开发,WEB强大的渲染能力无需多说,缺点是软件包需要携带CEF库(70M左右),需要扩展CEF支持WEB调用原生能力。如果产品本身是WEB形态,采用WEB技术界面开发,再合适不够。

笔者在项目实践过程中,采用混合开发方案,将Duilib和WEB两种方案结合起来,对于要求高性能的界面(比如窗口实时渲染)使用Duilib(C++)开发,对于复杂界面、炫酷界面使用WEB开发,然后扩展CEF提供JS接口让WEB可以跟原生C++层进行通信,基于该通信通道WEB就可以将需要调用原生的逻辑交给C++来实现。混合开发方案充分利用WEB强大渲染能力,又解决了WEB性能差、与原生系统交互能力差的问题。许多移动端产品也使用混合开发方案,比如天猫手机端。

除此之外,还有其它的界面框架可供选择:

l Electron, 最大优点就是跨平台,一套代码就可以在Windows、Linux、MacOS桌面系统上运行,其基于nodejs开发electron module,electron module内包含chromium内核(类似于CEF),使用WEB技术开发。

l QT,最大优点也是跨平台,一套代码可以在桌面系统Windows、Linux、MacOS,移动端系统Android、iOS、WP上运行,使用C++语言开发。

l WPF,微软推出基于Windows的用户界面框架,属于.NET Framework 3.0的一部分,使用C#语言开发。

在选择界面开发框架时,要结合产品形态、团队开发人员的情况作出决策。

第一,产品需要支持的平台要有清楚的认识,如果需要支持多个平台,就要考虑跨平台的框架,自己开发跨平台框架的难度是很大的。如果需要支持XP,就要注意界面开发框架是否支持,许多框架已经不支持XP系统。

第二,产品是否有WEB版本,如果有WEB版本优先选择支持WEB开发技术的框架,WEB应用转原生应用,套CEF容器再少量适配修改就能解决,反过来,原生应用WEB化,得重做。

第三,产品对性能要求、原生能力调用方面的评估,对性能要求高、原生能力交互强,不建议使用WEB开发技术的框架,其性能差、不方便与原生系统交互是其主要的缺点。

第四,评估开发团队的主要人员是C++,还是Web,还是C#,然后选择相应的框架。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Windows开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档