インタビューの質問:WPF開発者[終了]


182

すべてのWPF開発者が知っておくべきことは何ですか?

入門レベル

  • 強力な.NET 2.0の背景と学習意欲!
  • 依存関係プロパティを説明しますか?
  • スタイルとは?
  • テンプレートとは何ですか?
  • バインド
  • 基本クラスの違い:Visual、UIElement、FrameworkElement、Control
  • ビジュアルvs論理ツリー?
  • プロパティ変更通知(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開発者がブレンドを知っていることを期待していますか?


13
「強力な.NET 2.0の背景」に同意しません。実際、WPFは.NET 2.0とは異なる多くのことを行います。WPFの知識が少ないと、実際にWPFをより速くマスターできます...
Arcturus

28
これらの各トピックへのリンクもいくつかありますか?
Binoj Antony

16
これは「エントリーレベル」のかなり高いバーだと思います。職位が「エントリーレベル」と記載されている場合、あなたの基準を満たすことができる多くの(任意の)人を獲得することはないと思います。確かに知っておきたいことですが、ほとんどの人が「エントリレベル」と呼ぶものではありません。
Beska、

1
私は「フリーズ可能の目的」を上級者とは呼びません。そして、中級レベルでのスレッド化について話すなら、フリーズ可能が属する場所です。MVVM / MVPも、特に複雑でも難解でもありません。
Eamon Nerbonne、2011年

4
これらのリストは、グラフィック/ UIデザイン側とテクニカルデザイン側の2つに分割する必要があると思います。UI設計者は、おそらく式のブレンドの使用方法を知っている必要がありますが、設計可能なユーザーコントロールの背後にあるコーディングなど、バッキングの技術的な詳細についてはあまり詳しく知る必要はありません。プログラマーは、デザイン可能なコントロールを作成する方法を知る必要がありますが、式のブレンドを使用する必要はありません(VSのxamlデザイナーは、UIデザイナーがそれをきれいにするまで十分です)。
Brian Reichle、2011年

回答:


41

XAMLの基本的な知識について誰もまだ言及していません。XAMLとは何か、およびグラフィカルデザインツールではなくXAMLを使用して基本的な編集を行う機能を理解する。中間レベルの開発者は、XAMLPadなどのツールを使用してフォーム/グラフィックプロトタイプをノックアップできる必要があります。


34

個人的には、標準の開発者ビルドマシンの前に座って、いくつかのタスクを完了するように依頼しました。質問はありません。数時間後(またはタスクが長い場合はさらに長く)、コードがどのようなものかを確認してください。

私は、実際の実際のプログラミングテストの結果に基づいて採用決定を下した場合、失敗率はゼロでした。

タスクはそれほど難しい必要はありません。私は過去に、今日のアプリケーションの単純なメッセージを使用しました。メッセージはデータベースまたはXMLファイルと単純なユーザーインターフェイスに保持されています。しっかりと構造化するように依頼してください(タスクが十分に小さいため、彼らが邪魔になったと感じた場合、すべて1つのクラスで実行できます)。

上記の質問のうち、本当に良いかどうかはよくわかりません。潜在的な候補者は、実際にこれらを読んで、素晴らしい音の缶詰の答えを作成できます。このすべてが示すことは、候補者が話すことができるということですが、仕事自体で重要なのは、彼らが歩くことができるかどうかです。


4
私はそれについて話しているだけでなく、人々に何かをさせます。@Colin、スペルのヘルプ(自己診断アプリの質問)の後、私は4桁のレルムにあなたを賛成しなければなりませんでした...ところで、そこにタイプがあります。:)
raoulsson 2009

argh

私は部分的にあなたに同意しますが、その時間はプロセスを消費し、口頭の質問者でさえもっと時間がかかります。もちろん、この方法は正しい候補者を選ぶことにつながります。
Mohanavel、2011年

1
それで、あなたはどの部分に反対しますか?
コリンマッカイ

1
また、上記の質問を「すべてのWPF開発者が知っておくべき」と想定することは非現実的だと思います。彼らはより一般的な話のポイントに似ています。難しい前提条件ではありません。
Eamon Nerbonne、2011年


19

私の意見ではかなり良いリストです。
しかし、面接では難しい質問はしません。インタビュー自体は十分なストレスを与え、トリックの質問は非常に熟練した人でも混乱させる可能性があります。


9
私は同意します...面接のポイントは、仲間をつまずかないように評価することです...
cplotts 2008年

私はこれに同意しません。IMOプログラマーは、インタビューよりもはるかに悪い、難しいものを処理する必要があります。したがって、プログラマーがストレス下で問題をどのように解決するかを理解するには、トリッキーな質問が適しています。単純な「わからない」は長い道のりです。
Artur Carvalho、

15

個人的には、「ワーカースレッドでUIを更新するにはどうすればよいですか」をエントリレベルの直下に配置します。中級レベル、本当に必要な場合。エントリレベルのプログラマが論理ツリーとビジュアルツリーの違いを理解できる場合、バックグラウンドスレッドからUIを更新する方法を理解する必要があります。

私の組織では、Blendなしで多くのWPF開発を行っています。私は特にBlendが好きではないので、少し偏っていますが、Blendのスキルは得意なはずです。


9

WPF開発者は、XAMLをコードビハインドから分離することをしっかりと理解し、その線が描画される場所について詳細に議論できる必要があります。

彼女が選択した言語でモデルを設定し、XAMLを使用して、データバインディング、データテンプレート、コントロールテンプレート、スタイル、トリガー、値コンバーター、およびユーザーコントロールを介してそのモデルのビューを表示することは、中盤のかなり基本的なタスクですレベルのプログラマー。(ただし、コントロールテンプレートのようなものを「心から」作成するように依頼する場合は、多少の余裕が必要です。)

実際、WPF には多くのことがあり、MSDNフォーラムやこのテーマに関する詳細な本がなかった場合、「取り上げる」だけで十分でしょう。そのため、私は忍耐力と他者から学ぶ能力をあらゆるレベルの最大要件として評価します。

エントリレベルのWPFプログラマーには、WPF自体の知識は期待しませんが、オブジェクト指向の原則、UIとビジネスロジックの分離、および同様のイベントモデルの快適さについての知識を要求します。WPFに似たスタイルで(DockPanelコンテナーなどを使用して)UI要素をレイアウトする経験はプラスです。

編集:また、コリンマッカイが言ったこと。


8

一般的なGUIプログラミング/グラフィックスの経験とcsの知識はどうですか?フルタイムの仕事の場合は、最初の数か月をWPFの学習に費やす必要があるかどうか、私(または彼女)が強いバックグラウンドを持っているかどうかは関係ありません。


7

入門レベル

  • プロパティ変更通知(INotifyPropertyChangeおよびObservableCollection)
  • ResourceDictionary
  • ユーザーコントロール

中級

  • ブレンド/サイダー
  • アニメーションとストーリーボード
  • ClickOnceの配置

上級

  • WPF 3D
  • Silverlight 2とWPFの違い
  • MVVM / MVP
  • WPFパフォーマンスチューニング
  • ピクセルシェーダー

7
  • スレッドとディスパッチャーの関係は何ですか?
  • Freezablesの目的は何ですか?
  • プロパティと依存関係プロパティの違いは何ですか?なぜどちらを使用するのですか?

5
  • コンバーター(シンプルおよびマルチ)。
  • 相互運用性。

私はブレンドを知っている開発者を好むと思います。彼/彼女はデザイナーと簡単にコミュニケーションをとることができ、xamlで書くよりも速くいくつかの基本的なデザイナーのことを行うことができました。

リストは興味深いです。トピックへのリンクが役立つかもしれません。

乾杯


4

別の本当に基本的なことは、バブルとトンネルのルーティング戦略の違いです。


3

入門レベル

  • UXデザインの知識
  • ビジネスオブジェクトの宣言的バインディングに関する知識
  • コマンドの使用法

上級

  • リソースの最適化とパフォーマンスの調整
  • モジュール性とスケーラビリティ
  • プログラミングモデルの同期


2

ミッドまたは多分シニア

  • スキニング/テーマ
  • カスタムコントロール

2
  • DataTemplateとHierarchicalDataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • さまざまなタイプのトリガー
  • StoryBoardsを介してアニメーションを行う方法


1

各モデルの制限と特殊性(ClickOnce、XBAP、ブラウザーのみ)を理解しておくとよいので、WPFデプロイメントを使用してClickOnceデプロイメントを拡張します。それを中間レベルに配置することは公平です。


1

スタイルは、アプリケーション全体にテーマを適用し、必要な特定のインスタンスでそのテーマをオーバーライドするためのメカニズムを提供します。スタイルはリソースのように定義されます。実際、これらは、リソースが定義されているXAMLファイルの同じセクション内で定義されています。



1

ユニットテストとそれがWPFの使用方法に及ぼす影響について理解することは、私がエントリレベルに置く基本的なスキルです。人々は詳細を学ぶことができますが、ソフトウェア設計の基本について考えていなければ、問題があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.