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


      在前面的一段时间里,我先后发布了几篇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 基础到企业应用系列,最后声明一下,由于圣殿骑士才识浅薄,所以以上观点只是个人的看法与心得,遗漏和错误之处也敬请海涵。怀着技术分享与交流的态度分享出来,希望各位多多指教!


    作者:圣殿骑士
    出处:http://www.cnblogs.com/KnightsWarrior/
    关于作者:专注于微软平台项目架构、管理和企业解决方案。自认在面向对象, 面向服务以及微服务领域有一定的造诣,熟悉设计模式、TDD、极限编程、领域驱动、架构设计、敏捷开发和项目管理。现主要从事.NET/.NET Core, Go, JavaScript/TypeScript, Azure/AWS等云计算方面的项目开发、架构、管理和企业培训工作。如有问题或建议,请多多赐教!
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:KnightsWarrior(at)msn(dot)com  微博:圣殿骑士微博  联系我,非常感谢。

  • 相关阅读:
    ZigBee学习二 LED点对点通信
    ZigBee学习一 任务处理函数_ProcessEvent
    关于count(分组字段)的问题
    hive命令行 显示字段名配置
    Linux 查看当前目录下的文件大小
    apache 端口号与 CDH端口号对比
    dbeaver驱动问题解决方案
    【数学】递推算法之平面分割问题总结
    【HDOJ】(1426)Sudoku Killer (dfs)
    【牛客】牛客小白月赛1(数学)
  • 原文地址:https://www.cnblogs.com/KnightsWarrior/p/1912244.html
Copyright © 2020-2023  润新知