加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

WPF面试题

(2013-06-06 00:07:20)

目前主要在一家外资企业从事项目管理、技术架构及企业技术培训工作。由于工作和项目需要,所以对一些技术进行了较为深入的研究,之前在整个公司做过一些技术专场的培训,由于每次时间较短且人员较多的关系,没能讲得很透彻,所以挺对不住那些同事的。现在在园子里开一个博客,希望能把所学的微薄知识书写出来,以供大家参考。近期将针对这些培训专场推出OO到设计模式WCF基础到企业应用WPF基础到企业应用及优化Silverlight基础到企业应用及优化Windows Azure基础到企业应用等系列博文,由于是自己对这些技术的使用总结和心得体会,错误之处在所难免,怀着技术交流的心态,在博客园发表出来,所以希望大家能够多多指点,这样能使一部分人受益同时也能纠正我的错误观点,以便和各位共同提高!

关于WPF基础到企业应用系列——这几年给自己的感觉就是一直很忙,也不知道在忙些什么,反正生活和工作都不消停,一直说写书,但是写了两章就一直摆在那里,在写这个专题前花了点时间写了一个31 天重构学习笔记索引,感觉重新找回了那份心静的感觉,所以打算继续写一个系列文章,全当总结和技术交流。开篇之前犹豫了很久:1,面对自己喜欢的这么多技术,不知道先写哪一个系列为好(OO与设计模式、WCFWPFSilverlight.NET多线程编程、LinQAOPIOC.net项目中综合应用、ASP.NET MVCWindows Azure等),最后打算先写WPF,然后再Silverlight,进而写其他的系列。毕竟WPF照现在的这种趋势发展,迟早会在C/S应用程序中独占鳌头。Silverlight也必将在企业级开发当中逐渐应用起来。2,WPF2007开始接触以来,使用比较多,也相对比较熟悉,况且作为WPF子集的Silverlight,讲了WPFSilverlight就相对简单了。3,主要是考虑怕自己书写的文章不能教导于人,反而误导他人。所以怀着对这些问题的考虑,我一定会尽心尽力的写好每一篇文章,不负大家所望!

2.内容提纲

· 1.开篇前言

· 2.内容提纲

· 3.系列安排

· 4.开发工具

· 5.参考资料

· 6.面试问题

· 7.关于前景

· 8.效果展示

· 9.本文总结

3.系列安排

· 1. 开篇有益

· 2. WPF基础(历史、版本、结构、框架)

· 3. WPF介绍 、用WinFormWPF实现同一个例子的案例。

· 4. Applicationwindow、多线程、XAML、逻辑树与可视树及内容模型

· 5. 使用面板做布局(几种布局控件的XAMLCS代码,综合布局等)

· 6. 依赖属性、附加属性(基本、继承、元数据)

· 7. 路由事件、附加事件

· 8. 命令

· 9. WPF控件分类介绍与使用技巧(ContentControlHeaderedContentControl…… Decorator

· 10. 尺寸缩放、定位与变换元素

· 11. 资源

· 12. 数据绑定(基本、值转换、验证、集合的筛选、排序、分组、主从、数据提供者)

· 13. 样式

· 14. 模板

· 15. 多语言、皮肤和主题

· 16. 2D图形

· 17. 3D图形

· 18. 动画(几种动画的应用)

· 19. 音频、视频、语音

· 20. 文档、打印、报表

· 21. 用户控件和自定义控件

· 22. Win32Windows 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新功能

 

4.参考资料

      提到参考资料,大家第一感觉就是MSDN,当然我也不例外,这个网站基本上是学习微软技术的首选站点,除了这个网站以外,我还参考了很多其他的社区和网站,基本上都在.NET 技术社区之我见(英文篇)做了介绍,比如CodeProjectCodePlex windowsclientC# Corner等,除了这些网站还有一些国外技术专家blog

1.       Programming Windows Presentation Foundation

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&s=books

这本书出得很早,在学WPF之初就是这本书和MSDN作为教材,优点:书中讲解的语言浅显易懂并且讲解的顺序和思路也很清晰,内容也是面面俱到,例子也举得很恰当。缺点是讲得很简单,稍偏向于入门书籍;书中的理论和例子都是针对于WPF的测试版,所以和正式的版本有一些出入,你会发现从书中拷贝下来的例子在程序中不能运行,这个你也不要见怪,只要能明白原理就行。

2.       Windows Presentation Foundation Unleashed (WPF) (Unleashed)

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&s=books

这本书是WPF正式版出来以后出版的,所以和上一本比起来就有很大的优势,并且讲的内容也比上一本详细,所以在很长一段时间,除了MSDN,它就成了很权威的教材。在阅读的时候虽然没有Programming Windows Presentation Foundation那么轻松,但同时这里面的例子会给你带来很强的成就感。

这本书是Adam Nathan写的,AdamWPF Team的核心成员,也是WPF的专家。

3.       Applications Code Markup: Guide to the Microsoft Windows Presentation Foundation

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&s=books

WPF官方网站(http://wpf.netfx3.com)上推荐的书。

这本书是Charles Petzold写的,也是WPF的专家。所以里面有很多的技术内幕和使用技巧都值得我们学习和操练,但我一直没有坚持看完,原因很简单,这本书不太适合入门,所以当时就没有选择这一本书,到学会了WPF以后,又经常关顾于国外的各大社区和论坛,上面很多内容可以解除你对WPF学习和使用中的疑问,所以它就一直搁置到了一边,直到写这个系列之前才翻完大半。

4WPF4是大家都期待的,因为前面几个版本存在着一些问题,如性能优化不上去、某些特性不支持等原因。那么WPF4的公布,让很多人都比较欣喜,如下第一排3本就是针对WPF4VS2010)的,所以有兴趣的同仁也可以去找相关的资源。

当然国内也有一些书籍可以参考,如微软经典红皮书对WPF的讲解可以作为入门学习,还有WPF揭秘,虽说有一些翻译上的小错误,但是整体还是可以的。

 

6.面试问题

     关于面试这个问题,每个公司都会有自己的面试要求,尤其是美国和印度对WPF的重视程度,让WPF的应用逐渐变得广泛。面试题目也变得多了起来,之前承担了一些WPF的面试工作,所以收集、整理和写了一些面试题目,以供大家参考,由于是自己对这方面的一些看法,所以有错误的地方也请大家见谅,对每个面试者,我觉得都要以尊敬的态度,不管技术如何,不管学历如何,人都有他擅长的一方面。同时你的理解和他的理解可能各有千秋,也不要把某些观点强加于人而傲视别人。所以我觉不管是面试者或者是被面试者,都要怀着谦虚和尊敬别人的态度。

初级工程师

 较强.NET 2.0 基础知识愿意学习新技术

 解释什么是依赖属性,它和以前的属性有什么不同?为什么在WPF会使用它?

Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能,这些服务通常统称为 WPF 属性系统。由 WPF 属性系统支持的属性称为依赖项属性。

 什么是样式(Style)?

 什么是模板(template?

 绑定(Binding )的基础用法

 解释这几个类的作用及关系Visual, UIElement, FrameworkElement, Control

 视觉树vs 逻辑树?

 属性变更通知(INotifyPropertyChange ObservableCollection)

 ResourceDictionary

 UserControls

 事件的三种方式(冒泡、直接、隧道)

中级工程师

 Routed Events(路由事件) Commands (命令)

 绑定详解(包括绑定到单一属性、实体、集合、值转换、触发机制、验证等)

 怎样布局一个漂亮的UI(你们以前的项目是怎么做的?)

 WPF和之前的技术交互(WPF/WinForms)

 animations storyboarding

 ClickOnce 部署(优点和缺点)或者是自己通过微软setup/InstallShield+自己的自动更新组件。

 样式、主题和触发器

 自定义控件

 怎样才能工作线程更新UI

高级工程师

 什么是attached behavior(附加行为或者附加事件)?

 PRISM,CAL CAG等等框架,是否使用过?你们是怎么用的?没有使用的话,解释一下自己的开发模式和框架。

 怎样才能工作线程更新UI

 WPF 3D和动画的应用(是否使用过?用过哪些?)。

 SilverlightWPF的异同。

 怎么开发自定义控件?可以简单介绍一下自己开发的控件。

 你之前的WPF项目开发流程是怎样的?

 三种开发模式(MVVM/MVP/MVC)的理解。

 WPF的性能调整(你是怎么优化WPF性能的?)

 聊聊你做WPF的一些经验和体会。

7.关于前景

  关于WPF的前景,我不想做过多的介绍,有很多人已经对这方面做了很深入的研究,那么我们就可以做一下简单的总结:

由于WPF带来了很多优秀的功能和特性:

       1.超强的用户体验;
       2.简单便捷的部署方式(易于更新升级);
       3.更简便的编程方式。
       4,实现绚丽效果比较简单。 

所以在以下几个方面得到了很广泛的应用:

 1.企业应用系统(主要做一些管理系统,国内已经很多公司在使用了);
 2.一些Silverlight目前很难达到的效果同时又要求能从网络浏览到(如Asahiyama Zoo (日本北海道旭山动物园))
 3.桌面应用程序(如雅虎推出即时通讯软件和QQ等)。
 4,一些对效果要强较高应用的产品 

      WPF正因为有那么多优秀的特性和功能并且微软一直在这方面努力,我们相信它一定会带来一场C/S用户程序的革命。对这个应用,我也曾专门了解过,在国内现在很多公司都在对WinForm进行升级到WPF,在国外如美国和印度等国家,对WPF的使用也逐渐普遍起来。上周公司首席科学家请客到新加坡一家六星级酒店吃饭,我以项目组附带的形式很荣幸也被邀请,旁边刚好是一个印度的Architect,我也顺便问了他们国家对Windows azureWPFSilverlight等技术的应用,发现他们国家对这些技术应用得很早并且也形成了自己的一些成熟体系。最近公司做的项目有很多以色列人来演示他们做的智能系统(UIWPF实现,智能扑捉用摄像头,这样人站在电视机前面就可以用自己的身体玩很多体验,比如你可以真实体验三维游戏、你可以用你的身体直接做很多网络里的事情),他们比我们现在做的系统(我们的系统是用WPFUI,然后在电视上通过蓝牙和遥控器实现点播网络视频、游戏和新闻等)高级很多,同时也让我们看到他们对这方面的研发能力。所以相信WPF一定可以逐渐流行起来,就让我们拭目以待。

0

阅读 收藏 喜欢 打印举报/Report
后一篇:WCF面试题
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有