选择winform还是WPF?

.Net技术 码拜 10年前 (2015-05-10) 2473次浏览 0个评论
 

最近要开发一个桌面的工具,开发环境为vs2010, 界面部分采用WPF还是传统的Winform呢? 
1. 最终生成的可执行文件,哪个内存占用更小些?
2. WPF在界面效果上究竟有多大的优势? 大家一般选择哪种方案?

谢谢了

20分
wpf采用directX引擎,消耗的是GPU,节省cpu,他winform各有优势,你随意吧
20分
看你注重神马哈,要是对页面效果有要求,那就WPF吧。。
如果没有,如WINFORM的话,方便一些。
20分
wpf体验更好些,更炫,但是吃内存,一般的机器还扛不住
20分
对,而且WPF还有一些英文数字混合后,字体效果的问题,另外,WIN7下和XP的效果及布局也有些问题。
当然,这些问题估计后期都能解决,只是提示一下。WPF有些地方,不太稳定。但是如果想追求好的效果,
可以使用。
WPF 是不是明显比传统winform内存占用大?
20分
看你的目标客户机器配置以及系统
还有你们程序界面是怎样的,
属于什么类型,外观还是技术型
目标群体是什么样的人
开发者是什么样的人,
对Winform和WPF熟悉程度怎样
。。。。
考虑的因素太多了

有冲突么?

很艰难的选择吗?

都是Net技术就别这呀那呀的

引用 5 楼  的回复:

WPF 是不是明显比传统winform内存占用大?

要是做绚丽的效果,运行时,cpu占用那个直线飘升。。。。

这就好比是吃黑米稀饭还是玉米稀饭一个道理昂。
嘎嘎
果断用新技术啊。对自己将来着想。
[img=http://img.my.csdn.net/uploads/201208/09/1344515269_2751.jpg]炫不炫,哈哈[/img]
你真的需要那么炫吗?
你真的能做到那么炫吗?
WPF,感觉有点像Vista,像炫,像热,很高新技术
但没多少人,公司使用

……
WPF重要的不在于它能做多炫的动画,而是它将这些步骤简化。另外,WPF能很好的分离设计和逻辑/数据,这改变了先前程序员既要写程序,又要做美工处境,让程序员能更专注于他们所擅长的领域。

至于内存占用,WPF没有什么优势,毕竟内部大量使用反射。
性能方面,要看GPU是否支持DX9,如果不支持DX9,CPU将要承担大量渲染工作;相反,若GPU支持DX9,则CPU就不必处理大部分绘图/渲染工作,相对GDI+,优势明显。

如果你是新手、并且你身边没有高手帮你,还是Winform合适些,WPF的学习周期要长。
引用 13 楼  的回复:

先前程序员既要写程序,又要做美工处境,让程序员能更专注于他们所擅长的领域

各大作坊老板们看到这一条
果断选择winform
WinForm:界面+程序一个人能搞完
WPF:还得给你们这帮码农配一个美工MM

实际上我比较讨厌WPF的设计方式,十分不习惯。我用它是因为在做项目的同时可以降低学习XNA和DirectX的曲线,这个收益比较可观。
看功能需要了,
我这个是用winform写的:http://www.370b.com
引用 10 楼  的回复:

果断用新技术啊。对自己将来着想。

wpf内存消耗很厉害
美观=PWF
易维护=winform
必竟现在懂winform的人很多。所以下个团队维护的时间更方便些
当然是WPF了,很快很好看
能做出客户想要的东西都是好东西!
WPF如果加上一些特效的话,界面会比较好看。
而内存占用小,只能是Winform…
表示没用过WPF的路过。
winfrom在xp下界面渲染效率较低,在vista以上快多了.wpf更快.
我感觉看楼主什么青年了,文艺青年WPF,普通青年 WINFROM
果断WPF。新技术要多学学,跟上潮流。别自己把自己弄丢了!
现在硬件发展的比较快啊,学点WPF我想还是有用的
现在硬件发展的比较快啊,学点WPF我想还是有用的
wpf同时显示中英文字符字体的问题我也遇到过,不过wpf开发还是很方便的,也可以在wpf里使用winfrom控件,外观效果很好,不过内存占用比较大。最近就是因为加载图片内存消耗受不了,还在想方法解决。
wpf吧,多学点
基本上来说,除非“随便花一天时间做个东西玩儿玩儿”的那种闲的没事的时候以外,我们绝对不会考虑winform开发企业应用。

当然我们基本上也不考虑wpf,它混乱、太繁冗了,背负有兼容winform的太多的技术债。我们考虑silverlight。但是假设要在winform和wpf中去选一个,那么毫无疑问地当然去选择wpf。

wpf要比winform体系先进了至少10年,当然要比winform更强、更快、更酷,而且占用内存也更少(在考虑到功能的情况下)。至于那些说“wpf内存大”的人,要看看自己的软件设计本身。如果不看,那么你用winform去实现一下你们在wpf上想实现的完整功能,我相信就算能做出来、占用内存也绝对不比wpf的少。

不要拿wpf去实现笨拙的winform上的设计,你应该用winform去实现在wpf上的那些设计试试看!

winform技术成熟,wpf说实话,我还不知道它未来是生是死。
自己开发DirectUI呗。。。 基于winform  想怎么玩就怎么玩
引用 35 楼  的回复:

基本上来说,除非“随便花一天时间做个东西玩儿玩儿”的那种闲的没事的时候以外,我们绝对不会考虑winform开发企业应用。

当然我们基本上也不考虑wpf,它混乱、太繁冗了,背负有兼容winform的太多的技术债。我们考虑silverlight。但是假设要在winform和wpf中去选一个,那么毫无疑问地当然去选择wpf。

wpf要比winform体系先进了至少10年,当然要比winfor……

你就不要扯淡了WPF WPF,你真觉得这玩意有什么出路?

大部分应用WINFORM就已经足够,很少客户会要求很炫酷的软件效果,如果需要那你这个占用内存巨大运行效率低下的毛病同样会让他们恨到咬牙,至此,你的WPF也成了一道难以下咽的菜。

上两个测试图吧,用联想笔记本,处理器i5-2450M双核,集成显卡和NVIDIA NVS 4200M(鸡肋显卡,性能还不如集成的)两种模式。
因为是色盲,所以界面做得很丑,见笑了。但目的是测试WPF 3D显示数据表动画的性能,丑点也没关系。
一共六面,六个DataGrid,绑定六个DataTable,每个DataTable有10000条数据,共60000条。下面的两幅图是六个数据表持续旋转(60度/秒)时的CPU消耗和内存占用。在这两幅图之前实际上还有一个模拟登录界面,旋转前有个滑动图示场景的过场动画。
做这种效果内存占用相比Win32+DirectX是大点,但也没那么不堪,况且DirectX显示能编辑的数据表不是象WPF这么容易的,多用三十来兆内存我感觉没什么不值的。
第一张图,NVIDIA NVS 4200M鸡肋显卡运行程序,持续动画时内存占用65兆,CPU消耗7%
选择winform还是WPF?
第二张图,集成显卡运行程序,持续动画时内存占用77兆,CPU消耗5%
选择winform还是WPF?
winform就很实用了,根据客户需求吧,如果软件已经开发的比较成熟,追求更近更完善可以考虑wpf
如果是大项目,并且面向不同的客户和需求,WPF + Prism 是迄今为止的最佳选择。因为Prism允许不同的Team开发不同的独立模块而互不干扰。还有开发周期的问题,使用WPF + Prism会大大缩短开发周期。WPF开发的不利之处是起点高,基于模式开发,刚开始的时候会晕头转向。至于效率可以不必太计较,因为硬件可以满足的。再是要充分利用多线程,效率是不存在问题的。
看客户了,如果只是给外人看,就wpf,如果要实用还是winform
哇,你们讨论的是什么啊,好高端啊,还在用C写底层和界面的飘过
都是被微软淘汰的产品,要做传统的桌面用Delphi吧
我无语了。一直在用winform,因为是一个人在开发。WPF太耗时间和精力。看你规划目标是什么,想以后专业做软件,就用wpf,否则还是用winform,效率高,开发快。
这个在这里问?那个结果就仁者见仁,智者见智了!
国外WPF项目很多了,国内永远是落后
我没答案,所以mark一下。
说的好,新人飘过!
WPF画东东很吃内存和CPU,而且数据多了会非常慢,
winform 好很多,不过画的东东太简单了.
比较一下.1万个东东的树,你可以看一下winform 和wpf 的效率
还是看需求了,winform开发比较传统,简单快捷,wpf画面比winform要炫得多,如果需要漂亮的界面就用wpf吧,如果只是需要功能winform
软件的第一选择是用户体验 ,从用户体验出发 你就知道 选那个。
WPF未来的发展方向。学会XAML,WPF,SL,WF就都会了。
意见真多,说实话,我从winfrom过渡到wpf确实感到不太习惯。
因为,wpf实现了码农和美工的分工。
但是,事实上对于我们很多人来说,还是得自己搞定这两项工作的。

所以:
1. wpf是技术的革新和进步,如果你还想走得更远,那么肯定要逐步掌握它;
2. 几周来,我花了不少时间了解它,你必需得熟悉xaml文件格式,而同时,你需要掌握常用的几十个英文单词,它们在你用winform时是没有遇到的;你需要知道还有一个叫做blend这样的工具,虽然要成为使用blend的高手,恐怕就不是几个星期能搞定的了。
3. 事实上你可以象用winform一样使用wpf,这几乎没有什么障碍,并且可以把winform的dll、用户控件在wpf中使用。虽然这样无法发挥wpf的优势。
4. 学会wpf,就同时掌握了其它几样适用的技术。

引用 11 楼 lizhibin11 的回复:

[img=http://img.my.csdn.net/uploads/201208/09/1344515269_2751.jpg]炫不炫,哈哈[/img]

确实炫,小弟是新人,感觉比winform难上手很多啊

还是看客户需求吧。但是新技术我们还是得抽时间去学的。
引用 18 楼 rayyu1989 的回复:

看功能需要了,
我这个是用winform写的:http://www.370b.com

请问一下你的界面是怎么实现的呢?

winform、wpf、DirectUI、GDI+
这几个是什么关系?
引用 57 楼 meieiem 的回复:

引用 18 楼 rayyu1989 的回复:看功能需要了,
我这个是用winform写的:http://www.370b.com

请问一下你的界面是怎么实现的呢?

大方向都是自绘
我的目前是paint里自己画

引用 18 楼 rayyu1989 的回复:

看功能需要了,
我这个是用winform写的:http://www.370b.com

wpf也可以做网站吧!

我也在迷茫。不知道要选择哪个!  但我实际遇到的是,任何企业,要求的是软件的稳定,和数据的准确,而不是界面如何如何。
谁说wpf难上手的?我敢说wpf比winform学习起来简单多了,只不过你已经做过winform所以才觉得wpf难。说wpf难的都是固步自封不肯学习的老顽固哎。。
没用过WPF不过,今天试了一下,感觉比winform方便(有点web基础).
引用 28 楼 shooke 的回复:

我感觉看楼主什么青年了,文艺青年WPF,普通青年 WINFROM

2B青年Win32?

我之前玩winform的,后来勉强学习WPF 做了一个超级玛丽。
但是想用WPF做漂亮的界面 就难受了,不想弄繁琐冗长的 xaml代码。
引用 66 楼 zmidl 的回复:

我之前玩winform的,后来勉强学习WPF 做了一个超级玛丽。
但是想用WPF做漂亮的界面 就难受了,不想弄繁琐冗长的 xaml代码。

xaml代码用做blend做

如果数据量非常小(全是个人造出来的数据,数据库在本地SQLite。)
是不是用WPF没有太大影响啊?
我也在做点东西。自己用,想弄酷一点~。

引用 50 楼 daonidedie 的回复:

WPF画东东很吃内存和CPU,而且数据多了会非常慢,
winform 好很多,不过画的东东太简单了.
比较一下.1万个东东的树,你可以看一下winform 和wpf 的效率

数据量大winForm,量小wpf?
引用 35 楼 sp1234 的回复:

基本上来说,除非“随便花一天时间做个东西玩儿玩儿”的那种闲的没事的时候以外,我们绝对不会考虑winform开发企业应用。

当然我们基本上也不考虑wpf,它混乱、太繁冗了,背负有兼容winform的太多的技术债。我们考虑silverlight。但是假设要在winform和wpf中去选一个,那么毫无疑问地当然去选择wpf。

wpf要比winform体系先进了至少10年,当然要比winform更强、更快、更酷,而且占用内存也更少(在考虑到功能的情况下)。至于那些说“wpf内存大”的人,要看看自己的软件设计本身。如果不看,那么你用winform去实现一下你们在wpf上想实现的完整功能,我相信就算能做出来、占用内存也绝对不比wpf的少。

不要拿wpf去实现笨拙的winform上的设计,你应该用winform去实现在wpf上的那些设计试试看!

Silverlight也是WPF的一个子集,谢谢

WPF就是在硬件条件大幅提升的背景下出现的,所以那些说WPF占用CPU多的有的不合时势。
还有,那么多人建议WinForm我看很大一个原因是他们把大量的精力都投入到WinForm上了。我以前也把大量精力投入到C++上,但是现在认识到只能与时俱进。
wpf对硬件支持不是太好,虽然可借用winform,但编写程序量太大,调试烦琐,只是好看点,注重界面的可考虑,不然没有太大的好处特别是大程序,几百个表连同硬件的程序简直受罪
正打算学习wpf,学习新的技术总是必要的
winform和wpf那就选wpf,与时俱进嘛,学习中
学了几个月WPF了,感觉很不方便,可能是因为学得不好的原因吧。感觉这种破技术应该淘汰,做出的效果还行,就是开发一点点东西工作量是winform的N倍。不明白设计的初衷是什么。
引用 35 楼 sp1234 的回复:

基本上来说,除非“随便花一天时间做个东西玩儿玩儿”的那种闲的没事的时候以外,我们绝对不会考虑winform开发企业应用。

当然我们基本上也不考虑wpf,它混乱、太繁冗了,背负有兼容winform的太多的技术债。我们考虑silverlight。但是假设要在winform和wpf中去选一个,那么毫无疑问地当然去选择wpf。

wpf要比winform体系先进了至少10年,当然要比winform更强、更快、更酷,而且占用内存也更少(在考虑到功能的情况下)。至于那些说“wpf内存大”的人,要看看自己的软件设计本身。如果不看,那么你用winform去实现一下你们在wpf上想实现的完整功能,我相信就算能做出来、占用内存也绝对不比wpf的少。

不要拿wpf去实现笨拙的winform上的设计,你应该用winform去实现在wpf上的那些设计试试看!

引用 35 楼 sp1234 的回复:

基本上来说,除非“随便花一天时间做个东西玩儿玩儿”的那种闲的没事的时候以外,我们绝对不会考虑winform开发企业应用。

当然我们基本上也不考虑wpf,它混乱、太繁冗了,背负有兼容winform的太多的技术债。我们考虑silverlight。但是假设要在winform和wpf中去选一个,那么毫无疑问地当然去选择wpf。

wpf要比winform体系先进了至少10年,当然要比winform更强、更快、更酷,而且占用内存也更少(在考虑到功能的情况下)。至于那些说“wpf内存大”的人,要看看自己的软件设计本身。如果不看,那么你用winform去实现一下你们在wpf上想实现的完整功能,我相信就算能做出来、占用内存也绝对不比wpf的少。

不要拿wpf去实现笨拙的winform上的设计,你应该用winform去实现在wpf上的那些设计试试看!

引用 35 楼 sp1234 的回复:

基本上来说,除非“随便花一天时间做个东西玩儿玩儿”的那种闲的没事的时候以外,我们绝对不会考虑winform开发企业应用。

当然我们基本上也不考虑wpf,它混乱、太繁冗了,背负有兼容winform的太多的技术债。我们考虑silverlight。但是假设要在winform和wpf中去选一个,那么毫无疑问地当然去选择wpf。

wpf要比winform体系先进了至少10年,当然要比winform更强、更快、更酷,而且占用内存也更少(在考虑到功能的情况下)。至于那些说“wpf内存大”的人,要看看自己的软件设计本身。如果不看,那么你用winform去实现一下你们在wpf上想实现的完整功能,我相信就算能做出来、占用内存也绝对不比wpf的少。

不要拿wpf去实现笨拙的winform上的设计,你应该用winform去实现在wpf上的那些设计试试看!

说话不要太绝对, 现在已经2014年了,我所了解到企业应用都是winform,基于WPF的应用依然非常非常少,现在依然很多很多10多年前的关键winform应用,还在默默的运行着。

从winfrom 转wpf 我感觉生的很——
很多在winfrom 上正常的代码 到wpf 就不行了——
我现在为了效率问题一直使用winform,不管硬件再怎么增加,你占用的资源都是那么多,移动设备也是从低走高。
要说界面的话,用下devexpress这些组件做出来的界面比原生自带的WPF好看多了,这样就基本没必要用WPF了吧
事实上xaml布局比winform的布局简单快捷,方便,可控多了.从开发效率方面来说wpf远远超过winform
wpf不是什么高级技术,是非常容易学习的,学习后你会感觉他非常方便.
唯一缺点就是怕微软丢弃这门技术

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明选择winform还是WPF?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!