WPF学习笔记——没有前途的WPF
看上去,WPF比silverlight有前途一点。毕竟,微软还没有宣布,WPF停止更新。
但我怀疑,不久的将来,WPF也会步其子集silverlight的后尘,要么不再出后续版本,要么向HTML5 + CSS3转型。
WPF主要负责UI。虽然只要我们愿意,也可以像WINFORM那样,做出很强的逻辑处理程序,但其本意,只在于负责界面工作,有逻辑处理,也是跟界面有关。写WPF程序,一般会倾向于遵循MVVM模式吧。
这种思想挺不错,问题在于,WPF自己搞了一套界面定义语言:XAML。
多么复杂的一套东西!为了呈现一些样式,图片,又模板,又资源,层层嵌套,代码冗长得无以复加。我以前一直从事WEB开发,自问对HTML 、 CSS 都比较熟悉,按理看WPF的Style之类,不会觉得太困难,但事实上,那么多的代码,我头都大了。
为什么要这么做呢?进入互联网时代那么久了,WEB前端处理的界面是如此绚烂多彩,数以万计的程序员对CSS都是那样的了解,又何必另起炉灶,独辟蹊径,再搞一套什么XAML!可能当年WPF出来时,HTML5 和 CSS3 还没有出来,但HTML 和 CSS的确早已成为业界标准,人人耳熟能详,那么出个CSS + HTML的加强版不就行啦。
微软可能自大惯了,总以为自己能创立业界标准,搞了许多昙花一现的短命产品,苦了我们这批跟着微软屁股后面跑的微软系程序员,整天学着用这工具、用那工具,时间都浪费在这里,反而编程思想,真正有用的知识没有学到。
看看伟大的谷歌,人家搞个开发语言,要么是JAVA语法的安卓,要么是javascript的node.js,根本不需要去再学什么语法,下下紧扣互联网,智能手机,反观微软,给人的印象,还拼命停留在PC时代。
所以,现在因为工作需要,不得不用WPF,但我会注意学习MVVM的思想,而不会深究其界面的铺陈,能用就行。这是一种没有前途的语言。
WPF学习笔记——没有前途的WPF的更多相关文章
- WPF学习笔记-用Expression Design制作矢量图然后导出为XAML
WPF学习笔记-用Expression Design制作矢量图然后导出为XAML 第一次用Windows live writer写东西,感觉不错,哈哈~~ 1.在白纸上完全凭感觉,想象来画图难度很大, ...
- WPF 学习笔记-在WPF下创建托盘图标
原文:WPF 学习笔记-在WPF下创建托盘图标 首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Co ...
- WPF 学习笔记-设置属性使窗口不可改变大小
原文:WPF 学习笔记-设置属性使窗口不可改变大小 调整Windows下的ResizeMode属性: ResizeMode = NoResize Resize属性是控制Windows是否可以改变大小, ...
- WPF学习笔记(8):DataGrid单元格数字为空时避免验证问题的解决
原文:WPF学习笔记(8):DataGrid单元格数字为空时避免验证问题的解决 如下图,在凭证编辑窗体中,有的单元格不需要数字,但如果录入数字后再删除,会触发数字验证,单元格显示红色框线,导致不能执行 ...
- 【WPF学习笔记】之如何把数据库里的值读取出来然后显示在页面上:动画系列之(六)(评论处有学习资料及源码)
(应博友们的需要,在文章评论处有源码链接地址,以及WPF学习资料.工具等,希望对大家有所帮助) ...... 承接系列五 上一节讲了,已经把数据保存到数据库并且删除数据,本讲是把已经存在的数据从数据库 ...
- WPF学习笔记——依赖属性(Dependency Property)
1.什么是依赖属性 依赖属性是一种可以自己没有值,并且通过Binding从数据源获得值(依赖在别人身上)的属性,拥有依赖属性的对象被称为"依赖对象". 依赖项属性通过调用 Regi ...
- WPF 学习笔记(一)
一.概述 WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,随着.NET Framework 3.0发布第一个版本.它提供了统一的 ...
- WPF学习笔记1---初接触
刚刚接触WPF,微软的一套东西.WPF最大的特点就是UI设计与代码逻辑的完全剥离.这样美工和程序员的分工就变得非常清楚.因为界面和程序的耦合度很低,也增加的代码的灵活性和可重用性. 微软为WPF的UI ...
- WPF学习笔记1——XAML之1
参考文献: http://msdn.microsoft.com/zh-cn/library/ms752059(v=vs.110).aspx <Pro WPF 4.5 in C# > 一.X ...
随机推荐
- Python随笔-字符串
函数title.lower.upper. ct = "hello WORLD" print(ct.title()) #title 以首字母大写的方式显示每个单词 print(ct. ...
- Android Studio查看CPU使用率。
进入AS自带的CMD,依次输入: (1)进入Android Atudio安卓的目录: 1.H: 2.cd AndroidStudio\sdk\platform-tools (2)adb shell ( ...
- 关闭掉eclipse启动的自动更新功能(提高打开eclipse的速度)
- C#——设置开机启动
将exe应用程序设置为开机启动,有多种方法,我们主要通过注册表设置开机启动选项. using Microsoft.Win32; using System.Windows.Forms; static v ...
- eclipse安装python开发pydev插件
eclipse安装python开发pydev插件 下载eclipse的python开发插件pydev http://pan.baidu.com/s/1qXHt8pI 下载python.exe,并安装. ...
- 在Windows下安装Elasticsearch5.0
1.准备工作 安装和配置Java环境 2.下载 地址:https://www.elastic.co/downloads/elasticsearch 老版本:https://www.elastic.co ...
- 打造最强NGINX HTTPS
SSL LABS 检测 完整配置如下 server { listen 443 ssl; server_name xxx.xxxke.com; ssl on; ssl_certificate /xxx/ ...
- C# 时间对比
public bool IfTime(string StartTime, string EndTime) { DateTime dt1 = Convert.ToDateTime(StartTime); ...
- spark的体系结构
spark的体系结构 1.客户端(Driver Program) 需要构建一个对象,核心是sc(SparkContext) 以应用程序为例:链接本地 //new conf val conf=new S ...
- Navicat 连接docker mysql报错
解决办法: docker exec -it dc10e8b328d7 bashmysql -u root -p 输入密码 use mysql; ALTER USER 'root'@'%' IDENTI ...