.net - viaja - Preguntas de la entrevista: WPF Developer
fernanfloo viaja a colombia (20)
¿Qué deberían saber todos los desarrolladores de WPF?
Nivel de entrada
- Fuerte .NET 2.0 ¡Antecedentes 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
- Visual vs Logical tree?
- 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 - agregado por Carlo
- ¿Por qué Microsoft introdujo otro lenguaje de marcado?
- XAML
Nivel medio
- Eventos y comandos enrutados
- Convertidores - Agregado por Artur Carvalho
- ¿Explicar el motor de diseño de 2 pases de WPF?
- ¿Cómo implementar un panel?
- Interoperabilidad (WPF / WinForms)
- Blend / Cider - Agregado por a7an
- Animaciones y Storyboarding
- Despliegue ClickOnce
- Desollado / Tema
- Controles personalizados
- ¿Cómo pueden actualizar los hilos de trabajo 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 y CAG?
- ¿Cómo pueden actualizar los hilos de trabajo 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
- Pixel Shaders
- Propósito de Freezables
¿Alguna otra pregunta "trampa" para hacer?
¿Esperas que tu desarrollador de WPF sepa mezclar?
¿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.
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 de preguntas para principiantes. Sin saberlo, es difícil de creer que uno sea un verdadero desarrollador de WPF.
Extendería la implementación de ClickOnce con WPF Deployment 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.
Los estilos proporcionan un mecanismo para aplicar un tema en una aplicación y anular ese tema en las instancias específicas en las que lo desee. Los estilos se definen como recursos; de hecho, están definidos dentro de la misma sección de su archivo XAML en el que se definen los recursos.
Me sorprende que nadie haya mencionado el conocimiento básico 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.
Media o tal vez Senior
- Desollado / Tema
- Controles personalizados
Mid o quizás Senior: WinForms y WPF InterOp.
Muy buena lista en mi opinión.
Sin embargo, no haría preguntas difíciles en la entrevista. La entrevista proporciona suficiente estrés en sí misma, la pregunta engañosa puede confundir incluso a la persona altamente calificada.
Nivel de entrada
- Conocimiento en UX Design
- Conocimiento en unión declarativa para objetos comerciales
- Uso del comando
Mayor
- Optimización de recursos y ajuste de rendimiento
- Modularidad y Escalabilidad
- Asincronizar el modelo de programación
Otra cosa realmente básica sería la diferencia entre las estrategias de enrutamiento de burbujas y túneles.
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 falla 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 por qué 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.
Personalmente, me gustaría poner ''¿Cómo pueden los hilos de trabajo actualizar la interfaz de usuario'' justo debajo de 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 Blend. No me gusta especialmente Blend, así que estoy un poco parcial, pero las habilidades de Blend deberían ser agradables, creo.
Pondría vinculantes y convertidores en el nivel de entrada, ya que así es como pasas mucho tiempo en WPF.
Poner en selector de plantilla 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.
Saber acerca de las pruebas unitarias y el efecto que tiene en cómo usas WPF es una habilidad básica que pondría en Entry Level. 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.
Un desarrollador de WPF debe tener una firme comprensión de separar el 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 una tarea bastante básica para la mitad programador de nivel. (Aunque se debe conceder una pequeña cantidad de margen si se le pide a alguien que cree algo como una plantilla de control "de corazón").
En realidad, hay mucho en WPF, y si no fuera por los foros de MSDN y los 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 el conocimiento de los principios orientados a objetos, la separación de la IU de la lógica empresarial y la 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: También, lo que dijo Colin Mackay.
Nivel de entrada
- NOtification de cambio de propiedad (INotifyPropertyChange y ObservableCollection)
- ResourceDictionary
- UserControls
Nivel medio
- Mezcla / Sidra
- animaciones y storyboard
- Despliegue ClickOnce
Mayor
- WPF 3D
- Diferencias entre Silverlight 2 y WPF
- MVVM / MVP
- Ajuste de rendimiento de WPF
- Pixel Shaders
- ¿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?
- Conversores (simple y múltiple).
- 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.
Aclamaciones
- DataTemplate vs HierarchicalDataTemplate
- ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
- Diferentes tipos de disparadores
- Cómo hacer animaciones a través de StoryBoards