论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
【学习笔记】WPF-01:前言
【学习笔记】WPF-01:前言
小小小幸运
金牌会员
|
2022-6-20 09:40:02
|
显示全部楼层
|
阅读模式
楼主
主题
728
|
帖子
728
|
积分
2184
前言
1.基本概念
WPF
(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,由 .NET Framework 3.0 开始引入,与WCF (Windows Communication Foundation)及 WF(Windows Workflow Foundation)并行为新一代 Windows操作系统以及 WinFX 的三个重大应用程序开发类库。
2.
功能定位
三层架构
对于一般程序而言通常包含3层架构:
数据层
、
业务逻辑层
、
表现层
,这三层结构的功能大致如下:
数据层:
存储数据。多由数据库构成
业务逻辑层:
根据需求实现业务功能。通过一组Service向表现层公开功能,通过DAL(Data Access Layer)与数据层进行交互
表现层:
向用户展示数据。通常被称为客户端程序
WPF
的功能是用来编写应用程序的
表现层
扩展:
业务逻辑层
——
WCF
、
WF
;
数据访问层
——
WCF DataService
、
WCF RIA Service
3.功能结构
MVVM
模式
表示层程序一般包括以下四种功能性代码
数据模型:现实世界中事物和逻辑的抽象。
业务逻辑:数据模型之间的关系与交互。
用户界面:由控件构成的、与用户进行交互的界面,用于把数据展示给用户并响应用户的输入。
界面逻辑:控件与控制之间的关系与交互。
在WPF出现之前,Windows Forms、ASP.NET(Web Forms)等技术均使用“
事件驱动
”理念,界面逻辑和业务逻辑容易纠缠在一起,造成代码结构复杂难懂、bug难以排除。而WPF技术则是“
数据驱动
”。
事件驱动:
用户每进行一个操作用会激发程序发生一个事件,事件发生后,用于响应事件的事件处理器就会执行。事件处理器是一个方法(函数),在这个方法中,程序员可以处理数据或调用别的方法,这样,程序就在事件的驱动下向前执行了。事件驱动的数据是静态的、被动的;界面控件是主动的、界面逻辑与业务逻辑之间的桥梁是事件。
数据驱动:
当数据发生变化时,会主动通知界面控件、推动控件展示最新的数据;同时,用户对控件的操作会直接送达数据。在数据驱动理念中,数据占据主动地位、控件和控件事件被弱化(控件事件一般只参与界面逻辑,不再染指业务逻辑,使程序复杂度得到有效控制)。数据与界面之间的桥梁是数据关联(DataBinding),通过这个桥梁,数据可以流向界面,再从界面流回数据源。
在WPF中,把能够展示数据、响应用户操作的UI元素称为
控件
(Control)。控件所展示的数据称为控件的“数据内容”;控件在响应用户的操作后会执行自己的一些方法或以事件(Event)的形式通知应用程序(程序员可以决定如何处理这些事件),称为
控件的“行为”
或“算法内容”。
4.技术结构
WPF
与
Silverlight
的技术对比:
技术项目在WPF中在Silverlight中XAML语言完整完整控件完整完整布局完整完整Binding完整基本完整依赖属性完整基本完整路由事件完整简化命令完整无资源完整完整控件模板完整基本完整数据模板完整基本完整绘图完整完整2D/3D动画完整简化类比于Web前端,XAML可以看做HTML+CSS,用作用户界面的编写。业务逻辑的具体实现是通过C#编写,类比于JavaScript。另外,WPF中的技术点与
Vue
是极其相似的,可以对比学习。
个人小结
WPF是一个用来编写
表现层
的工具,使用
数据驱动
的理念,采用
MVVM
模式,UI界面与业务逻辑分离。
来源:
https://www.cnblogs.com/yexiaozhi/archive/2022/06/14/16374534.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
小小小幸运
金牌会员
这个人很懒什么都没写!
楼主热帖
收藏:再谈软件定义存储发展及现状 ...
5.2 基于ROP漏洞挖掘与利用
软件项目管理 7.4.5.进度计划编排-敏捷 ...
【.NET】控制台应用程序的各种交互玩法 ...
权限提升(1)
Ubuntu如何安装Mysql+启用远程连接[完 ...
唯一/普通索引的选择?change buffer ...
【Visual Leak Detector】QT 中 VLD 输 ...
每日算法之左旋转字符串
Django笔记三十八之发送邮件
标签云
挺好的
服务器
快速回复
返回顶部
返回列表