2008-09-12 33 views
173

¿Qué deberían saber todos los desarrolladores de WPF?Preguntas de la entrevista: WPF Developer

nivel de entrada

  • fuerte .NET 2.0 Antecedentes & dispuesto a aprender!
  • ¿Explicar las propiedades de dependencia?
  • ¿Qué es un estilo?
  • ¿Qué es una plantilla?
  • Encuadernación
  • Las diferencias entre las clases de base: Visual, UIElement, FrameworkElement, Control
  • Visual vs árbol lógico?
  • Cambiar propiedad de notificación (INotifyPropertyChange y ObservableCollection)
  • ResourceDictionary - Añadido por a7an
  • UserControls - Añadido por a7an
  • diferencia entre las estrategias de burbujas y encaminamiento del túnel - añadió por Carlo
  • ¿Por qué otro introducir Microsoft lenguaje de marcado?
  • XAML

de nivel medio

  • eventos enrutados & comandos
  • Conversores - Añadido por Artur Carvalho
  • Explicar motor de diseño de 2 pasos de WPF?
  • ¿Cómo implementar un panel?
  • interoperabilidad (WPF/WinForms)
  • Blend/Cider - Añadido por a7an
  • animaciones y Storyboarding
  • ClickOnce Deployment
  • desuello/themeing
  • Controles
  • personalizada
  • ¿Cómo pueden actualizar los subprocesos de trabajo de la interfaz de usuario ?
  • DataTemplate vs HierarchicalDataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • Diferentes tipos de disparadores

mayor

  • Ejemplo de comportamiento adjunto?
  • ¿Qué es PRISM, CAL & CAG?
  • ¿Cómo pueden actualizar los hilos de trabajo la interfaz de usuario?
  • WPF 3D - Añadida por a7an
  • Las diferencias entre Silverlight 2 y WPF
  • MVVM/MVP - Añadido por a7an
  • El ajuste del rendimiento de WPF
  • Pixel Shaders
  • Propósito de Freezables

Cualquier otro "truco" preguntas para preguntar?

¿Espera que su desarrollador de WPF sepa mezclar?

+13

No estoy de acuerdo en el "Fuerte .NET 2.0 de fondo" .. En realidad WPF hace muchas cosas diferentes a .NET 2.0, y saber menos en realidad le permite dominar WPF más rápido ... – Arcturus

+25

¿Qué tal algunos enlaces que apuntan a cada uno de estos temas también! –

+14

Creo que esta es una barra bastante alta para "nivel de entrada". Apuesto a que si el puesto de trabajo se describe como "nivel de entrada", no obtendrá muchas (ninguna) personas que puedan cumplir con su estándar. Cosas buenas que saber, sin duda, pero no lo que la mayoría de la gente llamaría "nivel de entrada". – Beska

Respuesta

16

Bastante buena lista en mi opinión.
Sin embargo, no le preguntaría preguntas complicadas en la entrevista. La entrevista proporciona suficiente estrés en sí misma, la pregunta engañosa puede confundir incluso a la persona altamente calificada.

+9

Estoy de acuerdo ... el objetivo de una entrevista es evaluar ... no hacer tropezar al compañero. – cplotts

+0

No estoy de acuerdo con este, IMO un programador debe manejar cosas difíciles, mucho peor que las entrevistas. Entonces, una pregunta difícil es buena para ver cómo el programador resuelve un problema bajo estrés. Un simple "No sé" recorre un largo camino. –

4
  • Convertidores (simples y múltiples).
  • Interoperabilidad.

Creo que preferiría un desarrollador que supiera Blend. Él/Ella podría comunicarse fácilmente con el diseñador y también hacer algunas cosas básicas de diseño más rápido que simplemente escribir en xaml.

La lista es interesante, tal vez los enlaces a los temas ayuden.

Saludos

7

nivel de entrada

  • Propiedad Notificación de cambio de (INotifyPropertyChange y ObservableCollection)
  • ResourceDictionary
  • UserControls

Nivel Medio

  • Mezcla/Sidra
  • animaciones y storyboarding
  • ClickOnce despliegue

Superior

  • WPF 3D
  • Las diferencias entre Silverlight y WPF 2
  • MVVM/MVP
  • Rendimiento WPF sintonización
  • pixel shaders
21

Pondré vinculantes y convertidores en el nivel de entrada, ya que así es como pasas mucho tiempo en WPF.

37

Me sorprende que nadie haya mencionado conocimientos básicos de XAML todavía. Sabiendo lo que es XAML, y la capacidad de hacer algunas ediciones básicas usando XAML en lugar de una herramienta de diseño gráfico. Los desarrolladores de nivel medio deberían ser capaces de destruir prototipos de formas/gráficos usando una herramienta como XAMLPad.

1

Creo que el ciclo de vida de la aplicación WPF, desde la creación hasta el tiempo de ejecución, debe incluirse en el nivel principiante de preguntas. Sin saberlo, es difícil de creer que uno sea un verdadero desarrollador de WPF. Controles

+0

No tengo idea de lo que quiere decir aquí. – cplotts

+0

Creo que se refiere a esto: http://msdn.microsoft.com/en-us/library/ms754221.aspx – HappyNomad

2

mediados o tal vez mayor

  • desuello/themeing
  • personalizada
1

Me extiendo la implementación de ClickOnce con WPF despliegue en general, ya que es bueno conocer las limitaciones y peculiaridades de cada modelo (ClickOnce, XBAP, solo navegador). Sin embargo, ubicarlo en el nivel medio parece justo.

14

Personalmente, me gustaría poner '¿Cómo pueden los hilos de los trabajadores actualizar la interfaz de usuario' justo debajo del nivel de entrada. Nivel medio, si realmente lo necesita Si un programador de nivel básico puede entender la diferencia entre el árbol lógico y el árbol visual, debe comprender cómo actualizar la interfaz de usuario a partir de un hilo de fondo.

En mi organización, hacemos mucho desarrollo de WPF sin mezcla.No me gusta especialmente Blend, así que estoy un poco parcial, pero las habilidades de Blend deberían ser agradables, creo.

7

¿Qué pasa con la experiencia de programación/gráficos de GUI en general y el conocimiento de cs? Si es por un trabajo de tiempo completo, no importa en mi humilde opinión si el chico tiene que pasar los primeros meses algún tiempo aprendiendo WPF, si él (o ella) tiene una sólida formación.

5
  • ¿Cuál es la relación entre los hilos y los despachadores?
  • ¿Cuál es el propósito de Freezables?
  • ¿Cuál es la diferencia entre propiedades y propiedades de dependencia? ¿Por qué usar uno u otro?
1
  • DataTemplate vs HierarchicalDataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • Diferentes tipos de disparadores
  • Cómo hacer animaciones a través de Historietas
8

Un WPF desarrollador debe tener una firma captar la separación del XAML del código subyacente, y poder debatir extensamente dónde se dibujará esa línea.

Ser capaz de configurar un modelo en el idioma de su elección y luego usar XAML para mostrar vistas en ese modelo a través de enlace de datos, plantillas de datos, plantillas de control, estilos, desencadenantes, convertidores de valor y UserControls es bastante básico tarea para el programador de nivel medio. (Aunque una pequeña cantidad de margen de maniobra debe concederse si pedir a alguien para crear algo así como una plantilla de control "de corazón".)

En realidad, no es una gran cantidad en WPF, y si no fuera por el MSDN foros y libros detallados sobre el tema, sería una buena tarea "simplemente retomarlo". Por esa razón, calificaría la perseverancia y la capacidad de aprender de los demás como un requisito principal para cualquier nivel.

Para un programador de nivel principiante de WPF, no esperaría ningún conocimiento de WPF per se, pero exigiría conocimiento de principios orientados a objetos, separación de UI de lógica comercial y comodidad con un modelo de evento similar. La experiencia de diseñar elementos UI en un estilo similar a WPF (con contenedores DockPanel, etc.) es una ventaja.

Editar: Además, lo que dijo Colin Mackay.

29

Personalmente, los sentaba frente a una máquina de construcción de desarrollador estándar y les pedía que completaran alguna tarea. No hay preguntas, solo vea cómo es su código después de un par de horas (o más si la tarea es más larga).

He tenido una tasa de fallas cero al hacer una desición de contratación basada en los resultados de una prueba de programación de la vida real real.

La tarea no tiene que ser demasiado difícil. He utilizado un mensaje simple de la aplicación del día en el pasado con los mensajes que se celebran en una base de datos o archivo XML y una interfaz de usuario simple. Asegúrese de pedirles que lo estructuran bien (ya que la tarea es lo suficientemente pequeña como para que todo se pueda hacer en una clase si se sienten inclinados).

De las preguntas anteriores, diría que no se puede tener una buena idea de si realmente son buenas o no. Un candidato potencial en realidad podría simplemente leer estos y crear respuestas enlatadas que suenan bien.Todo esto muestra que el candidato puede conversar, pero lo que importa en el trabajo en sí es si pueden caminar por el camino.

+3

Estoy totalmente de acuerdo, hacer que la gente haga cosas, no solo hablar de ello. @Colin, después de tu ayuda con la ortografía (las preguntas de la aplicación de autodiagnóstico), tuve que enviarte al dominio de 4 dígitos ... Por cierto, hay un tipo allí: doen en lugar de hacerlo. :) – raoulsson

+0

argh, error tipográfico, quise decir, divertido :) – raoulsson

+1

Error de tipografía, gracias! :) –

4

Otra cosa realmente básica sería la diferencia entre las estrategias de enrutamiento de burbujas y túneles.

1

Los estilos proporcionan un mecanismo para que apliquen un tema en una aplicación y anulen ese tema en las instancias específicas en las que lo desee. Los estilos se definen como recursos; de hecho, se definen dentro de la misma sección de su archivo XAML en cuyos recursos están definidos.

2

nivel de entrada

  • Conocimiento en Diseño UX
  • conocimiento declarativo en unión de objetos de negocio
  • Comando Uso

Superior

  • optimización de recursos & El ajuste del rendimiento
  • Modularidad Escalabilidad &
  • Asynchronize modelo de programación
+1

Todos estos son bastante vagos –

1

Conocer las pruebas unitarias y el efecto que tiene en la forma de usar WPF es una habilidad básica que pondría en el nivel de entrada. Las personas pueden aprender los detalles, pero si no han pensado en los conceptos básicos del diseño de software, entonces usted tiene un problema.

Cuestiones relacionadas