Röportaj soruları: WPF Developer [kapalı]


182

Her WPF geliştiricisi ne bilmeli?

Giriş Seviyesi

  • Güçlü .NET 2.0 Arka plan ve öğrenmek için istekli!
  • Bağımlılık özelliklerini açıklamak?
  • Stil nedir?
  • Şablon nedir?
  • bağlayıcı
  • Temel sınıflar arasındaki farklar: Visual, UIElement, FrameworkElement, Control
  • Görsel mi Mantıksal ağaç mı?
  • Özellik Değişikliği Bildirimi (INotifyPropertyChange ve ObservableCollection)
  • ResourceDictionary - a7an tarafından eklendi
  • UserControls - a7an tarafından eklendi
  • ve tünel yönlendirme stratejileri arasındaki fark - Carlo tarafından eklendi
  • Microsoft neden başka bir biçimlendirme dili tanıttı?
  • XAML

Orta seviye

  • Yönlendirilmiş Olaylar ve Komutlar
  • Dönüştürücüler - Artur Carvalho tarafından eklendi
  • WPF'nin 2 geçişli düzen motorunu açıklamak ister misiniz?
  • Panel nasıl uygulanır?
  • Birlikte Çalışabilirlik (WPF / WinForms)
  • Karışım / Elma şarabı - a7an tarafından eklendi
  • Animasyonlar ve Görsel Anlatım
  • ClickOnce Dağıtımı
  • Stiller / themeing
  • Özel Kontroller
  • Çalışan iş parçacıkları kullanıcı arayüzünü nasıl güncelleyebilir?
  • DataTemplate ve HiyerarşikVeriTemplate
  • ItemControl ve ItemsPresenter ve ContentControl ve ContentPresenter karşılaştırması
  • Farklı Tetikleyici türleri

kıdemli

  • Ekli davranış örneği?
  • PRISM, CAL & CAG nedir?
  • Çalışan iş parçacıkları kullanıcı arayüzünü nasıl güncelleyebilir?
  • WPF 3D - a7an tarafından eklendi
  • Silverlight 2 ve WPF arasındaki farklar
  • MVVM / MVP - a7an tarafından eklendi
  • WPF Performans ayarı
  • Piksel Gölgelendiricileri
  • Dondurucuların Amacı

Başka "hile" soruları sormaya?

WPF geliştiricinizin karışımı bilmesini bekliyor musunuz?


13
Ben "Güçlü .NET 2.0 Arka Plan" katılmıyorum .. Aslında WPF .NET 2.0 farklı bir çok şey yapar ve daha az bilmek aslında WPF daha hızlı usta sağlar ...
Arcturus

28
Bu konuların her birine işaret eden bazı bağlantılara ne dersiniz?
Binoj Antony

16
Bu "giriş seviyesi" için oldukça yüksek bir bar olduğunu düşünüyorum. İş pozisyonu "giriş seviyesi" olarak tanımlanırsa, standardınızı karşılayabilecek çok sayıda (hiç) kişi bulamayacağınıza bahse girerim. Bilmek için iyi şeyler kesinlikle, ama çoğu insanın "giriş seviyesi" dediği şey değil.
Beska

1
"Dondurucuların amacı" için üst düzey bir şey demezdim - ve orta düzeydeki iplikler hakkında konuşacaksanız, dondurucuların ait olduğu yer burasıdır. MVVM / MVP de özellikle karmaşık veya gizli değildir.
Eamon Nerbonne

4
Bu listelerin biri grafik / UI tasarım tarafı diğeri de teknik tasarım tarafı için ikiye bölünmesi gerektiğini düşünüyorum. UI tasarımcısı muhtemelen ifade karışımının nasıl kullanılacağını bilmelidir, ancak tasarlanabilir bir kullanıcı kontrolünün arkasındaki kodlama gibi destek teknik ayrıntılarıyla ilgili çok fazla bilgi sahibi olmak zorunda değildir. Programcı, tasarlanabilir bir kontrolün nasıl oluşturulacağını bilmelidir, ancak ifade karışımını kullanmasına gerek yoktur (VS'deki xaml tasarımcısı, UI tasarımcısı bunu güzelleştirene kadar yeterli olmalıdır).
Brian Reichle

Yanıtlar:


41

Henüz kimsenin XAML hakkında temel bilgilerden bahsetmediğine şaşırdım. XAML'in ne olduğunu bilmek ve grafiksel bir tasarım aracı yerine XAML kullanarak bazı temel düzenleme yapabilmek. Orta düzey geliştiriciler, XAMLPad gibi bir araç kullanarak form / grafik prototipleri kullanabilmelidir.


34

Şahsen onları standart bir geliştirici yapı makinesinin önüne oturttum ve bir işi tamamlamalarını istedim. Soru yok, sadece birkaç saat sonra kodlarının nasıl olduğunu görün (veya görev daha uzunsa daha fazla).

Gerçek bir gerçek yaşam programlama testinin sonuçlarına göre işe alma kararı verme konusunda sıfır başarısızlık oranım oldu.

Görev çok zor olmak zorunda değil. Bir veritabanı veya XML dosyasında tutulan mesajlar ve basit bir kullanıcı arayüzü ile geçmişte günlük uygulamanın basit bir mesajını kullandım. Onları iyi yapılandırmalarını istediğinizden emin olun (görev, dahil olduklarını hissettiklerinde hepsinin bir sınıfta yapılabileceği kadar küçük olduğundan).

Yukarıdaki sorulardan, gerçekten iyi olup olmadıklarına dair iyi bir fikre sahip olamayacağınızı söyleyebilirim. Potansiyel bir kandil aslında bunları okuyabilir ve kulağa harika gelen hazır cevaplar oluşturabilir. Tüm bu gösteriler, adayın konuşarak konuşabileceği, ancak işin kendisinde önemli olan, yürüyebiliyorsa.


4
Tamamen katılıyorum, sadece bir şeyler yapmakla kalmıyor, insanların bir şeyler yapmasını sağlıyor. @Colin, yazım (kendi kendine teşhis uygulaması soruları) yardım sonra sadece 4 basamak alem için upvote vardı .... Bu arada, orada bir türü var: yerine doen. :)
raoulsson

argh, yazım hatası, demek istediğim, komik :)
raoulsson

Sana kısmen katılıyorum, ancak zaman tüketen süreç, hatta sözlü sorgulayıcı bile daha fazla zaman alıyor. Tabii ki, bu yol doğru adayı seçmeye yol açar.
Mohanavel

1
Peki hangi tarafa katılmıyorsunuz?
Colin Mackay

1
Yukarıdaki soruları "her WPF geliştiricisinin bilmesi gerektiğini" varsaymanın gerçekçi olmadığını düşünüyorum. Daha çok genel konuşma noktaları gibidirler; zor şartlar değil.
Eamon Nerbonne

23

Giriş seviyesinde ciltleme ve dönüştürücüler koyardım, çünkü WPF'de çok fazla zaman geçiriyorsunuz.


19

Bence oldukça iyi bir liste.
Ancak röportajda zor sorular sormazdım . Röportaj yeterince stres verir, hile sorusu yüksek vasıflı insanı bile karıştırabilir.


9
Katılıyorum ... Bir röportajın amacı değerlendirmektir ... adamı yukarı atmamak.
cplotts

Buna katılmıyorum, IMO bir programcı zor şeyleri ele almalı, röportajlardan çok daha kötü. Bu yüzden zor bir soru, programcının stres altındaki bir sorunu nasıl çözdüğünü görmek iyidir. Basit bir "Bilmiyorum" çok yol kat ediyor.
Artur Carvalho

15

Şahsen, 'işçi iş parçacığı kullanıcı arayüzünü nasıl güncelleyebilir' giriş seviyesinin altına koyulur. Gerçekten ihtiyacınız varsa orta seviye. Giriş seviyesi bir programcı mantıksal ağaç ile görsel ağaç arasındaki farkı anlayabiliyorsa, bir arka plan iş parçacığından kullanıcı arayüzünün nasıl güncelleneceğini anlamalıdır.

Kuruluşumda, Blend olmadan birçok WPF geliştirme yapıyoruz. Özellikle Blend'i sevmiyorum, bu yüzden biraz önyargılıyım, ancak Blend becerileri olması güzel olmalı.


9

Bir WPF geliştiricisi, XAML'yi arkadaki koddan ayırmak için sağlam bir kavrayışa sahip olmalı ve bu hattın çizileceği yeri uzun süre tartışabilmelidir.

Seçtiği dilde bir model oluşturabilmek ve daha sonra veri bağlama, veri şablonları, kontrol şablonları, stiller, tetikleyiciler, değer dönüştürücüler ve UserControls aracılığıyla bu modelin görünümlerini görüntülemek için XAML kullanmak, orta için oldukça temel bir görevdir. seviyeli programcı. (Yine de, birisinden "yürekten" kontrol şablonu gibi bir şey yaratmasını istiyorsa az miktarda boşluk verilmelidir.)

Gerçekten, WPF'de çok şey var ve bu konu hakkındaki MSDN forumları ve derinlemesine kitaplar için olmasaydı, "sadece almak" için oldukça görev olurdu. Bu nedenle, azim ve başkalarından öğrenme yeteneğini herhangi bir seviye için en üst şart olarak değerlendiririm.

Giriş seviyesi bir WPF programcısı için, WPF hakkında herhangi bir bilgi beklemiyordum, ancak nesne odaklı ilkeler, UI'nin iş mantığından ayrılması ve benzer bir olay modeliyle rahatlık bilgisi talep ediyorum. UI öğelerini WPF'ye (DockPanel kapları vb. İle) benzer bir tarzda yerleştirme deneyimi bir artıdır.

Düzenleme: Ayrıca, Colin Mackay ne dedi.


8

Genel olarak GUI programlama / grafik deneyimi ve cs bilgisi ne olacak? Eğer tam zamanlı bir iş içinse, adamın ilk birkaç ayı WPF öğrenerek biraz zaman geçirmesi gerekiyorsa, önemli bir arka plana sahip olması önemli değildir.


7

Giriş Seviyesi

  • Özellik Değişikliği Bildirimi (INotifyPropertyChange ve ObservableCollection)
  • ResourceDictionary
  • UserControls

Orta seviye

  • Blend / Cider
  • animasyonlar ve film şeridi
  • ClickOnce Dağıtımı

kıdemli

  • WPF 3D
  • Silverlight 2 ve WPF arasındaki farklar
  • MVVM / MVP
  • WPF Performans ayarı
  • Piksel Gölgelendiricileri

7
  • İleti dizileri ve Sevk görevlileri arasındaki ilişki nedir?
  • Dondurucuların amacı nedir?
  • Özellikler ve Bağımlılık Özellikleri arasındaki fark nedir? Neden birini veya diğerini kullanıyorsunuz?

5
  • Dönüştürücüler (basit ve çoklu).
  • Birlikte çalışabilirlik.

Ben bilemez bir dev tercih edeceğini düşünüyorum Blend . Tasarımcı ile kolayca iletişim kurabilir ve bazı temel tasarımcı şeylerini sadece xaml'de yazmaktan daha hızlı yapabilir.

Liste ilginç, belki konulara bağlantılar yardımcı olacaktır.

Şerefe


4

Başka bir temel şey, kabarcık ve tünel yönlendirme stratejileri arasındaki fark olacaktır.


3

Giriş Seviyesi

  • UX Tasarımında Bilgi
  • Ticari nesneler için Beyan Bağlayıcı bilgisi
  • Komut kullanımı

kıdemli

  • Kaynak optimizasyonu ve Performans ayarlama
  • Modülerlik ve Ölçeklenebilirlik
  • Asenkronize Programlama Modeli


2

Orta veya Belki Kıdemli

  • Stiller / themeing
  • Özel Kontroller

2
  • DataTemplate ve HiyerarşikVeriTemplate
  • ItemControl ve ItemsPresenter ve ContentControl ve ContentPresenter karşılaştırması
  • Farklı Tetikleyici türleri
  • StoryBoards aracılığıyla Animasyonlar nasıl yapılır


1

Her modelin sınırlamalarını ve özelliklerini (yalnızca ClickOnce, XBAP, tarayıcı) bilmek iyi olduğu için, genel olarak WPF Dağıtımı ile ClickOnce dağıtımını genişletirim. Orta seviyeye yerleştirmek adil görünüyor.


1

stiller, bir uygulamaya bir tema uygulamanız ve istediğiniz belirli durumlarda bu temayı geçersiz kılmanız için bir mekanizma sağlar. Stiller kaynaklar gibi tanımlanır; aslında, XAML dosyanızın kaynakların tanımlandığı aynı bölümde tanımlanırlar.



1

Birim testi ve WPF'yi nasıl kullandığınız üzerindeki etkisini bilmek Giriş Seviyesinde koyacağım temel bir beceridir. İnsanlar ayrıntıları öğrenebilirler, ancak yazılım tasarımının temellerini düşünmediyse bir sorununuz var demektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.