面试问题:WPF开发人员

rud*_*ler 182 .net wpf

每个WPF开发人员应该知道什么?

入门级

  • 强大的.NET 2.0背景并愿意学习!
  • 解释依赖属性?
  • 什么是风格?
  • 什么是模板?
  • 捆绑
  • 基类之间的差异:Visual,UIElement,FrameworkElement,Control
  • Visual vs Logical树?
  • 财产变更通知(INotifyPropertyChange和ObservableCollection)
  • ResourceDictionary - 由a7an添加
  • UserControls - 由a7an添加
  • 泡沫和隧道路由策略之间的区别 - 由Carlo补充
  • 为什么微软推出了另一种标记语言?
  • XAML

中级

  • 路由事件和命令
  • 转换器 - 由Artur Carvalho添加
  • 解释WPF的2遍布局引擎?
  • 如何实施面板?
  • 互操作性(WPF/WinForms)
  • 混合/苹果酒 - 由a7an添加
  • 动画和故事板
  • ClickOnce部署
  • 剥皮/更换主题皮肤
  • 自定义控件
  • 工作线程如何更新UI?
  • DataTemplate与HierarchicalDataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • 不同类型的触发器

前辈

  • 附加行为的例子?
  • 什么是PRISM,CAL和CAG?
  • 工作线程如何更新UI?
  • WPF 3D - 由a7an添加
  • Silverlight 2和WPF之间的差异
  • MVVM/MVP - 由a7an添加
  • WPF性能调优
  • 像素着色器
  • Freezables的目的

还有其他"技巧"问题吗?

您希望您的WPF开发人员知道混合吗?

Mar*_*ath 41

我很惊讶没有人提到过XAML的基本知识.了解XAML是什么,以及使用XAML而不是图形设计工具进行基本编辑的能力.中级开发人员应该能够使用像XAMLPad这样的工具来打造表单/图形原型.


Col*_*kay 34

就个人而言,我会让他们坐在标准的开发者构建机器前面,并要求他们完成一些任务.没问题,只需看几个小时后他们的代码是什么样的(或者如果任务更长,则更多).

根据实际现实生活规划测试的结果,我在制定招聘决策方面的失败率为零.

任务不一定太难.我过去使用过日期应用程序的简单消息,消息保存在数据库或XML文件和简单的用户界面中.确保你要求他们好好地构建它(因为任务足够小,如果它们感到倾斜,它们都可以在一个班级完成).

在上面的问题中,我会说你无法确定它们是否真的有任何好处.一个潜在的候选人实际上只是阅读这些并创造听起来很棒的罐头答案.所有这些表明候选人可以说话,但工作本身的重要性在于他们是否可以走路.

  • 我完全同意,让人们做的事情,而不只是谈论它.@Colin,在你的拼写帮助(自我诊断应用程序问题)后,我只需要向4位数领域投票.顺便说一句,那里有一种类型:doen而不是done.:) (4认同)

Rob*_*sen 23

我将绑定和转换器放在入门级,因为这是你在WPF上花费大量时间的方式.


aku*_*aku 19

在我看来,相当不错的清单.
但是我不会在面试时提出棘手的问题.面试给自己足够的压力,技巧问题甚至可以混淆高技能人才.

  • 我同意......采访的目的是评估......不要惹恼他们. (9认同)

Rob*_*Rob 15

就个人而言,我会在入门级下放置"工作线程如何更新UI".中级,如果你真的需要.如果入门级程序员可以理解逻辑树和可视树之间的区别,他们应该了解如何从后台线程更新UI.

在我的组织中,我们在没有Blend的情况下进行了大量的WPF开发.我不是特别喜欢Blend,所以我有点偏颇,但我认为Blend技能应该是一个很好的选择.


exc*_*lsr 9

WPF开发人员应该牢牢把握XAML与代码隐藏的分离,并能够详细讨论该行的绘制位置.

能够以她选择的语言设置模型,然后使用XAML通过数据绑定,数据模板,控件模板,样式,触发器,值转换器和UserControls显示该模型的视图是中期的一个相当基本的任务级程序员.(虽然如果要求某人"从心里创建类似控制模板的东西",应该给予少量余地.)

实际上,WPF中有很多内容,如果不是MSDN论坛和关于这个主题的深入书籍,那么"只需要选择它"就是完全的任务.出于这个原因,我会将坚持不懈和从别人那里学习的能力作为任何级别的最高要求.

对于入门级WPF程序员,我不希望任何WPF本身的知识,但我需要知识面向对象的原则,UI与业务逻辑的分离,以及与类似事件模型的舒适性.以类似于WPF(使用DockPanel容器等)的样式布置UI元素的经验是一个优点.

编辑:此外,科林麦凯说.


Nil*_*ils 8

GUI编程/图形体验和cs知识怎么样?如果是全职工作,恕我直言,如果这个家伙必须花费前几个月学习WPF,如果他(或她)有强大的背景,那也没关系.


Ala*_* Le 7

入门级

  • 财产变更通知(INotifyPropertyChange和ObservableCollection)
  • 资源字典
  • 用户控件

中级

  • 混合/苹果酒
  • 动画和故事板
  • ClickOnce部署

前辈

  • WPF 3D
  • Silverlight 2和WPF之间的差异
  • MVVM/MVP
  • WPF性能调优
  • 像素着色器


rca*_*abr 7

  • 线程和调度程序之间的关系是什么?
  • Freezables的目的是什么?
  • 属性和依赖属性之间有什么区别?为什么要使用其中一个?


Art*_*lho 5

  • 转换器(简单和多个).
  • 互操作性.

我想我更喜欢一个知道Blend的开发者.他/她可以与设计师轻松交流,也可以比在xaml中写作更快地完成一些基本的设计师工作.

列表很有趣,也许链接到主题会有所帮助.

干杯