首页 文章

面试问题:WPF开发者[关闭]

提问于
浏览
180

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

Entry Level

  • 强大的.NET 2.0背景并愿意学习!

  • 解释依赖属性?

  • 什么是风格?

  • 什么是模板?

  • 绑定

  • 基类之间的差异:Visual,UIElement,FrameworkElement,Control

  • Visual vs Logical树?

  • 属性变更通知(INotifyPropertyChange和ObservableCollection)

  • ResourceDictionary - 由a7an添加

  • UserControls - 由a7an添加
    泡沫和隧道路由策略之间存在差异 - 由Carlo添加

  • 为什么微软推出了另一种标记语言?

  • XAML

Mid-level

  • 路由事件和命令

  • 转换器 - 由Artur Carvalho添加

  • 解释WPF的2遍布局引擎?

  • 如何实施面板?

  • 互操作性(WPF / WinForms)

  • Blend / Cider - 由a7an添加

  • 动画和故事板

  • ClickOnce Deployment

  • 剥皮/主题

  • 自定义控件

  • 工作线程如何更新UI?

  • DataTemplate与HierarchicalDataTemplate

  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter

  • 不同类型的触发器

Senior

  • 附加行为的例子?

  • 什么是PRISM,CAL&CAG?

  • 工作线程如何更新UI?

  • WPF 3D - 由a7an添加

  • Silverlight 2和WPF之间的差异

  • MVVM / MVP - 由a7an添加

  • WPF性能调优

  • 像素着色器

  • Freezables的目的

还有其他任何“技巧”问题吗?

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

20 回答

  • 9

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

  • 32

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

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

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

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

  • 4

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

  • 1

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

  • 3

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

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

  • 1

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

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

    真的,在WPF中有很多,如果它不是't for the MSDN forums and in-depth books on the subject, it'那么"just pick it up."由于这个原因,我会将毅力和从别人那里学习的能力作为任何级别的最高要求 .

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

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

  • 1

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

  • 8

    Entry Level

    • 属性更改NOtification(INotifyPropertyChange和ObservableCollection)

    • ResourceDictionary

    • UserControls

    Mid Level

    • Blend / Cider

    • 动画和故事板

    • ClickOnce部署

    Senior

    • WPF 3D

    • Silverlight 2和WPF之间的差异

    • MVVM / MVP

    • WPF性能调优

    • 像素着色器

  • 6
    • 线程和Dispatchers之间有什么关系?

    • Freezables的目的是什么?

    • 属性和依赖属性之间有什么区别?为什么要使用其中一个?

  • 1
    • 转换器(简单和多个) .

    • 互操作性 .

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

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

    干杯

  • 5

    另一个非常基本的事情是泡沫和隧道路由策略之间的区别 .

  • 7

    入门级

    • UX设计知识

    • 业务对象的声明性绑定中的知识

    • 命令用法

    前辈

    • 资源优化和性能调优

    • 模块化和可扩展性

    • 异步编程模型

  • 17

    中级或高级:WinForms和WPF InterOp .

  • 1

    中年或高级

    • 剥皮/主题

    • 自定义控件

  • 15

    我认为WPF应用程序的生命周期 - 从创建到运行时应该包含在初级问题中 . 不知道它,很难相信一个是真正的WPF开发者 .

  • 2

    我一般会使用WPF部署扩展ClickOnce部署,因为了解每个模型的限制和特性(ClickOnce,XBAP,仅限浏览器)是很好的 . 把它放在中等水平似乎是公平的 .

  • 1
    • DataTemplate与HierarchicalDataTemplate

    • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter

    • 不同类型的触发器

    • 如何通过StoryBoards进行动画制作

  • 2

    样式提供了一种机制,您可以在应用程序中应用主题,并在您希望的特定实例中覆盖该主题 . 样式定义为资源;实际上,它们是在XAML文件的同一部分中定义的,其中定义了资源 .

  • 39

    放入数据模板选择器:http://www.switchonthecode.com/tutorials/wpf-tutorial-how-to-use-a-datatemplateselector很好的帮助MVVM根据值交换模板 .

  • 22

    了解单元测试及其对如何使用WPF的影响是我在入门级别上的一项基本技能 . 人们可以了解细节,但如果他们没有考虑过软件设计的基础知识那么你就会遇到问题 .

相关问题