WINFORM和MFC
1、
结果来说,属于两套界面渲染方式。一个是对传统windows界面元素的封装,通过gdi绘制。另一个是全新的dx渲染绘制的界面,也脱离了对传统windows控件的依赖,没有历史包袱,理论上可以展现更炫酷的界面。对初级开发人员来说,没太大区别,类似的基本设计器是他们设计界面的主要手段,一样给事件编写代码。对初级以上开发人员来说,wpf需要学习xaml,有全新的ui描述语言,特别是可以通过模板的嵌套实现复杂的元素,通过style实现类似css的功能,通过比winform完善的多的数据绑定机制实现业务逻辑可以专心对数据而不是界面进行开发。前途来说,两者必定还会长期共存。深入理解winform对理解windows一些内部机制有好处。好好学习wpf可以更方便过度到其他xaml相关技术,这是微软目前广泛使用的技术,比如接下来的windows通用应用。
2、
Winform本质上就是在MFC上增加一层.Net API, 从06年开始就只有几个人在维护,基本上不增加任何新feature, 只是做bug fix. 所以,如果你要开发windows上的程序,最好不要使用Winform, 懂了这个技能也没啥用。Win8开始,微软用了一套新的Framework,但是跟WPF很相像,都是XAML,后面的设计思想也是基本一样的(毕竟是同一组人设计的)所以,如果你要学Windows上界面开发,WPF算是一个选择吧另外,从实现上讲,WinForm用的是Windows以前那一套每个控件都是一个窗口的设计,而WPF本身只有一个窗口,所有控件都在这个窗口里的Visual Tree上,另外,它还可以有效利用你的GPU.
3、
对于初学者来说,最直观的印象是:winform的控件更多,但是wpf的界面可以更炫酷,更重要的是wpf对于屏幕的自适应比winform优秀得多。太多开发桌面程序的人由winform转到wpf最重要的原因是winform的控件自适应做得很差,而不同客户公司里有不同比例的显示器。winform还有一些其他方面让你不爽,比如label标签背景不能设置为透明,以及窗口编辑视图不能缩放,让你感觉到很掣肘。而wpf的则给了你全面的自由,特别是学到以后的修改模板以及特效。至于数据绑定,mvvc 设计模式初学者通常感受不到它的好处的。至于说到的性能差异,通常可以忽略不计。而且wpf完全兼容winform的语法,所以越快转越好!
4、
你想上班 那么针对公司需求学如果只是自己写着玩 那么区分一下1.你的程序运行在 自己机器a.一个工具而已 要的是cooooooool 那么WPFb.一个工具而已 要的是useful easy 那么winform2.运行在客户机器a.客户要求coooooool 那么wpfb.客户要求 userful 那么winform不要谈到性能 就可以忽略。 XP机器 依旧很多。记住WPF 需要大量内存 以及CPU的代价来实现普通功能。记住WPF 是新的东西 需要重新上手学习记住 winform是 老的东西 win32 的那一套老生常谈都可用在这里如果谈前景 理论上说起来是WPF 更有前景 但是目前实际来看 WPF发展并不如预期 相反winform也并不如预期的没落。加上 巨硬 经常会自己打脸。
5、做项目WinForm更好。虽然WPF更先进,但是好比XP比Win8更普及一样。WinForm具有更好的客户端性能。功能上也差不多,都能做出来。还有UWP,当然这个更冷门。
比较有前景的是 .net Core。
6、
1、改界面winform:写的程序如果需要改界面牵扯很大。代码的编辑可能会导致更多的错漏出现而不自知。大工程改界面更甚。wpf:如果采用mvvm(model、view、viewmodel)来写,任你界面改翻天,后台代码不受任何印象。2、复杂的控件winform:写各种各样的后台代码wpf:用依赖属性、附加属性、触发器即可定制复杂的控件。比如显示股票k线价格的控件3、动画winform:写后台代码wpf:用animation的各种属性即可4、句柄winform:一个控件一个句柄(记得是这样,如果我记错了请指正)wpf:整个窗口同一个句柄5、控件自适应winform:麻烦wpf:利用wpf的panel,就能让控件自动自适应。
7、
winForm 使用同一套编程语言代码完成界面的设计,以及后台的交互逻辑。你在winForm代码中可以了解和干预图形界面的渲染时机和细节。winForm使用传统的GDI渲染图形界面,较为中规中矩,但难以实现得更绚丽。winForm很成熟,有十几年的技术积淀,但微软已经停止对其增加新的特性,仅在某些安全漏洞上做一些补丁。WPF的设计理念是图形和逻辑完全分离,因此图形界面的设计是通过专门的XAML代码设计的,后台逻辑则可以使用C#或VB编写。你无法在WPF/XAML代码中了解和干预图形界面的渲染时机和细节。WPF使用DX渲染图形界面,更接近图形驱动程序,效果可以非常绚丽,性能也比较好。WPF出现的比较晚,但也有好几年的技术沉淀了。由于现阶段微软更推崇升级版的UWP,WPF本身也像winForm一样好久没有新的特性了。winForm适合没有专门的图形设计师,且不需要在图形界面有太多要求的团队,入手简单。WPF适合有专门的图形设计师,图形界面有较高要求的团队,相对复杂。就技术本身来说,WPF的技术更符合时代潮流,更有前景。但个人来说,了解winForm有助于理解图形界面生成处理的细节,winForm在某种程度上类似于MFC,但又不至于太底层而难懂。
8、
你如果是职业码农,请问你学wpf做什么呢?开发桌面exe吗?就算搞专业桌面应用的企业也都是跨平台方案,有几个用wpf呢?你如果是业余码农,为什么不用winform呢?winform简单而且开发速度快,嫌丑的话再用donetbar之类的插件美化一下即可,最重要的是部署,xp win7基本都有net2.0的环境,直接就能跑。你能体会到写完wpf,最后部署到xp却发现客户端上安装net4.0装不上的感觉吗?补充下:现在xp电脑基本上不用考虑,但是依然不推荐wpf。速成推荐winform,深入学习推荐qt或者electron 。qt 既有常规拖控件的widgets,又有类似于前端界面的qml和webengine,程序还能跑在安卓/ios上,强烈推荐。
9、
我正面回答一下题主的问题吧:其实两个前景都不大好。WPF比Winform略好一点的方面是,现在微软的新界面开发方式,都是用XAML,所以Siverlight,WPF,Windows Phone/Metro,学了一样,就一通百通了,但是实质上,都看不到有什么太光明的前景,至少在国内是这样的。
10、
学会XAML,5分钟看懂DIV+CSS。
11、
当然是各有各的好喽。
WinFrom比较老是不追求界面,要求一般性能的首选。Wpf是新一代的Ui开发框架,适合界面要求高的,性能也没有那么不堪,适合快速开发。所以假如想做好的话这两者甚至是MFC都要熟悉的。这三者即可相互替代,也可相互融合。手机码字
12、
wpf的底层是DirectX,意味着你的显示效果不仅可以更炫更酷,同时显卡(集显独显均可)提供的加速也不会拖累你的运行速度。winform的底层是GDI/GDI+,除非你明确使用DX的接口,不然永远都是CPU在画图,效果没那么炫,而且无法显卡加速。wpf的界面设计和逻辑设计可以分离,界面设计师可以利用blend自主设计好看的界面,而不是最终让程序员来实现那个复杂的动画或者设计。winform设计师最多拖一拖,而这往往不够用。wpf对于数据逻辑、业务逻辑、显示逻辑进行了解耦和,可以让不同部门协同工作更舒服一些,winform多少有一些搅在一起。