Interviewfragen: WPF Developer [geschlossen]


182

Was sollte jeder WPF-Entwickler wissen?

Einstiegslevel

  • Starker .NET 2.0 Hintergrund & lernbereit!
  • Abhängigkeitseigenschaften erklären?
  • Was ist ein Stil?
  • Was ist eine Vorlage?
  • Bindung
  • Unterschiede zwischen Basisklassen: Visual, UIElement, FrameworkElement, Control
  • Visueller vs logischer Baum?
  • Benachrichtigung über Eigenschaftsänderungen (INotifyPropertyChange und ObservableCollection)
  • ResourceDictionary - Hinzugefügt von a7an
  • UserControls - Hinzugefügt von a7an
  • Unterschied zwischen Bubble- und Tunnel-Routing-Strategien - hinzugefügt von Carlo
  • Warum hat Microsoft eine weitere Auszeichnungssprache eingeführt?
  • XAML

Mittlere Ebene

  • Weitergeleitete Ereignisse und Befehle
  • Konverter - Hinzugefügt von Artur Carvalho
  • Erklären Sie die 2-Pass-Layout-Engine von WPF?
  • Wie implementiere ich ein Panel?
  • Interoperabilität (WPF / WinForms)
  • Mischung / Cider - Hinzugefügt von a7an
  • Animationen und Storyboarding
  • ClickOnce-Bereitstellung
  • Häuten / Thematisieren
  • Benutzerdefinierte Steuerelemente
  • Wie können Worker-Threads die Benutzeroberfläche aktualisieren?
  • DataTemplate vs HierarchicalDataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • Verschiedene Arten von Triggern

Senior

  • Beispiel für angehängtes Verhalten?
  • Was ist PRISM, CAL & CAG?
  • Wie können Worker-Threads die Benutzeroberfläche aktualisieren?
  • WPF 3D - Hinzugefügt von a7an
  • Unterschiede zwischen Silverlight 2 und WPF
  • MVVM / MVP - Hinzugefügt von a7an
  • WPF-Leistungsoptimierung
  • Pixel Shader
  • Zweck von Freezables

Haben Sie noch andere "Trick" -Fragen?

Erwarten Sie von Ihrem WPF-Entwickler, dass er Blend kennt?


13
Ich bin mit dem "starken .NET 2.0-Hintergrund" nicht einverstanden. Tatsächlich macht WPF viele Dinge anders als .NET 2.0, und wenn Sie weniger wissen, können Sie WPF schneller beherrschen ...
Arcturus

28
Wie wäre es mit einigen Links, die auch auf jedes dieser Themen verweisen?
Binoj Antony

16
Ich denke, dies ist eine ziemlich hohe Messlatte für "Einsteiger". Ich würde wetten, dass wenn die Jobposition als "Einstiegsniveau" beschrieben wird, Sie nicht viele (irgendwelche) Leute bekommen, die Ihren Standard erfüllen können. Sicherlich gute Dinge zu wissen, aber nicht das, was die meisten Leute als "Einstiegsniveau" bezeichnen würden.
Beska

1
Ich würde "Zweck von Freezables" nicht als etwas Älteres bezeichnen - und wenn Sie über das Einfädeln auf mittlerer Ebene sprechen, dann gehören Freezables dazu. MVVM / MVP ist auch weder besonders komplex noch arkan.
Eamon Nerbonne

4
Ich denke, diese Listen sollten zweigeteilt werden, eine für die Grafik- / UI-Design-Seite und eine für die technische Design-Seite. Der UI-Designer sollte wahrscheinlich wissen, wie man eine Ausdrucksmischung verwendet, muss jedoch nicht viel über die technischen Details des Hintergrunds wie die Codierung hinter einem gestaltbaren Benutzersteuerelement wissen. Der Programmierer muss wissen, wie ein gestaltbares Steuerelement erstellt wird, muss jedoch keine Ausdrucksmischung verwenden (der xaml-Designer in VS sollte ausreichen, bis der UI-Designer es hübsch machen kann).
Brian Reichle

Antworten:


41

Ich bin überrascht, dass noch niemand Grundkenntnisse in XAML erwähnt hat. Wissen, was XAML ist, und die Möglichkeit, einige grundlegende Bearbeitungen mit XAML anstelle eines grafischen Entwurfswerkzeugs durchzuführen. Entwickler auf mittlerer Ebene sollten in der Lage sein, Formular- / Grafikprototypen mit einem Tool wie XAMLPad zu erstellen.


34

Persönlich würde ich sie vor eine Standard-Entwickler-Build-Maschine setzen und sie bitten, eine Aufgabe zu erledigen. Keine Fragen, sehen Sie einfach, wie ihr Code nach ein paar Stunden aussieht (oder mehr, wenn die Aufgabe länger ist).

Ich hatte eine Fehlerquote von Null bei der Entscheidung über die Einstellung, basierend auf den Ergebnissen eines tatsächlichen Programmiertests im wirklichen Leben.

Die Aufgabe muss nicht zu schwierig sein. Ich habe in der Vergangenheit eine einfache Nachricht der Tagesanwendung verwendet, wobei die Nachrichten in einer Datenbank oder XML-Datei und einer einfachen Benutzeroberfläche gespeichert waren. Stellen Sie sicher, dass Sie sie bitten, es gut zu strukturieren (da die Aufgabe so klein ist, dass alles in einer Klasse erledigt werden kann, wenn sie sich geneigt fühlen).

Von den obigen Fragen würde ich sagen, dass Sie keine gute Vorstellung davon bekommen können, ob sie wirklich gut sind oder nicht. Ein potenzieller Kandidat könnte diese einfach lesen und Antworten in Dosen erstellen, die großartig klingen. All dies zeigt, dass der Kandidat sprechen kann, aber was im Job selbst wichtig ist, ist, ob er laufen kann.


4
Ich stimme vollkommen zu, Leute dazu zu bringen, Dinge zu tun, nicht nur darüber zu reden. @Colin, nach deiner Hilfe bei der Rechtschreibung (die Fragen zur Selbstdiagnose-App) musste ich dich nur in den 4-stelligen Bereich hochstufen ... Übrigens gibt es dort einen Typ: doen statt done. :)
Raoulsson

Argh, Tippfehler, ich meinte, lustig :)
Raoulsson

Ich stimme Ihnen teilweise zu, aber sein zeitaufwändiger Prozess, selbst mündliche Fragesteller nehmen sich mehr Zeit. Dieser Weg führt natürlich zur Auswahl des richtigen Kandidaten.
Mohanavel

1
Also, mit welchem ​​Teil sind Sie nicht einverstanden?
Colin Mackay

1
Ich denke auch, dass es unrealistisch ist anzunehmen, dass "jeder WPF-Entwickler die obigen Fragen kennen sollte". Sie sind eher allgemeine Gesprächsthemen; keine harten Voraussetzungen.
Eamon Nerbonne

23

Ich würde Bindungen und Konverter auf Einstiegsebene setzen, da Sie so viel Zeit in WPF verbringen.


19

Ziemlich gute Liste meiner Meinung nach.
Allerdings würde ich beim Interview keine kniffligen Fragen stellen. Das Interview gibt selbst genug Stress, Trickfragen können selbst hochqualifizierte Personen verwirren.


9
Ich stimme zu ... der Sinn eines Interviews ist es zu beurteilen ... den Kerl nicht zu stolpern.
Plots

Ich bin damit nicht einverstanden, IMO, ein Programmierer muss mit harten Dingen umgehen, viel schlimmer als Interviews. Eine knifflige Frage ist also gut zu sehen, wie der Programmierer ein Problem unter Stress löst. Ein einfaches "Ich weiß nicht" reicht weit.
Artur Carvalho

15

Persönlich würde ich "Wie können Worker-Threads die Benutzeroberfläche aktualisieren" direkt unter dem Einstiegsniveau platzieren. Mittelstufe, wenn Sie es wirklich brauchen. Wenn ein Programmierer der Einstiegsklasse den Unterschied zwischen dem logischen und dem visuellen Baum verstehen kann, sollte er verstehen, wie die Benutzeroberfläche über einen Hintergrundthread aktualisiert wird.

In meiner Organisation entwickeln wir viel WPF ohne Blend. Ich mag Blend nicht besonders, deshalb bin ich ein bisschen voreingenommen, aber Blend-Fähigkeiten sollten eine nette Sache sein, denke ich.


9

Ein WPF-Entwickler sollte ein sicheres Verständnis dafür haben, die XAML vom Code-Behind zu trennen, und in der Lage sein, ausführlich zu diskutieren, wo diese Linie gezogen werden soll.

Die Möglichkeit, ein Modell in der Sprache ihrer Wahl einzurichten und dann mithilfe von XAML Ansichten zu diesem Modell über Datenbindung, Datenvorlagen, Steuerungsvorlagen, Stile, Trigger, Wertekonverter und UserControls anzuzeigen, ist eine ziemlich grundlegende Aufgabe für die Mitte -Stufenprogrammierer. (Obwohl ein kleiner Spielraum eingeräumt werden sollte, wenn jemand gebeten wird, so etwas wie eine Kontrollvorlage "aus dem Herzen" zu erstellen.)

Wirklich, es gibt viel in WPF, und wenn es nicht die MSDN-Foren und ausführlichen Bücher zu diesem Thema gäbe, wäre es eine ziemliche Aufgabe, "es einfach aufzugreifen". Aus diesem Grund würde ich Ausdauer und die Fähigkeit, von anderen zu lernen, als oberste Voraussetzung für jedes Level bewerten.

Für einen WPF-Programmierer der Einstiegsklasse würde ich keine Kenntnisse über WPF an sich erwarten, aber ich würde Kenntnisse über objektorientierte Prinzipien, Trennung der Benutzeroberfläche von der Geschäftslogik und Komfort mit einem ähnlichen Ereignismodell verlangen. Erfahrung im Layout von UI-Elementen in einem ähnlichen Stil wie WPF (mit DockPanel-Containern usw.) ist von Vorteil.

Edit: Auch was Colin Mackay gesagt hat.


8

Was ist mit GUI-Programmierung / Grafikerfahrung im Allgemeinen und CS-Kenntnissen? Wenn es sich um einen Vollzeitjob handelt, spielt es meiner Meinung nach keine Rolle, ob der Typ die ersten Monate mit dem Erlernen von WPF verbringen muss, wenn er (oder sie) einen starken Hintergrund hat.


7

Einstiegslevel

  • Eigenschaftsänderung NOtification (INotifyPropertyChange und ObservableCollection)
  • ResourceDictionary
  • UserControls

Mittlere Ebene

  • Mischung / Apfelwein
  • Animationen und Storyboarding
  • ClickOnce-Bereitstellung

Senior

  • WPF 3D
  • Unterschiede zwischen Silverlight 2 und WPF
  • MVVM / MVP
  • WPF-Leistungsoptimierung
  • Pixel Shader

7
  • Welche Beziehung besteht zwischen Threads und Dispatchern?
  • Was ist der Zweck von Freezables?
  • Was ist der Unterschied zwischen Eigenschaften und Abhängigkeitseigenschaften? Warum den einen oder anderen benutzen?

5
  • Konverter (einfach und mehrfach).
  • Interoperabilität.

Ich denke, ich würde einen Entwickler bevorzugen, der Blend kennt . Er / Sie konnte leicht mit dem Designer kommunizieren und einige grundlegende Designer-Dinge schneller erledigen als nur in xaml zu schreiben.

Die Liste ist interessant, vielleicht würden Links zu den Themen helfen.

Prost


4

Eine andere wirklich grundlegende Sache wäre der Unterschied zwischen Blasen- und Tunnel-Routing-Strategien.


3

Einstiegslevel

  • Kenntnisse in UX Design
  • Kenntnisse in deklarativer Bindung für Geschäftsobjekte
  • Befehlsverwendung

Senior

  • Ressourcenoptimierung und Leistungsoptimierung
  • Modularität und Skalierbarkeit
  • Programmiermodell asynchronisieren


2

Mitte oder vielleicht Senior

  • Häuten / Thematisieren
  • Benutzerdefinierte Steuerelemente

2
  • DataTemplate vs HierarchicalDataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • Verschiedene Arten von Triggern
  • So erstellen Sie Animationen über StoryBoards


1

Ich würde die ClickOnce-Bereitstellung im Allgemeinen um die WPF-Bereitstellung erweitern, da es gut ist, die Einschränkungen und Besonderheiten jedes Modells zu kennen (nur ClickOnce, XBAP, Browser). Es scheint jedoch fair, es auf mittlerem Niveau zu platzieren.


1

Stile bieten einen Mechanismus, mit dem Sie ein Thema auf eine Anwendung anwenden und dieses Thema in den spezifischen Fällen überschreiben können, in denen Sie möchten. Stile werden wie Ressourcen definiert. Tatsächlich werden sie in demselben Abschnitt Ihrer XAML-Datei definiert, in dem Ressourcen definiert sind.



1

Das Wissen über Unit-Tests und deren Auswirkungen auf die Verwendung von WPF ist eine grundlegende Fähigkeit, die ich auf Einstiegsebene anwenden würde. Die Leute können die Details lernen, aber wenn sie nicht über die Grundlagen des Software-Designs nachgedacht haben, haben Sie ein Problem.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.