应用场景

C#框架

WPF: 界面与业务逻辑隔离,由于客户不同的业务需求,即便是前端变了也不会影响后端实际的业务逻辑。
WInform: 把所有组件对象话,可用直接拖动组件来进行快速开发。
SliverLight: 跨平台,跨浏览器插件,类似Flash。

异同点

输出结果都是客户端程序
界面渲染: winfrom一个组件一个句柄,wpf渲染和winfrom不同,可能是一个窗口一个句柄。
业务逻辑控制: winform是面向事件进行编程,而wpf是mvvm。
快速开发使用winfrom,时间周期长用wpf。

框架的可移植性

wpf和winform只能在Windows上使用,无法跨平台。

应用场景

上位机
个人使用的客户端程序

界面逻辑

界面渲染

WinForm采用GDI绘图方式,每个控件都对应一个句柄,控件和外观是微软预定好的,如果想要美化则会不是很方便。
wpf的的控件内部可以嵌套控件,可以灵活的进行美化组合,例如在Button里嵌套一个图片等的。

业务逻辑控制

WPF的组件可能没有Winform组件多的原因是,winfrom一开始就把各种应用场景的组件定义好了,用的时候直接拖就可以了,而wpf则需要根据应用场景将不同的组件组合起来变为一个单独的组件,从易用性场景来说,Winfrom更简单一些,但是从灵活性来说,wpf可能更灵活。

wpf天生支持自适应,所有在开发的过程中尽量不要将长宽高这些都写死,wpf会根据自动根据窗口大小来调整组件大小的。

wpf采用MVVM设计模式,viewModel作为填充层,对上view提供数据以及业务功能,对象Model实现数据的封装,这样做可以使得view与model进行解耦合。如下图所示,view从viewModel拿到数据或命令绑定到view,viewModel拿到数据或执行了一部分以为功能后将数据更到model中,然后view通过viewModel拿到数据展示到view中。
image

posted @ 2025-08-01 00:10  RainbowMagic  阅读(36)  评论(0)    收藏  举报