O que todo desenvolvedor de WPF deve saber?
Nível de entrada
- Forte .NET 2.0 Background e disposto a aprender!
- Explicar propriedades de dependência?
- O que é um estilo?
- O que é um modelo?
- Obrigatório
- Diferenças entre classes base: Visual, UIElement, FrameworkElement, Control
- Árvore Visual vs Lógica?
- Notificação de alteração de propriedade (INotifyPropertyChange e ObservableCollection)
- ResourceDictionary - Adicionado por a7an
- UserControls - Adicionado por a7an
- diferença entre estratégias de roteamento de bolhas e túneis - adicionada por Carlo
- Por que a Microsoft introduziu outra linguagem de marcação?
- XAML
Nível médio
- Eventos e comandos roteados
- Conversores - Adicionado por Artur Carvalho
- Explique o mecanismo de layout de 2 passagens do WPF?
- Como implementar um painel?
- Interoperabilidade (WPF / WinForms)
- Blend / Cider - Adicionado por a7an
- Animações e Storyboarding
- Implantação ClickOnce
- Skinning / Themeing
- Controles personalizados
- Como os threads de trabalho podem atualizar a interface do usuário?
- DataTemplate vs HierarchicalDataTemplate
- ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
- Diferentes tipos de gatilhos
Senior
- Exemplo de comportamento em anexo?
- O que é PRISM, CAL & CAG?
- Como os threads de trabalho podem atualizar a interface do usuário?
- WPF 3D - Adicionado por a7an
- Diferenças entre o Silverlight 2 e o WPF
- MVVM / MVP - Adicionado por a7an
- Ajuste de desempenho do WPF
- Pixel Shaders
- Objetivo dos Freezables
Alguma outra pergunta "enganosa" a ser feita?
Você espera que o desenvolvedor do WPF conheça a mistura?
Respostas:
Estou surpreso que ninguém tenha mencionado o conhecimento básico de XAML ainda. Saber o que é XAML e a capacidade de fazer algumas edições básicas usando XAML em vez de uma ferramenta de design gráfico. Os desenvolvedores de nível intermediário devem poder exibir protótipos de formulário / gráfico usando uma ferramenta como o XAMLPad.
fonte
Pessoalmente, eu os sentava na frente de uma máquina de compilação de desenvolvedor padrão e solicitava que concluíssem alguma tarefa. Sem perguntas, basta ver como é o código depois de algumas horas (ou mais, se a tarefa for mais longa).
Eu tive uma taxa de falha zero ao tomar uma decisão de contratação com base nos resultados de um teste real de programação da vida real.
A tarefa não precisa ser muito difícil. Eu usei uma aplicação simples de mensagem do dia no passado, com as mensagens mantidas em um banco de dados ou arquivo XML e em uma interface de usuário simples. Certifique-se de pedir-lhes para estruturá-lo bem (como a tarefa é suficientemente pequena para que tudo possa ser realizado em uma classe, caso se sintam inclinados).
Das perguntas acima, eu diria que você não pode ter uma boa idéia se elas são realmente boas ou não. Um candidato em potencial poderia realmente apenas ler estes e criar respostas enlatadas que soam ótimas. Tudo isso mostra que o candidato pode conversar, mas o que importa no trabalho em si é se ele pode caminhar.
fonte
Eu colocaria a ligação e os conversores no nível de entrada, pois é assim que você passa muito tempo no WPF.
fonte
Lista muito boa na minha opinião.
No entanto, eu não faria perguntas complicadas na entrevista. Entrevista dá bastante estresse em si, uma questão complicada pode confundir até pessoas altamente qualificadas.
fonte
Pessoalmente, eu colocava 'Como os threads de trabalho podem atualizar a interface do usuário' logo abaixo do nível de entrada. Nível intermediário, se você realmente precisar. Se um programador de nível de entrada puder entender a diferença entre a árvore lógica e a árvore visual, deverá entender como atualizar a interface do usuário a partir de um encadeamento em segundo plano.
Na minha organização, desenvolvemos muito o WPF sem o Blend. Eu não gosto particularmente do Blend, então sou um pouco tendencioso, mas acho que as habilidades do Blend devem ser boas.
fonte
Um desenvolvedor de WPF deve ter uma idéia firme de separar o XAML do code-behind e ser capaz de discutir detalhadamente onde essa linha deve ser desenhada.
Ser capaz de configurar um modelo no idioma de sua escolha e usar o XAML para exibir visualizações nesse modelo por meio de ligação de dados, modelos de dados, modelos de controle, estilos, gatilhos, conversores de valor e UserControls é uma tarefa bastante básica para os meados de programador (Embora uma pequena quantidade de margem de manobra deva ser concedida se pedir a alguém para criar algo como um modelo de controle "de coração").
Realmente, há muito no WPF e, se não fosse pelos fóruns do MSDN e pelos livros detalhados sobre o assunto, seria uma tarefa bastante "apenas buscá-lo". Por esse motivo, classificaria a perseverança e a capacidade de aprender com os outros como um requisito máximo para qualquer nível.
Para um programador WPF de nível básico, eu não esperaria nenhum conhecimento do WPF por si só, mas exigiria conhecimento de princípios orientados a objetos, separação da interface do usuário da lógica de negócios e conforto com um modelo de evento semelhante. Experiência no layout de elementos da interface do usuário em um estilo semelhante ao WPF (com contêineres do DockPanel etc.) é uma vantagem.
Edit: Além disso, o que Colin Mackay disse.
fonte
E a experiência de programação / gráficos da GUI em geral e no conhecimento de cs? Se é para um emprego em período integral, não importa o IMHO se o cara tiver que passar os primeiros meses algum tempo aprendendo o WPF, se ele (ou ela) tem uma sólida formação.
fonte
Nível de entrada
Nível médio
Senior
fonte
fonte
Eu acho que preferiria um desenvolvedor que conhecesse o Blend . Ele / ela poderia se comunicar facilmente com o designer e também fazer algumas coisas básicas do designer mais rapidamente do que apenas escrever em xaml.
A lista é interessante, talvez links para os tópicos ajudem.
Felicidades
fonte
Outra coisa realmente básica seria a diferença entre as estratégias de roteamento de bolha e túnel.
fonte
Nível de entrada
Senior
fonte
Mid ou talvez Senior: WinForms e WPF InterOp.
fonte
Médio ou talvez Sênior
fonte
fonte
Acho que o ciclo de vida do aplicativo WPF - da criação ao tempo de execução deve ser incluído no nível Iniciante das perguntas. Sem saber, é difícil acreditar que alguém seja um verdadeiro desenvolvedor do WPF.
fonte
Eu estenderia a implantação do ClickOnce com a implantação do WPF em geral, já que é bom conhecer as limitações e peculiaridades de cada modelo (ClickOnce, XBAP, somente navegador). Colocá-lo no nível médio parece justo.
fonte
Os estilos fornecem um mecanismo para você aplicar um tema em um aplicativo e substituí-lo nas instâncias específicas em que deseja. Estilos são definidos como recursos; de fato, eles são definidos na mesma seção do seu arquivo XAML na qual os recursos são definidos.
fonte
Coloque no seletor de modelo de dados: http://www.switchonthecode.com/tutorials/wpf-tutorial-how-to-use-a-datatemplatesplatesector Grande ajuda do MVVM para trocar modelos com base no valor.
fonte
Saber sobre o teste de unidade e o efeito que ele tem sobre como você usa o WPF é uma habilidade básica que eu colocaria no nível básico. As pessoas podem aprender os detalhes, mas se não tiverem pensado no básico do design de software, você terá um problema.
fonte