【学习笔记】WPF-01:前言

  • 【学习笔记】WPF-01:前言已关闭评论
  • 200 次浏览
  • A+
所属分类:.NET技术
摘要

WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,由 .NET Framework 3.0 开始引入,与WCF (Windows Communication Foundation)及 WF(Windows Workflow Foundation)并行为新一代 Windows操作系统以及 WinFX 的三个重大应用程序开发类库。


前言

1.基本概念

WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,由 .NET Framework 3.0 开始引入,与WCF (Windows Communication Foundation)及 WF(Windows Workflow Foundation)并行为新一代 Windows操作系统以及 WinFX 的三个重大应用程序开发类库。

2.功能定位

三层架构

【学习笔记】WPF-01:前言

对于一般程序而言通常包含3层架构:数据层业务逻辑层表现层,这三层结构的功能大致如下:

数据层:
存储数据。多由数据库构成

业务逻辑层:
根据需求实现业务功能。通过一组Service向表现层公开功能,通过DAL(Data Access Layer)与数据层进行交互

表现层:
向用户展示数据。通常被称为客户端程序

WPF的功能是用来编写应用程序的表现层

扩展:业务逻辑层——WCFWF数据访问层——WCF DataServiceWCF RIA Service

3.功能结构

MVVM模式

【学习笔记】WPF-01:前言

表示层程序一般包括以下四种功能性代码

  • 数据模型:现实世界中事物和逻辑的抽象。

  • 业务逻辑:数据模型之间的关系与交互。

  • 用户界面:由控件构成的、与用户进行交互的界面,用于把数据展示给用户并响应用户的输入。

  • 界面逻辑:控件与控制之间的关系与交互。

在WPF出现之前,Windows Forms、ASP.NET(Web Forms)等技术均使用“事件驱动”理念,界面逻辑和业务逻辑容易纠缠在一起,造成代码结构复杂难懂、bug难以排除。而WPF技术则是“数据驱动”。

事件驱动:用户每进行一个操作用会激发程序发生一个事件,事件发生后,用于响应事件的事件处理器就会执行。事件处理器是一个方法(函数),在这个方法中,程序员可以处理数据或调用别的方法,这样,程序就在事件的驱动下向前执行了。事件驱动的数据是静态的、被动的;界面控件是主动的、界面逻辑与业务逻辑之间的桥梁是事件。

数据驱动:当数据发生变化时,会主动通知界面控件、推动控件展示最新的数据;同时,用户对控件的操作会直接送达数据。在数据驱动理念中,数据占据主动地位、控件和控件事件被弱化(控件事件一般只参与界面逻辑,不再染指业务逻辑,使程序复杂度得到有效控制)。数据与界面之间的桥梁是数据关联(DataBinding),通过这个桥梁,数据可以流向界面,再从界面流回数据源。

在WPF中,把能够展示数据、响应用户操作的UI元素称为控件(Control)。控件所展示的数据称为控件的“数据内容”;控件在响应用户的操作后会执行自己的一些方法或以事件(Event)的形式通知应用程序(程序员可以决定如何处理这些事件),称为控件的“行为”或“算法内容”。

4.技术结构

WPFSilverlight的技术对比:

技术项目 在WPF中 在Silverlight中
XAML语言 完整 完整
控件 完整 完整
布局 完整 完整
Binding 完整 基本完整
依赖属性 完整 基本完整
路由事件 完整 简化
命令 完整
资源 完整 完整
控件模板 完整 基本完整
数据模板 完整 基本完整
绘图 完整 完整
2D/3D动画 完整 简化

类比于Web前端,XAML可以看做HTML+CSS,用作用户界面的编写。业务逻辑的具体实现是通过C#编写,类比于JavaScript。另外,WPF中的技术点与Vue是极其相似的,可以对比学习。

个人小结

WPF是一个用来编写表现层的工具,使用数据驱动的理念,采用MVVM模式,UI界面与业务逻辑分离。