天天看点

WPF 基础到企业应用系列1——开篇有益

· 1.开篇前言 · 2.内容提纲 · 3.系列安排 · 4.开发工具 · 5.参考资料 · 6.面试问题 · 7.关于前景 · 8.效果展示 · 9.本文总结
· 1. 开篇有益 · 2. WPF基础(历史、版本、结构、框架) · 3. WPF介绍 、用WinForm和WPF实现同一个例子的案例。 · 4. Application、window、多线程、XAML、逻辑树与可视树及内容模型 · 5. 使用面板做布局(几种布局控件的XAML及CS代码,综合布局等) · 6. 依赖属性、附加属性(基本、继承、元数据) · 7. 路由事件、附加事件 · 8. 命令 · 9. WPF控件分类介绍与使用技巧(ContentControl、HeaderedContentControl…… Decorator) · 10. 尺寸缩放、定位与变换元素 · 11. 资源 · 12. 数据绑定(基本、值转换、验证、集合的筛选、排序、分组、主从、数据提供者) · 13. 样式 · 14. 模板 · 15. 多语言、皮肤和主题 · 16. 2D图形 · 17. 3D图形 · 18. 动画(几种动画的应用) · 19. 音频、视频、语音 · 20. 文档、打印、报表 · 21. 用户控件和自定义控件 · 22. Win32、Windows Form以及ActiveX之间的互用性 · 23. 构建并部署应用程序(ClickOnce部署、微软setup /InstallShield+自动更新组件) · 24. WPF的模式讲解及实例(MVC Demo) · 25. WPF的模式讲解及实例(MVP Demo) · 26. WPF的模式讲解及实例(MVVM Demo) · 27. 性能优化(WPF项目的瓶颈) · 28.一个完整WPF项目(普通架构版) · 39. 一个完整WPF项目(MVVM架构版) · 30. WPF 4.0新功能
1.       Programming Windows Presentation Foundation <a href="http://www.amazon.com/Programming-Windows-Presentation-Foundation-Chris/dp/0596101139/sr=8-2/qid=1164814449/ref=pd_bbs_2/104-6804148-3392750?ie=UTF8&amp;s=books">http://www.amazon.com/Programming-Windows-Presentation-Foundation-Chris/dp/0596101139/sr=8-2/qid=1164814449/ref=pd_bbs_2/104-6804148-3392750?ie=UTF8&amp;s=books</a> 这本书出得很早,在学WPF之初就是这本书和MSDN作为教材,优点:书中讲解的语言浅显易懂并且讲解的顺序和思路也很清晰,内容也是面面俱到,例 子也举得很恰当。缺点是讲得很简单,稍偏向于入门书籍;书中的理论和例子都是针对于WPF的测试版,所以和正式的版本有一些出入,你会发现从书中拷贝下来 的例子在程序中不能运行,这个你也不要见怪,只要能明白原理就行。 2.       Windows Presentation Foundation Unleashed (WPF) (Unleashed) <a href="http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/sr=8-5/qid=1164814449/ref=pd_bbs_sr_5/104-6804148-3392750?ie=UTF8&amp;s=books">http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/sr=8-5/qid=1164814449/ref=pd_bbs_sr_5/104-6804148-3392750?ie=UTF8&amp;s=books</a> 这本书是WPF正式版出来以后出版的,所以和上一本比起来就有很大的优势,并且讲的内容也比上一本详细,所以在很长一段时间,除了MSDN,它就成 了很权威的教材。在阅读的时候虽然没有Programming Windows Presentation Foundation那么轻松,但同时这里面的例子会给你带来很强的成就感。 3.       Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation <a href="http://www.amazon.com/Applications-Code-Markup-Presentation-Foundation/dp/0735619573/sr=8-1/qid=1164814449/ref=pd_bbs_1/104-6804148-3392750?ie=UTF8&amp;s=books">http://www.amazon.com/Applications-Code-Markup-Presentation-Foundation/dp/0735619573/sr=8-1/qid=1164814449/ref=pd_bbs_1/104-6804148-3392750?ie=UTF8&amp;s=books</a> 这本书是Adam Nathan写的,Adam是WPF Team的核心成员,也是WPF的专家,所以里面有很多的技术内幕和使用技巧都值得我们学习和操练,但我一直没有坚持看完,原因很简单,这本书不太适合入 门,所以当时就没有选择这一本书,到学会了WPF以后,又经常关顾于国外的各大社区和论坛,上面很多内容可以解除你对WPF学习和使用中的疑问,所以它就 一直搁置到了一边,直到写这个系列之前才翻完大半。 4,WPF4是大家都期待的,因为前面几个版本存在着一些问题,如性能优化不上去、某些特性不支持等原因。那么WPF4的公布,让很多人都比较欣 喜,如下第一排3本就是针对WPF4(VS2010)的,所以有兴趣的同仁也可以去找相关的资源。 <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0023.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0043.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0063.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0083.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0103.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0123.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image01411.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/image5.png"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/image6.png"></a> 当然国内也有一些书籍可以参考,如微软经典红皮书对WPF的讲解可以作为入门学习,还有WPF揭秘,虽说有一些翻译上的小错误,但是整体还是可以 的。
<b>大部分的应用程序都会使用如下配置和工具开发:</b> CPU:2.40GHz  内存2G 操作系统:Windows XP+SP3英文版 开发工具:Visual Studio 2008+SP1英文版 Expression Design 3 Expression Blend 3 Expression Encoder 3 <b>由于最近用上了一台新机器,也可能会使用它做某些开发:</b> CPU:i7四核 2.8GHz    内存:4G   硬盘:1T       显卡:GTX260 高清2G     显示器:24高清 操作系统:Windows 7  Professional 开发工具:Visual Studio 2010 Expression Design 4 Expression Blend 4 Expression Encoder 4
     关于面试这个问题,每个公司都会有自己的面试要求,尤其是美国和印度对WPF的重视程度,让WPF的应用逐渐变得广泛。面试题目也变得多了起来,之前承担 了一些WPF的面试工作,所以收集、整理和写了一些面试题目,以供大家参考,由于是自己对这方面的一些看法,所以有错误的地方也请大家见谅,对每个面试 者,我觉得都要以尊敬的态度,不管技术如何,不管学历如何,人都有他擅长的一方面。同时你的理解和他的理解可能各有千秋,也不要把某些观点强加于人而傲视 别人。所以我觉不管是面试者或者是被面试者,都要怀着谦虚和尊敬别人的态度。 <b>初级工程师</b> 较强.NET 2.0 基础知识&amp; 愿意学习新技术 解释什么是依赖属性,它和以前的属性有什么不同?为什么在WPF会使用它? 什么是样式(Style)? 什么是模板(template)? 绑定(Binding )的基础用法 解释这几个类的作用及关系: Visual, UIElement, FrameworkElement, Control 视觉树vs 逻辑树? 属性变更通知(INotifyPropertyChange 和ObservableCollection) ResourceDictionary UserControls 事件的三种方式(冒泡、直接、隧道) <b>中级工程师</b> Routed Events(路由事件) &amp; Commands (命令) 绑定详解(包括绑定到单一属性、实体、集合、值转换、触发机制、验证等) 怎样布局一个漂亮的UI(你们以前的项目是怎么做的?) WPF和之前的技术交互(WPF/WinForms) animations 、storyboarding ClickOnce 部署(优点和缺点)或者是自己通过微软setup/InstallShield+自己的自动更新组件。 样式、主题和触发器 自定义控件 怎样才能工作线程更新UI? <b>高级工程师</b> 什么是attached behavior(附加行为或者附加事件)? PRISM,CAL &amp; CAG等等框架,是否使用过?你们是怎么用的?没有使用的话,解释一下自己的开发模式和框架。 WPF 3D和动画的应用(是否使用过?用过哪些?)。 Silverlight和WPF的异同。 怎么开发自定义控件?可以简单介绍一下自己开发的控件。 你之前的WPF项目开发流程是怎样的? 三种开发模式(MVVM/MVP/MVC)的理解。 WPF的性能调整(你是怎么优化WPF性能的?) 聊聊你做WPF的一些经验和体会。
  关于WPF的前景,我不想做过多的介绍,有很多人已经对这方面做了很深入的研究,那么我们就可以做一下简单的总结: 由于WPF带来了很多优秀的功能和特性:        1.超强的用户体验;        2.简单便捷的部署方式(易于更新升级);         3.更简便的编程方式。        4,实现绚丽效果比较简单。 所以在以下几个方面得到了很广泛的应用:  1.企业应用系统(主要做一些管理系统,国内已经很多公司在使用了);  2.一些Silverlight目前很难达到的效果同时又要求能从网络 浏览到(如Asahiyama Zoo (日本北海道旭山动物园))  3.桌面应用程序(如雅虎推出即时通讯软件和QQ等)。  4,一些 对效果要强较高应用的产品       WPF正因为有那么多优秀的特性和功能并且微软一直在这方面努力,我们相信它一定会带来一场C/S用户程序的革命。对这个应用,我也曾专门了解过,在国内 现在很多公司都在对WinForm进行升级到WPF,在国外如美国和印度等国家,对WPF的使用也逐渐普遍起来。上周公司首席科学家请客到新加坡一家六星 级酒店吃饭,我以项目组附带的形式很荣幸也被邀请,旁边刚好是一个印度的Architect,我也顺便问了他们国家对Windows azure、WPF和Silverlight等技术的应用,发现他们国家对这些技术应用得很早并且也形成了自己的一些成熟体系。最近公司做的项目有很多以 色列人来演示他们做的智能系统(UI用WPF实现,智能扑捉用摄像头,这样人站在电视机前面就可以用自己的身体玩很多体验,比如你可以真实体验三维游戏、 你可以用你的身体直接做很多网络里的事情),他们比我们现在做的系统(我们的系统是用WPF做UI,然后在电视上通过蓝牙和遥控器实现点播网络视频、游戏 和新闻等)高级很多,同时也让我们看到他们对这方面的研发能力。所以相信WPF一定可以逐渐流行起来,就让我们拭目以待。 
      上面谈了这么多WPF的东西,有些没有接触过WPF的同仁也许会问:WPF到底能实现什么样的效果?WPF在哪些公司用到过?WPF究竟能不能应用于企业 开发,那么我这里就简单收集了一些WPF的一些效果图和一些商业运用产品截图,希望大家看到以后,能对WPF有一个全面的了解。 <b>WPF部分例子的效果图:</b> <a></a> <b>WPF企业使用案例(部分案例介绍来自网络):</b> AMD Live  : AMD为提升PC用户数字娱乐体验的新平台,一个结构化、可视化的在线照片、音乐、视频的播放软件  从这个界面 来看真的是非常强大,娱乐性已经与苹果系统几乎无异。  <a href="http://www.softshome.com/uploads/userup/0809/0122024V123.jpg"></a> Chosun Daily iReader :基于WPF技术做的朝鲜日报阅读器,可以看到高保真影像。  Entellium Rave:中小企业CRM提供商 Entellium  专供中小企业使用的 CRM系统,漂亮的界面与复杂内容的结合,逻辑层与表现层的分离使得这种平衡得以实现。 WPF概念版QQ <b> </b> <b></b> Yahoo:雅虎推出即时通讯软件 功能很强大并且还可以实现很多自定义操作。 Asahiyama Zoo (日本北海道旭山动物园)。  是微软和日本北海道旭山动物园共同制作的动物园虚拟体验工具,你可以 通过它对动物园进行虚拟体验,实现了很好的效果。
本文转自KnightsWarrior51CTO博客,原文链接: http://blog.51cto.com/knightswarrior/343871  ,如需转载请自行联系原作者

继续阅读