¿Qué debe saber todo desarrollador de WPF?
Nivel Básico
- ¡Fondo sólido de .NET 2.0 y dispuesto a aprender!
- ¿Explicar las propiedades de dependencia?
- ¿Qué es un estilo?
- ¿Qué es una plantilla?
- Unión
- Diferencias entre clases base: Visual, UIElement, FrameworkElement, Control
- ¿Árbol visual vs lógico?
- Notificación de cambio de propiedad (INotifyPropertyChange y ObservableCollection)
- ResourceDictionary - Agregado por a7an
- UserControls - Agregado por a7an
- diferencia entre las estrategias de enrutamiento de burbujas y túneles - agregada por Carlo
- ¿Por qué Microsoft introdujo otro lenguaje de marcado?
- XAML
Nivel medio
- Eventos enrutados y comandos
- Convertidores - Agregados por Artur Carvalho
- ¿Explicar el motor de diseño de 2 pasos de WPF?
- ¿Cómo implementar un panel?
- Interoperabilidad (WPF / WinForms)
- Mezcla / Sidra - Agregado por a7an
- Animaciones y Storyboarding
- Implementación ClickOnce
- Skinning / Themeing
- Controles personalizados
- ¿Cómo pueden los hilos de trabajo actualizar 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 los hilos de trabajo actualizar la interfaz de usuario?
- WPF 3D - Agregado por a7an
- Diferencias entre Silverlight 2 y WPF
- MVVM / MVP - Agregado por a7an
- Ajuste de rendimiento de WPF
- Sombreadores de píxeles
- Propósito de Freezables
¿Alguna otra pregunta de "truco" para hacer?
¿Esperas que tu desarrollador de WPF sepa mezclar?
Respuestas:
Me sorprende que nadie haya mencionado los conocimientos básicos de XAML todavía. Saber qué es XAML y la capacidad de hacer una edición básica usando XAML en lugar de una herramienta de diseño gráfico. Los desarrolladores de nivel medio deberían poder crear prototipos de formularios / gráficos utilizando una herramienta como XAMLPad.
fuente
Personalmente, los sentaría frente a una máquina de compilación de desarrollador estándar y les pediría que completaran alguna tarea. Sin 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 falla cero al tomar una decisión de contratación basada en los resultados de una prueba de programación de la vida real.
La tarea no tiene que ser demasiado difícil. He usado un mensaje simple de la aplicación del día en el pasado con los mensajes retenidos en una base de datos o archivo XML y una interfaz de usuario simple. Asegúrese de pedirles que lo estructuren 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 puede hacerse una buena idea de si realmente son buenas o no. Un posible candidato en realidad podría simplemente leerlos y crear respuestas enlatadas que suenen muy bien. Todo esto demuestra que el candidato puede hablar y hablar, pero lo que importa en el trabajo en sí mismo es si puede caminar.
fuente
Pondría encuadernación y convertidores a nivel de entrada, ya que así es como pasas mucho tiempo en WPF.
fuente
Bastante buena lista en mi opinión.
Sin embargo, no haría preguntas difíciles en la entrevista. La entrevista genera suficiente estrés, la pregunta capciosa puede confundir incluso a personas altamente calificadas.
fuente
Personalmente, pondría 'Cómo pueden los hilos de trabajo actualizar la interfaz de usuario' justo debajo del nivel de entrada. Nivel medio, si realmente lo necesita. Si un programador de nivel de entrada puede comprender la diferencia entre el árbol lógico y el árbol visual, debe entender cómo actualizar la interfaz de usuario desde un hilo de fondo.
En mi organización, hacemos mucho desarrollo de WPF sin Blend. En particular, no me gusta Blend, así que soy un poco parcial, pero creo que las habilidades de Blend deberían ser agradables.
fuente
Un desarrollador de WPF debe tener una comprensión firme de separar el XAML del código subyacente, y poder debatir extensamente dónde se debe dibujar esa línea.
Poder configurar un modelo en el idioma de su elección y luego usar XAML para mostrar vistas en ese modelo a través de enlaces de datos, plantillas de datos, plantillas de control, estilos, disparadores, convertidores de valores y UserControls es una tarea bastante básica para el medio programador de nivel. (Aunque debe otorgarse un pequeño margen de maniobra si le pide a alguien que cree algo así como una plantilla de control "de corazón").
Realmente, hay mucho en WPF, y si no fuera por los foros de MSDN y los libros en profundidad sobre el tema, sería una 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 WPF de nivel de entrada, no esperaría ningún conocimiento de WPF per se, pero exigiría el conocimiento de los principios orientados a objetos, la separación de la interfaz de usuario de la lógica empresarial y la comodidad con un modelo de evento similar. La experiencia de diseñar elementos de la interfaz de usuario en un estilo similar a WPF (con contenedores DockPanel, etc.) es una ventaja.
Editar: También, lo que dijo Colin Mackay.
fuente
¿Qué pasa con la experiencia de programación / gráficos GUI en general y el conocimiento de cs? Si es para trabajos de tiempo completo, no importa en mi humilde opinión si el chico tiene que pasar los primeros meses aprendiendo WPF, si él (o ella) tiene una sólida formación.
fuente
Nivel Básico
Nivel medio
Mayor
fuente
fuente
Creo que preferiría un desarrollador que conociera a Blend . Él / Ella podría comunicarse fácilmente con el diseñador y también hacer algunas cosas básicas del diseñador más rápido que simplemente escribir en xaml.
La lista es interesante, tal vez los enlaces a los temas ayudarían.
Salud
fuente
Otra cosa realmente básica sería la diferencia entre las estrategias de enrutamiento de burbujas y túneles.
fuente
Nivel Básico
Mayor
fuente
Mediados o quizás mayores: WinForms y WPF InterOp.
fuente
Mediados o tal vez mayores
fuente
fuente
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.
fuente
Extendería la implementación de ClickOnce con la implementación de WPF en general, ya que es bueno conocer las limitaciones y peculiaridades de cada modelo (ClickOnce, XBAP, solo navegador). Sin embargo, colocarlo a nivel medio parece justo.
fuente
los estilos proporcionan un mecanismo para que pueda aplicar un tema en una aplicación y anular ese tema en aquellas instancias específicas donde lo desee. Los estilos se definen como recursos; de hecho, se definen dentro de la misma sección de su archivo XAML en el que se definen los recursos.
fuente
Coloque el selector de plantillas de datos: http://www.switchonthecode.com/tutorials/wpf-tutorial-how-to-use-a-datatemplateselector Gran ayuda con MVVM para intercambiar plantillas basadas en el valor.
fuente
Saber acerca de las pruebas unitarias y el efecto que tiene sobre cómo usa 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 tienen un problema.
fuente