Domande di intervista: WPF Developer [chiuso]


182

Cosa dovrebbero sapere tutti gli sviluppatori WPF?

Livello base

  • Background .NET 2.0 forte e pronto ad imparare!
  • Spiegare le proprietà di dipendenza?
  • Che cos'è uno stile?
  • Che cos'è un modello?
  • Rilegatura
  • Differenze tra le classi base: Visual, UIElement, FrameworkElement, Control
  • Albero visivo e logico?
  • Notifica di modifica proprietà (INotifyPropertyChange e ObservableCollection)
  • ResourceDictionary - Aggiunto da a7an
  • UserControls - Aggiunto da a7an
  • differenza tra le strategie di routing bolla e tunnel - aggiunte da Carlo
  • Perché Microsoft ha introdotto un altro linguaggio di markup?
  • XAML

Livello medio

  • Eventi e comandi indirizzati
  • Convertitori - Aggiunti da Artur Carvalho
  • Spiegare il motore di layout a 2 passaggi di WPF?
  • Come implementare un pannello?
  • Interoperabilità (WPF / WinForms)
  • Miscela / Sidro - Aggiunto da a7an
  • Animazioni e storyboard
  • Fare clic su Distribuzione
  • Skinning / themeing
  • Controlli personalizzati
  • In che modo i thread di lavoro possono aggiornare l'interfaccia utente?
  • DataTemplate vs HierarchicalDataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • Diversi tipi di trigger

Anziano

  • Esempio di comportamento associato?
  • Che cos'è PRISM, CAL & CAG?
  • In che modo i thread di lavoro possono aggiornare l'interfaccia utente?
  • WPF 3D - Aggiunto da a7an
  • Differenze tra Silverlight 2 e WPF
  • MVVM / MVP - Aggiunto da a7an
  • WPF Performance tuning
  • Pixel Shader
  • Scopo di Freezables

Altre domande "ingannevoli" da porre?

Ti aspetti che il tuo sviluppatore WPF conosca la fusione?


13
Non sono d'accordo sul "forte background di .NET 2.0". In realtà WPF fa molte cose diverse da .NET 2.0, e sapere di meno in realtà ti permette di padroneggiare WPF più velocemente ...
Arcturus,

28
Che ne dici di alcuni link che puntano anche a ciascuno di questi argomenti!
Binoj Antony,

16
Penso che questa sia una barra piuttosto alta per "entry level". Scommetto che se la posizione lavorativa viene descritta come "entry level", non avrai molte (nessuna) persone in grado di soddisfare il tuo standard. Buone cose da sapere, certamente, ma non quello che la maggior parte delle persone chiamerebbe "entry level".
Beska,

1
Non definirei "scopo dei freezable" qualcosa di senior - e se hai intenzione di parlare di threading a livello intermedio, è lì che appartengono i freezable. Anche MVVM / MVP non è particolarmente complesso né arcano.
Eamon Nerbonne,

4
Penso che questi elenchi debbano essere divisi in due, uno per il lato grafico / dell'interfaccia utente e uno per il lato tecnico. Il progettista dell'interfaccia utente dovrebbe probabilmente sapere come utilizzare la fusione delle espressioni, ma non ha bisogno di sapere molto sui dettagli tecnici di supporto come la codifica dietro un controllo utente progettabile. Il programmatore deve sapere come creare un controllo progettabile, ma non ha bisogno di usare la fusione delle espressioni (il designer xaml in VS dovrebbe essere sufficiente fino a quando il designer dell'interfaccia utente può renderlo carino).
Brian Reichle,

Risposte:


41

Sono sorpreso che nessuno abbia ancora menzionato le conoscenze di base di XAML. Conoscere cos'è XAML e la capacità di eseguire alcune modifiche di base utilizzando XAML anziché uno strumento di progettazione grafica. Gli sviluppatori di medio livello dovrebbero essere in grado di abbattere i prototipi di moduli / grafici utilizzando uno strumento come XAMLPad.


34

Personalmente li farei sedere davanti a una normale macchina da sviluppo per sviluppatori e chiederei loro di completare alcune attività. Nessuna domanda, basta vedere come è il loro codice dopo un paio d'ore (o più se l'attività è più lunga).

Ho avuto un tasso di fallimento pari a zero nel fare una descrizione delle assunzioni sulla base dei risultati di un test di programmazione reale.

Il compito non deve essere troppo difficile. Ho usato in passato un semplice messaggio dell'applicazione giorno con i messaggi contenuti in un database o file XML e una semplice interfaccia utente. Assicurati di chiedere loro di strutturarlo bene (poiché il compito è sufficientemente piccolo da poter essere svolto in un'unica classe se si sentissero inclinati).

Delle domande sopra direi che non puoi avere una buona idea se sono davvero buone o no. Un potenziale candidato potrebbe effettivamente leggerli e creare risposte predefinite che suonano alla grande. Tutto ciò dimostra che il candidato è in grado di parlare, ma ciò che conta nel lavoro stesso è se possono camminare.


4
Sono totalmente d'accordo, fai fare alle persone cose, non solo parlarne. @Colin, dopo il tuo aiuto sull'ortografia (le domande dell'app di autodiagnosi) dovevo solo votarti al regno di 4 cifre .... A proposito, c'è un tipo lì: doen invece di done. :)
raoulsson,

argh, errore di battitura,
volevo

Sono parzialmente d'accordo con te, ma il suo tempo richiede tempo, anche l'interrogatore orale impiega più tempo. Certo, questo modo porta a scegliere il candidato giusto.
Mohanavel,

1
Quindi, con quale parte non sei d'accordo?
Colin Mackay,

1
Penso anche che non sia realistico presumere che "ogni sviluppatore di WPF dovrebbe conoscere" le domande precedenti. Sono più simili a punti di discussione generali; prerequisiti non difficili.
Eamon Nerbonne,

23

Metterei rilegatura e convertitori al livello base, poiché è così che passi molto tempo in WPF.


19

Elenco abbastanza buono secondo me.
Tuttavia, non vorrei porre domande difficili durante l'intervista. L'intervista dà abbastanza stress, la domanda trabocchetto può confondere anche una persona altamente qualificata.


9
Sono d'accordo ... il punto di un'intervista è valutare ... non inciampare il collega.
cplotts

Non sono d'accordo con questo, IMO un programmatore deve gestire cose difficili, molto peggio delle interviste. Quindi una domanda difficile è buona per vedere come il programmatore risolve un problema sotto stress. Un semplice "Non lo so" fa molta strada.
Artur Carvalho,

15

Personalmente, metterei "Come possono i thread di lavoro aggiornare l'interfaccia utente" proprio al livello base. Di medio livello, se proprio necessario. Se un programmatore entry-level è in grado di comprendere la differenza tra l'albero logico e l'albero visivo, dovrebbe capire come aggiornare l'interfaccia utente da un thread in background.

Nella mia organizzazione, facciamo molto sviluppo WPF senza Blend. Non mi piace particolarmente Blend, quindi sono un po 'di parte, ma credo che le abilità di Blend dovrebbero essere piacevoli.


9

Uno sviluppatore WPF dovrebbe avere una solida conoscenza della separazione di XAML dal code-behind ed essere in grado di discutere a lungo dove deve essere tracciata quella linea.

Essere in grado di impostare un modello nella lingua di sua scelta e quindi utilizzare XAML per visualizzare le viste su quel modello tramite associazione di dati, modelli di dati, modelli di controllo, stili, trigger, convertitori di valori e UserControls è un'attività abbastanza semplice per la metà programmatore di livello. (Anche se un piccolo margine di manovra dovrebbe essere concesso se si chiede a qualcuno di creare qualcosa come un modello di controllo "dal cuore".)

Davvero, c'è molto in WPF, e se non fosse per i forum MSDN e i libri di approfondimento sull'argomento, sarebbe piuttosto il compito di "solo prenderlo". Per questo motivo, classificherei la perseveranza e la capacità di imparare dagli altri come un requisito fondamentale per qualsiasi livello.

Per un programmatore WPF entry-level, non mi aspetterei alcuna conoscenza del WPF in sé, ma richiederei la conoscenza dei principi orientati agli oggetti, la separazione dell'interfaccia utente dalla logica aziendale e il comfort con un modello di eventi simile. L'esperienza nel disporre gli elementi dell'interfaccia utente in uno stile simile a WPF (con contenitori DockPanel, ecc.) È un vantaggio.

Modifica: Inoltre, ciò che ha detto Colin Mackay.


8

Che dire dell'esperienza di programmazione / grafica della GUI in generale e conoscenza CS? Se è per un lavoro a tempo pieno, non importa se il ragazzo deve trascorrere i primi mesi un po 'di tempo con l'apprendimento del WPF, se lui (o lei) ha un forte background.


7

Livello base

  • Modifica proprietà NOtification (INotifyPropertyChange e ObservableCollection)
  • ResourceDictionary
  • UserControls

Livello medio

  • Miscela / Sidro
  • animazioni e storyboard
  • Fare clic su Distribuzione

Anziano

  • WPF 3D
  • Differenze tra Silverlight 2 e WPF
  • MVVM / MVP
  • WPF Performance tuning
  • Pixel Shader

7
  • Qual è la relazione tra thread e Dispatcher?
  • Qual è lo scopo di Freezables?
  • Qual è la differenza tra proprietà e proprietà dipendenza? Perché usare l'uno o l'altro?

5
  • Convertitori (semplici e multipli).
  • Interoperabilità.

Penso che preferirei un dev che conoscesse Blend . Lui / Lei potrebbe comunicare facilmente con il designer e anche fare alcune cose di base del progettista più velocemente della semplice scrittura in xaml.

L'elenco è interessante, forse i collegamenti agli argomenti potrebbero aiutare.

Saluti


4

Un'altra cosa davvero fondamentale sarebbe la differenza tra le strategie di routing bolla e tunnel.


3

Livello base

  • Conoscenza di UX Design
  • Conoscenza del binding dichiarativo per oggetti business
  • Utilizzo del comando

Anziano

  • Ottimizzazione delle risorse e ottimizzazione delle prestazioni
  • Modularità e scalabilità
  • Asincronizza il modello di programmazione


2

Metà o forse senior

  • Skinning / themeing
  • Controlli personalizzati

2
  • DataTemplate vs HierarchicalDataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • Diversi tipi di trigger
  • Come realizzare animazioni tramite StoryBoards


1

Estenderei la distribuzione ClickOnce con la distribuzione WPF in generale, poiché è bene conoscere i limiti e le peculiarità di ciascun modello (solo ClickOnce, XBAP, browser). Posizionarlo a medio livello sembra giusto.


1

gli stili forniscono un meccanismo per applicare un tema in un'applicazione e sovrascrivere quel tema in quelle istanze specifiche in cui si desidera. Gli stili sono definiti come risorse; infatti, sono definiti all'interno della stessa sezione del file XAML in cui sono definite le risorse.



1

Conoscere i test unitari e l'effetto che ha su come si usa WPF è un'abilità di base che vorrei mettere a livello di entrata. Le persone possono apprendere i dettagli, ma se non hanno pensato alle basi della progettazione del software, allora hai un problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.