Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何选择UI框架

如何选择UI框架

作者头像
gaigai
发布于 2019-10-28 07:26:10
发布于 2019-10-28 07:26:10
2.4K0
举报
文章被收录于专栏: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,移动端系统AndroidiOS、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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C++和C#界面开发方式的全面对比
在桌面应用开发中,C++和C#是两种非常常用的编程语言,它们各自提供了多种用于开发用户界面的技术和框架。除了广为人知的MFC、Qt和WPF之外,还有其他一些选择。本文将详细介绍这些界面开发方式,并通过表格对比它们的优缺点,帮助开发者更好地选择适合自己的工具。
码事漫谈
2025/06/03
1370
C++和C#界面开发方式的全面对比
热门跨平台方案对比:WEEX、React Native、Flutter和PWA
本文主要对WEEX、React Native、Flutter和PWA几大热门跨平台方案进行简单的介绍和对比。内容选自《WEEX跨平台开发实战》 (WEEX项目负责人力荐,从入门到实战,教你玩转移动前端跨平台开发!)
博文视点Broadview
2020/06/10
4.5K0
热门跨平台方案对比:WEEX、React Native、Flutter和PWA
对比分析混合开发模式hybrid的优缺点
从当前移动开发的实际情况来看,移动端的开发方式三分天下:纯原生(Native App)、混合开发(Hybird App)、网页应用(Web App)。
Onegun
2022/11/22
2.5K0
对比分析混合开发模式hybrid的优缺点
几款移动跨平台App开发框架比较[通俗易懂]
海豚精灵:https://www.whhtjl.com;优课GO:https://mgo.whhtjl.com
全栈程序员站长
2022/08/18
8.6K0
几款移动跨平台App开发框架比较[通俗易懂]
几个跨平台移动App开发方案框架比较
根据一些老博客里面的内容,现在整理一下目前流行的跨平台移动App开发技术的特点,并将几个不同的开发平台框架进行比较说明,仅供大家参考。
全栈程序员站长
2022/09/04
8.5K0
几个跨平台移动App开发方案框架比较
VC++界面库[通俗易懂]
刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得。不敢藏私,希望和一些新手朋友们分享交流。
全栈程序员站长
2022/11/09
3.3K0
原生app、webapp、混合app的区别介绍
目前市场上主流的APP分为三种:原生APP、Web APP(即HTML5)和混合APP三种,相对应的定制开发就是原生开发、H5开发和混合开发。那么这三种开发模式究竟有何不同呢?下面我们就分别从这三者各自的优劣势来区分比较吧! 一、APP原生开发 原生开发(Native App开发),是在Android、IOS等移动平台上利用提供的开发语言、开发类库、开发工具进行App软件开发。比如Android是利用Java、Eclipse、Android studio;IOS是利用Objective-C 和Xcode进行开发。 通俗点来讲,原生开发就像盖房子一样,先打地基然后浇地梁、房屋结构、一砖一瓦、钢筋水泥、电路走向等,都是经过精心的设计。原生APP也一样:通过代码从每个页面、每个功能、每个效果、每个逻辑、每个步骤全部用代码写出来,一层层,一段段全用代码写出来。 优点: 1、可访问手机所有功能(如GPS、摄像头等)、可实现功能齐全; 2、运行速度快、性能高,绝佳的用户体验; 3、支持大量图形和动画,不卡顿,反应快; 4、兼容性高,每个代码都经过程序员精心设计,一般不会出现闪退的情况,还能防止病毒和漏洞的出现; 5、比较快捷地使用设备端提供的接口,处理速度上有优势。 缺点: 1、开发时间长,快则3个月左右完成,慢则五个月左右; 2、制作费用高昂,成本较高; 3、可移植性比较差,一款原生的App,Android和IOS都要各自开发,同样的逻辑、界面要写两套; 4、内容限制(App Store限制); 5、获得新版本时需重新下载应用更新。 二、Web APP (HTML5)开发 HTML5应用开发,是利用Web技术进行的App开发。Web技术本身需要浏览器的支持才能进行展示和用户交互,因此主要用到的技术是HTML5、Javascript、CSS等。 优点: 1、支持设备范围广,可以跨平台,编写的代码可以同时在Android、IOS、Windows上运行; 2、开发成本低、周期短; 3、无内容限制; 4、适合展示有大段文字(如新闻、攻略等),且格式比较丰富(如加粗,字体多样)的页面; 5、用户可以直接使用新版本(自动更新,不需用户手动更新)。 缺点: 1、由于Web技术本身的限制,H5移动应用不能直接访问设备硬件和离线存储,所以在体验和性能上有很大的局限性; 2、对联网要求高,离线不能做任何操作; 3、功能有限; 4、APP反应速度慢,页面切换流畅性较差; 5、图片和动画支持性不高; 6、用户体验感较差; 7、无法调用手机硬件(摄像头、麦克风等)。 三、混合APP开发(原生+H5) 混合开发(Hybrid App开发),是指在开发一款App产品的时候,为了提高效率、节省成本而利用原生与H5的开发技术的混合应用。通俗点来说,这就是网页的模式,通常由“HTML5云网站+APP应用客户端”两部份构成。 混合开发是一种取长补短的开发模式,原生代码部分利用Web View插件或者其它框架为H5提供容器,程序主要的业务实现、界面展示都是利用与H5相关的Web技术进行实现的。比如京东、淘宝、今日头条等APP都是利用混合开发模式而成的。 优点: 1、开发效率高,节约时间。同一套代码Android和IOS基本上都可使用; 2、更新和部署比较方便,每次升级版本只需要在服务器端升级即可,不再需要上传到App Store进行审核; 3、代码维护方便、版本更新快,节省产品成本; 4、比web版实现功能多; 5、可离线运行。 缺点: 1、功能/界面无法自定:所有内容都是固定的,不能换界面或增加功能; 2、加载缓慢/网络要求高:混合APP数据需要全部从服务器调取,每个页面都需要重新下载,因此打开速度慢,网络占用高,缓冲时间长,容易让用户反感; 3、安全性比较低:代码都是以前的老代码,不能很好地兼容新手机系统,且安全性较低,网络发展这么快,病毒这么多,如果不实时更新,定期检查,容易产生漏洞,造成直接经济损失; 4、既懂原生开发又懂H5开发的高端人才难找。 以上就是原生开发、H5开发和混合开发各自的优缺点。相比之下,由于现代人的个性化需求越来越明显,所以原生APP开发也越来越多,定制化的服务更能满足消费者的需求。
江一铭
2022/06/16
1.5K0
快速了解Electron:新一代基于Web的跨平台桌面技术
现在开发IM应用动不动就要求多端——即Android端、iOS端、PC端、Web端等,Android端和iOS端作为两种不同的移动端技术,单独开发和维护还能理解,PC端和Web端如果要单独开发那就有点头大了,必竟开发传统的PC桌面应用成本太高(QT这类技术跟Web技术相比,上手难度大的多,而且太小众)。所以,很大情况下大家都是PC富客户端和Web端二选一,对于比较磨叽的老板、产品经理或客户来说,这是个很费口舌的事情(你懂的。。。)。
JackJiang
2019/06/14
4.7K0
直播源码的开发方式有哪两种?
直播已经成为了一种行业,吸引力各路创业者,特别是一对一直播的出现,一对一直播源码也可以选择原生开发和混合开发,两种开发方式都能达到开发一对一直播的目的,这时候就会有人问:这两种开发方式有什么区别?开发一对一直播时应该选择哪种方式开发?
山东布谷鸟
2020/03/28
6000
直播源码的开发方式有哪两种?
选择QT作为Windows客户端开发框架
当你的产品决定使用C++进行Windows客户端开发时,也许QT是非常适合您产品的C++开发框架,框架选型时不容错过。其跨平台、功能丰富、文档齐全,稳定、已广泛应用于许多产品。
gaigai
2021/02/04
3.5K0
hybrid、react-native、weex和flutter的简单理解
移动端跨平台开发从最初的hybrid到react-native、weex,再到最近Geogle新推出的flutter移动UI框架,体验和性能越来越接近原生应用。
zhangjiqun
2024/12/16
1660
前端跨平台框架对比分析,看这篇就够了
前端跨端实践是指在开发过程中,使用统一的代码库或框架来实现在不同平台上运行的应用程序。
winty
2023/08/23
6.1K0
前端跨平台框架对比分析,看这篇就够了
桌面软件开发框架大赏
这个框架是两个挪威人在1995年创建的,发展至今可以说历史相当悠久,稳定性也很有保障。
liulun
2022/05/27
7.2K0
八大可商用桌面客户端应用开发框架深度指南-优雅草卓伊凡
在数字化浪潮中,桌面应用在各个领域发挥着关键作用,从日常办公到专业设计,从娱乐游戏到工业控制,应用场景极为广泛。以热门游戏为例,《英雄联盟》基于Windows平台,运用DirectX技术进行图形渲染,自研网络同步技术确保全球对战稳定。《地下城与勇士》采用2D渲染与动画骨骼绑定技术构建独特画面,借助分布式架构和负载均衡技术应对大量玩家在线。《穿越火线》基于Windows平台,利用Direct3D技术逼真呈现枪战场景,构建高效网络协议保障对战实时性。不同的桌面应用场景对开发框架需求各异。作为优雅草技术总监,我(卓伊凡)在桌面应用开发领域经验丰富,对多个框架都进行过尝试与试用。以下为大家详细介绍八个值得推荐的商业化桌面应用开发框架及其优缺点。
卓伊凡
2025/04/13
4150
客户端程序开发漫谈
   音视频领域中,除了关注服务器相关技术外,客户端也无法回避,毕竟客户端也要负责采集,编码,收发,解码和渲染,所以客户端开发也是整个音视频技术栈不可或缺的部分。本文梳理一下客户端常见技术方案,为以后客户端开发选型提供技术储备。
用户4148957
2022/06/14
1.7K0
客户端程序开发漫谈
APP的开发方式及特点
数字孪生开发者
2025/03/21
1020
APP的开发方式及特点
5000字解析:前端五种跨平台技术
本文不涉及到任何代码,只讲概念层面的,结合本人在实际开发过程中的各种体验,对这几种跨平台技术进行一个点评
Peter谭金杰
2020/05/09
1.3K0
5000字解析:前端五种跨平台技术
H5 APP开发框架的对比
在开发H5 APP时,选择合适的框架对开发效率和用户体验至关重要。以下是几个主流H5 APP开发框架的对比。
数字孪生开发者
2025/02/25
2620
H5 APP开发框架的对比
混合应用开发框架Cordova源码学习总结
有说法是,采用混合模式的WEBVIEW来开发界面,通常适用于需要经常变更的页面,比方活动页,或者其他展示页面;相对行业应用来说,哪些使用原生界面开发,哪些使用WEBVIEW来开发,需要从我们当前的痛点出发来考虑,当前行业应用主要是开发周期相对长,采用WEBVIEW的方式来开发,在通用基础则框架的基础上,则能缩短在UI上的开发时间,提升交付效率;但对WEBVIEW开发应用的体验的提升,是我们当前需要解决的最大的问题;采取的策略是,基于Cordova便于Android层面的扩展,MUI则有丰富的UI组建便于构建UI界面的基础,对于Android程序员来说,只需要安装标准的控件编写html就可以,降低对js复杂度的入门恐惧,所以采用MUI+Cordova技术框架集成方式。
呱牛笔记
2023/05/02
9650
混合应用开发框架Cordova源码学习总结
JavaScript中的图形用户界面:Electron框架
在软件开发领域,图形用户界面(GUI)是用户与软件交互的重要桥梁。随着JavaScript的发展,前端技术已经能够实现丰富且高度交互的桌面应用程序。Electron框架的出现,使得开发者能够使用JavaScript、HTML和CSS这些Web技术来构建跨平台的桌面应用程序。本文将介绍Electron框架的基本概念、特点以及如何使用它来创建桌面应用。
iwhao
2024/08/10
3510
推荐阅读
相关推荐
C++和C#界面开发方式的全面对比
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档