면접 질문 : WPF 개발자 [폐쇄]


182

모든 WPF 개발자는 무엇을 알아야합니까?

입문 단계

  • 강력한 .NET 2.0 배경 & 배우려는 의지!
  • 종속성 속성을 설명 하시겠습니까?
  • 스타일이 뭐야?
  • 템플릿이란 무엇입니까?
  • 제본
  • 기본 클래스의 차이점 : Visual, UIElement, FrameworkElement, Control
  • 비주얼 트리와 로직 트리?
  • 속성 변경 알림 (INotifyPropertyChange 및 ObservableCollection)
  • ResourceDictionary-추가 한 a7an
  • UserControls-a7an에 의해 추가됨
  • 거품과 터널 라우팅 전략의 차이점-Carlo 추가
  • Microsoft가 또 다른 마크 업 언어를 도입 한 이유는 무엇입니까?
  • XAML

중급

  • 라우트 된 이벤트 및 명령
  • 변환기-Artur Carvalho에 의해 추가됨
  • WPF의 2 패스 레이아웃 엔진을 설명 하시겠습니까?
  • 패널을 구현하는 방법?
  • 상호 운용성 (WPF / WinForms)
  • 블렌드 / 사이다 -추가 a7an
  • 애니메이션과 스토리 보드
  • ClickOnce 배포
  • 스키닝 / 테마
  • 맞춤형 컨트롤
  • 작업자 스레드가 UI를 어떻게 업데이트 할 수 있습니까?
  • DataTemplate 및 계층 적 DataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • 다양한 유형의 트리거

연장자

  • 첨부 된 행동의 예?
  • PRISM, CAL & CAG 란 무엇입니까?
  • 작업자 스레드가 UI를 어떻게 업데이트 할 수 있습니까?
  • WPF 3D-추가 a7an
  • Silverlight 2와 WPF의 차이점
  • MVVM / MVP-추가 한 a7an
  • WPF 성능 조정
  • 픽셀 쉐이더
  • Freezables의 목적

다른 "트릭" 질문이 있습니까?

WPF 개발자가 블렌드를 알고 있습니까?


13
"Strong .NET 2.0 배경"에 동의하지 않습니다. 실제로 WPF는 .NET 2.0과 다른 많은 작업을 수행하며 실제로 WPF를 더 적게
익히면

28
이 주제들 각각을 가리키는 일부 링크는 어떻습니까!
Binoj Antony

16
나는 이것이 "엔트리 레벨"에 대한 꽤 높은 바라고 생각합니다. 직업 위치가 "진입 수준"으로 설명되면 표준을 충족시킬 수있는 많은 사람들을 얻지 못할 것입니다. 확실히 알아야 할 것이지만 대부분의 사람들이 "항목 수준"이라고 부르는 것은 아닙니다.
Beska

1
나는 "프리즈 어블의 목적"을 선배라고 부르지 않을 것이다. 그리고 만약 당신이 미드 레벨에서 스레딩에 대해 이야기한다면, 프리즈 어블이 속한 곳이다. MVVM / MVP도 특히 복잡하지도 않습니다.
Eamon Nerbonne

4
이 목록은 그래픽 / UI 디자인 측면과 기술 디자인 측면을위한 두 가지로 나누어야한다고 생각합니다. UI 디자이너는 표현식 블렌드를 사용하는 방법을 알고 있어야하지만 디자인 가능한 사용자 컨트롤 뒤의 코딩과 같은 기술적 인 세부 사항에 대해서는 많이 알 필요가 없습니다. 프로그래머는 디자인 가능한 컨트롤을 만드는 방법을 알아야하지만 표현식 블렌드를 사용할 필요는 없습니다 (VS의 xaml 디자이너는 UI 디자이너가 예쁘게 만들 때까지 충분해야합니다).
브라이언 라이 클

답변:


41

아직 XAML에 대한 기본 지식을 언급 한 사람이 아무도 없습니다. XAML이 무엇인지 알고 그래픽 디자인 도구가 아닌 XAML을 사용하여 기본 편집을 수행 할 수 있습니다. 중급 개발자는 XAMLPad와 같은 도구를 사용하여 양식 / 그래픽 프로토 타입을 사용할 수 있어야합니다.


34

개인적으로 나는 표준 개발자 빌드 머신 앞에 앉아 작업을 완료하도록 요청합니다. 의문의 여지없이 몇 시간 후에 (또는 작업이 더 길면 더 많은 코드) 코드가 무엇인지 확인하십시오.

실제 실제 프로그래밍 테스트 결과를 기반으로 채용 결정을 내리는 데 실패율이 0이었습니다.

작업이 너무 어려울 필요는 없습니다. 데이터베이스 나 XML 파일에 보관 된 메시지와 간단한 사용자 인터페이스로 과거의 간단한 응용 프로그램을 사용했습니다. 그들에게 잘 구조화하도록 요청하십시오 (작업이 충분히 작아서 한 클래스에서 모두 기울일 수 있다고 생각할 수 있기 때문에).

위의 질문 중 나는 당신이 그들이 실제로 좋은지 아닌지에 대한 좋은 아이디어를 얻을 수 없다고 말하고 싶습니다. 잠재적 인 candicate는 실제로 이것들을 읽고 훌륭하게 들리는 통조림 된 답변을 만들 수 있습니다. 이 모든 쇼는 응시자가 대화 할 수 있다는 것입니다. 그러나 직업 자체에서 중요한 것은 그들이 걸을 수있는 것입니다.


4
전적으로 동의하는 것이 아니라 사람들이 일을하게 만듭니다. @Colin, 철자에 대한 당신의 도움 (자기 진단 앱 질문) 후에 나는 당신을 4 자리 숫자 영역으로 찬성해야했습니다. :)
raoulsson

argh, 오타, 나는 의미, 재미있다 :)
raoulsson

나는 부분적으로 당신에 동의하지만, 시간은 프로세스를 소비하고, 구술 질문가는 더 많은 시간을 소비합니다. 물론, 이런 식으로 올바른 후보자를 선택하게됩니다.
Mohanavel

1
어떤 부분에 동의하지 않습니까?
Colin Mackay

1
또한 위의 질문을 "모든 WPF 개발자가 알아야 할"것으로 가정하는 것은 비현실적이라고 생각합니다. 그것들은 일반적인 이야기 포인트와 비슷합니다. 어려운 전제 조건이 아닙니다.
Eamon Nerbonne

23

바인딩과 변환기를 엔트리 레벨에 두었습니다. WPF에서 많은 시간을 소비하는 방식이기 때문입니다.


19

내 의견으로는 꽤 좋은 목록입니다.
그러나 나는 인터뷰에 까다로운 질문을 하지 않을 것 입니다. 인터뷰는 충분한 스트레스 자체를 제공하며, 트릭 질문은 숙련 된 사람조차도 혼란스럽게 할 수 있습니다.


9
나는 인터뷰의 요점은 ... 동료를 넘어 뜨리지 않기 위해 평가하는 것에 동의한다.
cplotts

나는 이것에 동의하지 않는다. IMO 프로그래머는 인터뷰보다 훨씬 나쁜 힘든 일을 처리해야한다. 따라서 까다로운 질문은 프로그래머가 스트레스를받는 문제를 어떻게 해결하는지 알 수 있습니다. 단순한 "모름"은 먼 길을 간다.
Artur Carvalho

15

개인적으로, 나는 엔트리 레벨 바로 아래에 '워커 스레드가 UI를 업데이트하는 방법'을 넣었습니다. 정말로 필요한 경우 중간 수준. 엔트리 레벨 프로그래머가 논리 트리와 비주얼 트리의 차이점을 이해할 수 있으면 백그라운드 스레드에서 UI를 업데이트하는 방법을 이해해야합니다.

우리 조직에서는 Blend없이 많은 WPF 개발을 수행합니다. 나는 특히 블렌드를 좋아하지 않기 때문에 약간 편견이 있지만 블렌드 기술은 훌륭해야한다고 생각합니다.


9

WPF 개발자는 XAML을 코드 숨김에서 분리하는 데 대한 확실한 이해가 있어야하며 해당 선을 그릴 위치를 길게 논의 할 수 있어야합니다.

선택한 언어로 모델을 설정 한 다음 XAML을 사용하여 데이터 바인딩, 데이터 템플릿, 컨트롤 템플릿, 스타일, 트리거, 값 변환기 및 UserControls를 통해 해당 모델에 대한 뷰를 표시하는 것은 중급에게는 매우 기본적인 작업입니다. 레벨 프로그래머. (다른 사람에게 "심장에서"컨트롤 템플릿과 같은 것을 만들도록 요청하는 경우 소량의 여유가 부여되어야합니다.)

실제로 WPF 에는 많은 것이 있으며 , MSDN 포럼과 주제에 대한 심층적 인 책이 아니라면 "그냥 집어 올리는"것이 매우 중요합니다. 이런 이유로, 나는 인내심과 다른 사람들로부터 배울 수있는 능력을 모든 수준의 최고 요구 사항으로 평가할 것입니다.

엔트리 레벨 WPF 프로그래머에게는 WPF 자체에 대한 지식이 필요하지 않지만 객체 지향 원칙, UI와 비즈니스 로직 분리 및 유사한 이벤트 모델의 편안함에 대한 지식이 필요합니다. WPF와 유사한 스타일 (DockPanel 컨테이너 등)로 UI 요소를 배치하는 경험이 더해집니다.

편집 : 또한 Colin Mackay가 말한 것.


8

일반적인 GUI 프로그래밍 / 그래픽 경험과 CSS 지식은 어떻습니까? 풀 타임 직업이라면, 그 사람이 강한 배경을 가지고 있다면 WPF를 배우는 데 처음 몇 달을 보낸다면 IMHO는 중요하지 않습니다.


7

입문 단계

  • 속성 변경 NOtification (INotifyPropertyChange 및 ObservableCollection)
  • 리소스 사전
  • UserControls

중급

  • 블렌드 / 사이다
  • 애니메이션과 스토리 보드
  • ClickOnce 배포

연장자

  • WPF 3D
  • Silverlight 2와 WPF의 차이점
  • MVVM / MVP
  • WPF 성능 조정
  • 픽셀 쉐이더

7
  • 스레드와 디스패처의 관계는 무엇입니까?
  • Freezables의 목적은 무엇입니까?
  • 속성과 종속성 속성의 차이점은 무엇입니까? 왜 서로를 사용합니까?

5
  • 변환기 (단순 및 다중).
  • 상호 운용성

블렌드를 아는 개발자를 선호한다고 생각합니다 . 그는 xaml로 작성하는 것보다 디자이너와 쉽게 의사 소통하고 기본적인 디자이너 작업을 더 빠르게 수행 할 수있었습니다.

이 목록은 흥미 롭습니다. 주제에 대한 링크가 도움이 될 것입니다.

건배


4

또 다른 기본 사항은 버블 라우팅 전략과 터널 라우팅 전략의 차이입니다.


3

입문 단계

  • UX 디자인 지식
  • 비즈니스 오브젝트에 대한 선언적 바인딩 지식
  • 명령 사용법

연장자

  • 자원 최적화 및 성능 조정
  • 모듈성 및 확장 성
  • 프로그래밍 모델 비동기


2

중반 또는 수석

  • 스키닝 / 테마
  • 맞춤형 컨트롤

2
  • DataTemplate 및 계층 적 DataTemplate
  • ItemsControl vs ItemsPresenter vs ContentControl vs ContentPresenter
  • 다양한 유형의 트리거
  • 스토리 보드를 통해 애니메이션을 수행하는 방법

1

작성부터 런타임까지 WPF 응용 프로그램의 수명주기가 초보자 수준의 질문에 포함되어야한다고 생각합니다. 그것을 모른 채 믿기 어려운 것은 실제 WPF 개발자입니다.


나는 당신이 여기서 무엇을 의미하는지 전혀 모른다.
cplotts

그가 이것을 의미한다고 생각합니다 : msdn.microsoft.com/en-us/library/ms754221.aspx
HappyNomad

1

각 모델의 제한 사항과 특성 (ClickOnce, XBAP, 브라우저 만 해당)을 아는 것이 좋기 때문에 WPF 배포를 사용하여 ClickOnce 배포를 일반적으로 확장했습니다. 그러나 중간 수준에 배치하는 것은 공정한 것 같습니다.


1

스타일은 응용 프로그램 전체에 테마를 적용하고 원하는 특정 인스턴스에서 해당 테마를 재정의하는 메커니즘을 제공합니다. 스타일은 리소스와 같이 정의됩니다. 실제로 리소스가 정의 된 XAML 파일의 동일한 섹션 내에 정의되어 있습니다.



1

단위 테스트와 WPF 사용 방식에 미치는 영향에 대해 아는 것은 엔트리 레벨에 놓을 수있는 기본 기술입니다. 사람들은 세부 사항을 배울 수 있지만 소프트웨어 디자인의 기본 사항에 대해 생각하지 않으면 문제가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.