WPF和WinForm的区别, 数据驱动与事件驱动的优势对比
Winform中针对界面的元素进行操作, 所有业务都关联在当前窗口的后台, 而在此之前, 无奈你是双击事件的添加方式、还是后台绑定事件的方式,
你都需要给每个元素一个固定规范的名称, 然后进行相关的数据操作。这种方式称之为事件驱动型。
WPF的不同之处:
1. WPF不仅仅在支持原生的Winform旧模式的操作下,升级了一种全新的模式,也是就是MVVM模式, 不再为每个元素添加固定的名称, 然后通过后台进行事件进行业务代码编写。
2. 一套扩展能力超强的UI界面, 与早期的GDI+/GDI不同。WPF是基于DirectX引擎的,支持GPU硬件加速,在不支持硬件加速时也可以使用软件绘制。
高级别的线程绘制可以提高使用者的体验。自动识别显示器分辨率并进行缩放。
3. 有诸多的新功能,诸如: 样式、触发器、命令、动画、模板 。
Winform模式带来的常见的开发问题:
1.为了满足winform用户界面的需求, 所以也自然诞生了很多公司或者个人为其开启一套经常UI的统一处理的控件, 如市面上常见的有DevExpress 、DotenetBar 等等。
所以自然就暴露出了新的问题, 使用了新的控件、那么自然会有一套新的数据获取方式、又需要去适应新的整套开发方式、而使用新的控件只是为了满足winform界面不丰富、或者更加强大的功能。
2.暂且不考虑第三方控件带来的新的问题、winform本身的开发模式、就存在着天然的缺陷, 举个例子, 按照常规的方式我们给一个winform控件进行数据绑定操作。
按照事件驱动的模式, 他则是需要根据控件名来获取我们原始绑定的数据。 【 界面与数据完全耦合, 取数据在绑定之前已经知道数据的结构, 在获取的数据的时候却还要回过头去通过控件来找数据】
数据驱动的理念是什么?
什么是数据驱动UI呢?我们知道传统的GUI界面都是由windows消息通过事件传递给程序,程序根据不同的操作来表达出不同的数据体现在UI界面上,这样数据在某种程度上来说,
受到很大的限制。 WPF中是数据驱动UI,数据是核心,处于主动的,UI从属于数据并表达数据,是被动的。WPF数据第一,控件第二。尽管WPF中,数据处以第一, 但是对于UI来说,
WPF中的UI仍然是其出色的一部分。