相关文章推荐
奔跑的茄子  ·  C# ...·  2 月前    · 
千杯不醉的绿茶  ·  WPF combobox ...·  2 月前    · 
高大的拐杖  ·  wpf ...·  3 周前    · 
活泼的领结  ·  如何:对视图中的数据进行排序 - WPF ...·  2 周前    · 
私奔的山楂  ·  如何:对视图中的数据进行排序 - WPF ...·  2 周前    · 
怕老婆的回锅肉  ·  C语言中类型限定符 - Grooovvve ...·  1 年前    · 
刀枪不入的皮带  ·  websphere - The ...·  1 年前    · 
暴走的茴香  ·  Python可视化打包神器,快来学习! - 知乎·  2 年前    · 
心软的水煮肉  ·  pytorch ...·  2 年前    · 
帅气的毛衣  ·  Microsoft.Exchange.Web ...·  2 年前    · 
Code  ›  为什么很少看到使用WPF开发的流行的应用程序呢? - 匿名用户 的回答 -
软件 电脑 wpf
https://www.zhihu.com/question/23598623/answer/656932574
怕老婆的瀑布
2 年前
为什么很少看到使用WPF开发的流行的应用程序呢?
匿名用户
匿名用户

因为wpf推出时,内存普遍才256M,还需要.net环境,wpf冷启动很慢,确实跑的不算流程,那时候运行多少个程序都清清楚楚,多出来就立马杀掉,否则内存不够用,wpf一运行就70M,确实太占内存了。

随着电脑的性能的进步,比wpf慢得多的web端都崛起了,当然后来优化的也不错了,然后现在软件的瓶颈变了,老的gdi程序渲染依赖CPU,东西多了效果多了,多好的CPU都吃不消,这东西单核的。而wpf使用dx渲染就能有很流畅的动画效果,内存也富裕了,不差那几十M,后续的内存占用其实差别不大,CPU不需要渲染GDI解放了出来,但已经错过客户端的最佳时机了。

但是在需要客户端的地方,现在wpf是不错的选择,特别是这些年xaml在各个端使用,增加了很多辅助组件,以及wpf迁移到.net core,反倒给了人使用wpf的信心。

-

说回历史

其实.net组件到4.0后就不是很愁安装了,大量的游戏在使用,你没看到3dm下游戏前让你下运行库就有么,以及显卡驱动也帮微软装.net,这一点在4.0后不是主因了,再后来的系统直接自带了。

有人拿360和QQ举例,的确流行的客户端选择c++是肯定的,因为都是常驻型的,开机启动,所以性能非常重要,360依赖.net运行就笑话了,黑客把.net环境干掉360就运行不了的话,这确实是当时的重要原因,老牌客户端都是这时候诞生的,.net的性能赶不上,但后来主要还是客户端的没落,新的软件不会这么流行了,而且根据需要一般也选择winform,不是以界面为主的,所以有些新的流行软件是winform的,也有少数是wpf的,这些软件并不会比老牌软件流行,最多也就在某个领域流行,并且你也感觉不到他是winform wpf做的,用什么技术做的这已经不重要了。

说性能不够的,你没见到迅雷7那玩意,比QQ wpf版本卡多了啊,QQ WPF版用性能好一些的电脑是可以很流畅的,迅雷7是多好的电脑都不会流畅啊。

总的来说还是时机问题,导致c++ delphi 乃至vb6最适合早期客户端,后来的winform wpf占不了多少优势,即便aot编译出来了不需要依赖了,也不会有新的很牛逼的客户端软件出现了。要说使用场景的话只有用在需要客户端的企业和工业开发上了,在你需要的时候用来开发客户端当然是没问题的。

 
推荐文章
奔跑的茄子  ·  C# 在winform或者wpf中显示控制台窗口 - qqnihao
2 月前
千杯不醉的绿茶  ·  WPF combobox selectionchanged and triggered the listbox scroll/locate to the selected item cooperate
2 月前
高大的拐杖  ·  wpf 设置无边框的透明button_wpf button去除边框
3 周前
活泼的领结  ·  如何:对视图中的数据进行排序 - WPF | Microsoft Learn
2 周前
私奔的山楂  ·  如何:对视图中的数据进行排序 - WPF | Microsoft Learn
2 周前
怕老婆的回锅肉  ·  C语言中类型限定符 - Grooovvve - 博客园
1 年前
刀枪不入的皮带  ·  websphere - The object referenced by the java:comp/env/HRONLINEFSDEV2 JNDI name could not be instantiated in Liberty - Stack Overf
1 年前
暴走的茴香  ·  Python可视化打包神器,快来学习! - 知乎
2 年前
心软的水煮肉  ·  pytorch torch.nn.functional实现插值和上采样 - 慢行厚积 - 博客园
2 年前
帅气的毛衣  ·  Microsoft.Exchange.WebServices.Data (401) Unauthorized error - Microsoft Q&A
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号