WPF 零基础入门笔记(0):WPF简介

文章目录

  • WPF的出生
  • WPF的发展情况
  • WPF的现状
    • 前端框架现状
    • 结论
  • 如何学习WPF
    • WPF学习资源推荐
    • WPF学习路线推荐

WPF的出生

WPF是2010年推出的程序框架,目的是为了解决Winfrom界面不好看的问题。Winfrom是拖动式界面布局,简单来说就是界面根本动不了,内容一多只能加窗口。WPF是MVVM的祖师爷。什么是MVVM?MVVM又称数据驱动事务,特点是

  • 页面元素和部分代码双向绑定,比如我一个输入框绑定一个字符串,这个字符串变了,界面的元素一定会变,界面元素变了,代码中的字符串的值也会改变
  • 数据驱动事件。就是我的数据改变这个行为是可以驱动事件的。比如我用户状态,登录,离线,忙碌,就会触发不同的事件

其实你会发现微软真的是一个技术很超前的公司,他们的想法就是我尽量只让你考虑业务方面的工作,我给你个解决方案,你照着我的框架走就行了。比如ORM框架,C#的高级语法,真的很厉害。

WPF的发展情况

由于微软发展技术的特点,开坑狂魔,断代更新。微软推出一个技术后,就基本不会更新了,直接从头发展一个新技术。优点是不会被以前的框架所限制,不用考虑向前兼容的问题。缺点就是程序员要一直学新技术,学习成本高。所以微软的新技术出来大家都在观望,等个3~5年,确定没啥问题了,配套的生态和组件跟上了,才考虑使用。

WPF微软方面已经停更了,但是第三方库方面还在更新。

我个人的结论是,Windows桌面端,WPF是最优,最通用的解决方案

WPF的现状

我们来看一下大前端的情况,即web端,Windows端,移动端,Linux端

简单来说各个前端的市场情况。

桌面端

桌面端和网页端的问题:我能用网页解决的,我为什么要下载个软件?比如画流程图,观看视频,网盘,后台管理,直播平台。

移动端就反过来了。我就是流氓,你不下我的APP软件,我就不给你用。我就要占你手机空间。你弄个微信小程序也行啊,功能又不多,偏偏要整个App。比如各种银行APP,运营商APP。

真是个轮回啊,电脑端就偷懒,能整个网页凑合用就行。手机端就折腾,偏要下个App。

前端框架现状

平台 优点 缺点 适用范围
Vue/React web 有极其丰富的生态配套,从Ui到性能 网页端的权限问题,不能提高权限,例如文件保存,文件管理等 理论上最简单的跨端方案,只要能打开网页就能使用
uniapp/react native/flutter 全平台(除桌面端) 通过将代码翻译到对应平台的方法,实现了跨全平台 性能差点,不过够用,因为是已经推出很久的框架,各自的生态都比较丰富 会web前端的去开发移动端
WPF/Winform Windows桌面端 相比来说性能最好,因为不做跨平台适配。 不能跨平台 只在Windows上运行的程序,需要较高权限的程序。
electron 桌面端 windows,mac,linux桌面 本质上就是套了个浏览器的壳运行的网页。性能差,打包文件体积大,容易出Bug 会web前端的去开发桌面软件
unity 全平台 最牛的交互体验,毕竟是用来做游戏的引擎 大炮打蚊子,不需要那么多交互 游戏,或者类似于游戏的软件
qt 全平台 最高的性能,对内存的完全掌控 大炮打蚊子,大部分软件开发能跑就行,不需要操控内存 对于及时响应速度要求极高,性能要求极高的软件

结论

行业已经给了web程序员一个最优的解决方案,可以完美的跨全平台的前端显示。一般是Vue+uniapp/React + React Native。桌面软件的市场份额已经很小了。

如何学习WPF

真正的英雄主义,就是看清生活的真相后依然热爱生活 ----罗曼罗兰

如果你认清了WPF的现状,还是想学习WPF的话,下面是资源推荐。

WPF学习资源推荐

WPF入门基础教程合集
WPF深入讲解合集
WPF-Prism8.0核心教程(公益)
WPF项目实战合集(2022终结版)

《深入浅出WPF》系列高清视频教程 | 讲师:刘铁猛
微软官方文档
WPF控件文档

WPF学习路线推荐

使用,学、练、学、练,的顺序来掌握一门技术

  • 学:WPF原生布局,原生控件,原生样式,数据绑定
  • 练:找常见的桌面软件,例如QQ,微信,网易云,有道翻译等。照着找。写静态页面+路由跳转,不写逻辑
  • 学:WPF框架:Prism。WPFUI:MaterialDesign+LiveCharts2
  • 练:自己写个小程序,比如日记本,备忘录,计算器,文件管理窗口等。

WPF MaterialDesign 初学项目实战(0):github 项目Demo运行

你可能感兴趣的:(WPF基础知识,wpf,笔记)