代码改变世界

圣殿骑士WPF企业内训资源下载

2010-12-21 03:02 by 圣殿骑士, ... 阅读, ... 评论, 收藏, 编辑

  在前面的一段时间里,我先后发布了几篇WPF企业内训全程实录的文章,由于内容涵盖面广且文章内容较多,所以花了十多个晚上的时间才完成。为了提高阅读质量,我把它拆分成了三篇:

上篇WPF企业内训全程实录(上)主要讲解历史渊源、概念引入、基本阐述以及WPF的每个知识点。

中篇WPF企业内训全程实录(中)主要围绕WPF开发模式、WPF团队协作和MVVM框架三个议题进行阐述。

下篇WPF企业内训全程实录(下)着重强调结合其他技术共同打造WPF项目、相关性能优化、以及部署与更新问题。

  之前由于没有找到合适的托管站点,所以一直没有公布资源下载地址。期间有很多朋友发邮件索取此资源,所以在这里就统一发布出来,希望对大家能起到参考和帮助作用!

一,整体概览

下面这幅图是我在半年前写的一份PPT,因为公司要求用英文表述,所以写的很简约,重点在于结合代码实例进行学习。

2010-10-21 17-08-32

  因为上面的PPT基本涵盖了WPF的所有重要知识点,所以得为每一个知识点准备相关的Demo,只有这样才能把每个知识点完全讲透,否则只能起到云里雾里、不知所云的效果。如下便是与之配套的Demo截图:

2010-10-21 16-54-49

上面的代码包中主要包括:

WPFBasic:主要讲解WPF的基础概念,涵盖了WPF的方方面面。

WPFPatterns:强调Presentation模式的重要性,主要包括MVC/MVP/MVV以及一些MVVM的框架。

WPFProject:具体项目中如何把握,如何引用之前的技术和经验。

WPFTools:一门技术都有与之相应的开发、管理、协助工具,WPF也不例外。

WPF.PPT:这里是一些简单的介绍,熟悉的可以略过。

  这些Demo主要来源于两个方面,一是自己写了一些;二是改编了网络上的一些素材;如果大家仔细看,可以发现它涵盖了WPF的方方面面,并且对重点和难点也做了区别对待。

二,细节概述

WPF的基础知识和框架相关细节,可以用以下这幅图进行简要概括:

圣殿骑士

 

1,基础概念

从2007年开始接触WPF/Silverlight以来,对学习和使用它们有自己的一些浅薄心得,所以首先让我们来看看WPF的各个基础概念:

  1. Application、Window、Navigation、Dispatcher:   这里强调一个应用程序的基本组成部分,也就是说它是每一个项目都会遇到的概念!
  2. 框架结构及类继承结构:   没有一个宏观的认识作为灯塔,是一件很危险的事情,尤其在做深入研究的时候!
  3. XAML基础: 作为WPF的主打概念,它似乎起着不可估量的作用,这也是大家接触WPF的首要概念!
  4. 布局基础:   每一个应用程序,如果没有良好的布局,似乎是一个不可想象的事情,在WPF中提供了很多布局元素,同时也提供了很多扩展点!
  5. WPF的逻辑树和视觉树:  它很有作用,但也很头痛,很多错误不得不归功于它!
  6. 依赖属性、路由事件、Binding、命令:   核心中的核心,所以我们把它列为重点讲解对象,后面分开阐述!
  7. 资源、样式、模板:  在很多程度上,它吸取了之前WEB方面的优势,这三个功能在很大程度上提高了复用,同时也规范了项目!
  8. 尺寸缩放、定位与变换元素:  由于是矢量元素,所以在做各种图形图像操作的时候就比较如鱼得水!
  9. WPF控件分类介绍与使用技巧: 微软的每一种UI相关的技术都会伴随强大的控件库,有了它们可以大大减轻开发的难度!
  10. 用户控件和自定义控件开发:    和WinForm、ASP.NET一样,开发自定义控件也很简单且类似,这里强调控件的多种分类以及区别对待!
  11. 多语言、皮肤和主题:  开发一个稍微大型的应用程序都会遇到多语言、皮肤和主题,在WPF中做这些元素也非常简单!
  12. 2D图形: WPF创建和使用2D图形主要集中在3个重要的数据类型之上——Drawing,Visual,Shape,所以需要分别进行研究!
  13. 3D图形: WPF之所以能带来绚丽且强大的3D图形功能,这得归功于DirectX 技术,并且提供的接口也非常简单,这也使大量动画应用成为可能!
  14. 动画(几种动画的应用):动画无疑是WPF中最吸引人的特色之一,因为一想到动画大家可能都会提到Flash,WPF的确也使动画变得非常简单!
  15. 音频、视频、语音: 这里强调的影音相关的功能,由于直接使用DirectX,所以较之前的技术,WPF在显示效果和质量上可谓是质的飞跃!
  16. 文档、打印、报表: 强调企业使用的一般功能,在WPF中也得到了很好的实现,这也是大量管理应用程序使用WPF的前提! 
  17. Win32、Windows Form以及ActiveX之间的互用性:这里强调与其他技术之间互用的兼容性,当然,在WPF中对这些技术提供了很好的支持!
  18. 部署及更新应用程序:和其他客户端技术一样,WPF的部署与自动更新也比较容易,除了传统的三种方法以外,还提供了XBAP的方式,不过已经逐渐被Silverlight所取代。
  19. WPF的开发模式:其他层可以保持不变,针对Presentation提供了MVC 模式、MVP模式 、MVVM 模式。
  20. 项目和性能相关:WPF在诸多方面都做得很好,除了满足其他客户端技术的功能外,也有自己的独特一面。在性能方面,只要多注意一些细节,就可以超过预期的满足企业的需求。

2,核心概念

可以看到上面的基础概念很多,但圣殿骑士认为核心概念主要有以下三点:

A,依赖属性体系

2010-10-21 17-12-08

  首先从依赖属性基本介绍讲起,然后过渡到依赖属性的优先级、附加属性、只读依赖属性、依赖属性元数据、依赖属性回调、验证及强制值、依赖属性监听、代码段 (自动生成) 等相关知识,最后我们会模拟一个WPF依赖属性的实现,来看看它里面的内部究竟是怎样处理的,这样就可以帮助我们更好的认清它的本质,出现问题的时候我们也可以根据原理快速找到原因。

B,事件体系

2010-10-21 17-13-00

  讲到WPF事件体系,我们就不得不来一场短暂旅行,由于圣殿骑士之前是从C和C++过渡到.NET和JAVA,所以对Win32程序有一些粗浅的认识,不管是Win32/C++还是MFC/C++,在窗体和事件处理上本质都是用消息(Message)来进行通信,只不过MFC对这些繁杂和通用的代码进行了一些封装,到WinForm和WPF也不例外,无疑底层还是通过这些消息在传递操作。有了 Win32->MFC->WinForm->WPF这种Message的演变之后,我们必须得认识其中的一些核心概念,比如函数指针、委托回调、委托和事件以及现在提的路由事件。由于这些知识太多,所以不进行深究,在这里我们只研究委托和事件的一些知识、委托和事件实现原理、路由事件的原理以及路由事件的使用,通过这么一来回,可能大家会对路由事件有一个比较清晰的认识,最主要的是能在项目中运用自如。

C,Binding

2010-10-21 17-14-01

  前面讲了WPF的依赖属性体系和事件体系,这里再讲第三个核心概念——Binding,WPF 绑定可以在源数据对象和UI 控件间建立联系,实现单向或双向变更通知,以此实现更好的业务逻辑和UI的分离。也正是因为Binding,才使得UI和业务逻辑的耦合隔离变得如此轻松,也正是因为Binding,我们才实现了MVVM模式,所以Binding在这个过程中起到了核心作用。同时我们也要注意到Binding的知识点非常多,所以就分成三大块来讲解。

三,资源下载

直接点击进入资源下载 WPF公司内训.rar

  另外如果有不懂的地方也可以参考之前写的WPF 基础到企业应用系列,最后声明一下,由于圣殿骑士才识浅薄,所以以上观点只是个人的看法与心得,遗漏和错误之处也敬请海涵。怀着技术分享与交流的态度分享出来,希望各位多多指教!