Câu hỏi phỏng vấn: Nhà phát triển WPF [đã đóng]


182

Mọi nhà phát triển WPF nên biết gì?

Nhập cảnh

  • Nền tảng .NET 2.0 mạnh mẽ và sẵn sàng học hỏi!
  • Giải thích tính chất phụ thuộc?
  • Phong cách là gì?
  • Mẫu nào?
  • Ràng buộc
  • Sự khác nhau giữa các lớp cơ sở: Visual, UIE bổ sung, FrameworkEuity, Control
  • Visual vs cây logic?
  • Thông báo thay đổi thuộc tính (INotifyPropertyChange và ObservableCollection)
  • ResourceDixi - Được thêm bởi a7an
  • UserControls - Được thêm bởi a7an
  • sự khác biệt giữa các chiến lược định tuyến bong bóng và đường hầm - được thêm bởi Carlo
  • Tại sao Microsoft giới thiệu một ngôn ngữ đánh dấu khác?
  • XAML

Mức giữa

  • Sự kiện & Lệnh được định tuyến
  • Bộ chuyển đổi - Được thêm bởi Artur Carvalho
  • Giải thích công cụ bố trí 2-pass của WPF?
  • Làm thế nào để thực hiện một bảng điều khiển?
  • Khả năng tương tác (WPF / WinForms)
  • Blend / Cider - Được thêm bởi a7an
  • Hoạt hình và Storyboarding
  • Triển khai ClickOnce
  • Lột da / Chủ đề
  • Điều khiển tùy chỉnh
  • Làm thế nào chủ đề công nhân có thể cập nhật giao diện người dùng?
  • DataTemplate vs HVELicalDataTemplate
  • MụcControl vs ItemPresenter vs ContentControl vs ContentPresenter
  • Các loại kích hoạt khác nhau

Cao cấp

  • Ví dụ về hành vi kèm theo?
  • PRISM, CAL & CAG là gì?
  • Làm thế nào chủ đề công nhân có thể cập nhật giao diện người dùng?
  • WPF 3D - Được thêm bởi a7an
  • Sự khác biệt giữa Silverlight 2 và WPF
  • MVVM / MVP - Được thêm bởi a7an
  • Điều chỉnh hiệu suất WPF
  • Pixel Shader
  • Mục đích của Freezables

Bất kỳ câu hỏi "lừa" nào khác để hỏi?

Bạn có mong đợi nhà phát triển WPF của bạn biết pha trộn?


13
Tôi không đồng ý với "Nền tảng .NET 2.0 mạnh" .. Thật ra WPF làm rất nhiều thứ khác với .NET 2.0 và việc biết ít hơn thực sự cho phép bạn thành thạo WPF nhanh hơn ...
Arcturus

28
Làm thế nào về một số liên kết chỉ đến từng chủ đề này là tốt!
Binoj Antony

16
Tôi nghĩ rằng đây là một thanh khá cao cho "cấp nhập cảnh". Tôi cá rằng nếu vị trí công việc được mô tả là "cấp nhập cảnh", bạn sẽ không có nhiều (bất kỳ) người nào có thể đáp ứng tiêu chuẩn của bạn. Những điều tốt để biết, chắc chắn, nhưng không phải là những gì hầu hết mọi người sẽ gọi là "cấp nhập cảnh."
Beska

1
Tôi sẽ không gọi "mục đích của tủ lạnh" một cái gì đó cao cấp - và nếu bạn sẽ nói về việc xâu chuỗi ở cấp độ trung bình, thì đó là nơi mà các thiết bị đóng băng thuộc về. MVVM / MVP cũng không đặc biệt phức tạp và phức tạp.
Eamon Nerbonne

4
Tôi nghĩ các danh sách này nên được chia làm hai, một cho bên thiết kế đồ họa / UI và một cho bên thiết kế kỹ thuật. Nhà thiết kế giao diện người dùng có lẽ nên biết cách sử dụng biểu thức pha trộn nhưng không cần biết nhiều về chi tiết kỹ thuật sao lưu như mã hóa đằng sau một điều khiển người dùng có thể thiết kế. Lập trình viên cần biết cách tạo một điều khiển có thể thiết kế nhưng không cần sử dụng biểu thức pha trộn (trình thiết kế xaml trong VS phải đủ cho đến khi trình thiết kế UI có thể làm cho nó đẹp).
Brian Reichle

Câu trả lời:


41

Tôi ngạc nhiên không ai đề cập đến kiến ​​thức cơ bản về XAML. Biết XAML là gì và khả năng thực hiện một số chỉnh sửa cơ bản bằng XAML chứ không phải là một công cụ thiết kế đồ họa. Các nhà phát triển cấp trung sẽ có thể loại bỏ các nguyên mẫu hình thức / đồ họa bằng cách sử dụng một công cụ như XAMLPad.


34

Cá nhân tôi sẽ ngồi xuống trước một máy xây dựng nhà phát triển tiêu chuẩn và yêu cầu họ hoàn thành một số nhiệm vụ. Không có câu hỏi, chỉ cần xem mã của họ là như thế nào sau một vài giờ (hoặc nhiều hơn nếu nhiệm vụ dài hơn).

Tôi đã có một tỷ lệ thất bại bằng không khi thực hiện một mô tả tuyển dụng dựa trên kết quả của một bài kiểm tra lập trình thực tế thực tế.

Nhiệm vụ không phải quá khó khăn. Trước đây, tôi đã sử dụng một tin nhắn đơn giản về ứng dụng ngày với các tin nhắn được giữ trong cơ sở dữ liệu hoặc tệp XML và giao diện người dùng đơn giản. Đảm bảo bạn yêu cầu họ cấu trúc nó tốt (vì nhiệm vụ đủ nhỏ để tất cả có thể được thực hiện trong một lớp nếu họ cảm thấy bị ràng buộc).

Trong số những câu hỏi trên tôi muốn nói rằng bạn không thể biết được liệu chúng có thực sự tốt hay không. Một candicate tiềm năng thực sự có thể chỉ cần đọc những điều này và tạo ra câu trả lời đóng hộp nghe có vẻ tuyệt vời. Tất cả những điều này cho thấy ứng viên có thể nói chuyện, nhưng điều quan trọng trong công việc là nếu họ có thể đi bộ.


4
Tôi hoàn toàn đồng ý, làm cho mọi người làm công cụ, không chỉ nói về nó. @Colin, sau khi bạn giúp đánh vần (các câu hỏi về ứng dụng tự chẩn đoán) Tôi vừa phải nâng bạn lên cõi 4 chữ số .... Nhân tiện, có một loại ở đó: doen thay vì xong. :)
raoulsson

argh, typo, ý tôi là, buồn cười :)
raoulsson

Tôi một phần đồng ý với bạn, nhưng quá trình tiêu tốn thời gian của nó, thậm chí người hỏi bằng miệng mất nhiều thời gian hơn. Tất nhiên, cách này dẫn đến chọn ứng viên phù hợp.
Mohanavel

1
Vì vậy, phần nào bạn không đồng ý với?
Colin Mackay

1
Tôi cũng nghĩ rằng thật phi thực tế khi cho rằng "mọi nhà phát triển WPF nên biết" những câu hỏi trên. Chúng giống như những điểm nói chung hơn; điều kiện tiên quyết không khó.
Eamon Nerbonne

23

Tôi muốn đặt ràng buộc và chuyển đổi ở cấp nhập cảnh, vì đó là cách bạn dành nhiều thời gian trong WPF.


19

Danh sách khá tốt theo ý kiến ​​của tôi.
Tuy nhiên tôi sẽ không hỏi những câu hỏi khó khi phỏng vấn. Phỏng vấn cho bản thân đủ căng thẳng, câu hỏi mẹo có thể gây nhầm lẫn ngay cả người có tay nghề cao.


9
Tôi đồng ý ... quan điểm của một cuộc phỏng vấn là đánh giá ... không làm vấp ngã đồng nghiệp.
cplotts

Tôi không đồng ý với điều này, IMO một lập trình viên phải xử lý những thứ khó khăn, tồi tệ hơn nhiều so với các cuộc phỏng vấn. Vì vậy, một câu hỏi khó là tốt để xem làm thế nào lập trình viên giải quyết vấn đề dưới sự căng thẳng. Một "Tôi không biết" đơn giản đi một chặng đường dài.
Artur Carvalho

15

Cá nhân, tôi đặt 'Làm thế nào các luồng công nhân có thể cập nhật giao diện người dùng' ngay dưới cấp nhập cảnh. Trung cấp, nếu bạn thực sự cần. Nếu một lập trình viên cấp nhập cảnh có thể hiểu được sự khác biệt giữa cây logic và cây trực quan, họ nên hiểu cách cập nhật giao diện người dùng từ một luồng nền.

Tại tổ chức của tôi, chúng tôi thực hiện rất nhiều phát triển WPF mà không cần Blend. Tôi không đặc biệt thích Blend, vì vậy tôi hơi thiên vị, nhưng kỹ năng Blend nên là một thứ tốt đẹp, tôi nghĩ vậy.


9

Một nhà phát triển WPF cần nắm vững cách tách XAML khỏi mã phía sau và có thể thảo luận về độ dài mà dòng đó sẽ được rút ra.

Có thể thiết lập một mô hình theo ngôn ngữ mà cô ấy chọn, sau đó sử dụng XAML để hiển thị các chế độ xem trên mô hình đó thông qua liên kết dữ liệu, mẫu dữ liệu, mẫu điều khiển, kiểu, trình kích hoạt, bộ chuyển đổi giá trị và UserControls là một nhiệm vụ khá cơ bản cho giữa lập trình viên -level. (Mặc dù một lượng nhỏ thời gian nên được cấp nếu yêu cầu ai đó tạo ra một cái gì đó giống như mẫu điều khiển "từ trái tim.")

Thực sự, có rất nhiều trong WPF, và nếu nó không dành cho các diễn đàn MSDN và các cuốn sách chuyên sâu về chủ đề này, thì việc "nhặt nó lên" là một nhiệm vụ khá quan trọng. Vì lý do đó, tôi sẽ đánh giá sự kiên trì và khả năng học hỏi từ người khác như một yêu cầu hàng đầu cho bất kỳ cấp độ nào.

Đối với một lập trình viên WPF cấp nhập cảnh, tôi sẽ không mong đợi bất kỳ kiến ​​thức nào về WPF, nhưng tôi sẽ đòi hỏi kiến ​​thức về các nguyên tắc hướng đối tượng, tách giao diện người dùng khỏi logic nghiệp vụ và thoải mái với mô hình sự kiện tương tự. Trải nghiệm đặt các thành phần UI theo kiểu tương tự WPF (với các thùng chứa DockPanel, v.v.) là một lợi thế.

Chỉnh sửa: Ngoài ra, những gì Colin Mackay nói.


8

Điều gì về kinh nghiệm lập trình / đồ họa GUI nói chung và kiến ​​thức cs? Nếu đó là một công việc toàn thời gian, thì IMHO không thành vấn đề nếu anh chàng phải dành vài tháng đầu tiên để học WPF, nếu anh ta (hoặc cô ta) có một nền tảng vững chắc.


7

Nhập cảnh

  • Thay đổi thuộc tính NOtification (INotifyPropertyChange và ObservableCollection)
  • Tài nguyên từ điển
  • Liên kết người dùng

Mức giữa

  • Pha trộn / rượu táo
  • hoạt hình và kịch bản
  • Triển khai ClickOnce

Cao cấp

  • WPF 3D
  • Sự khác biệt giữa Silverlight 2 và WPF
  • MVVM / MVP
  • Điều chỉnh hiệu suất WPF
  • Pixel Shader

7
  • Mối quan hệ giữa chủ đề và công văn là gì?
  • Mục đích của Freezables là gì?
  • Sự khác biệt giữa các thuộc tính và thuộc tính phụ thuộc là gì? Tại sao sử dụng cái này hay cái khác?

5
  • Bộ chuyển đổi (đơn giản và đa).
  • Khả năng tương tác.

Tôi nghĩ rằng tôi thích một dev sẽ biết Blend . Anh ấy / Cô ấy có thể giao tiếp dễ dàng với nhà thiết kế và cũng có thể thực hiện một số công việc thiết kế cơ bản nhanh hơn là chỉ viết bằng xaml.

Danh sách này là thú vị, có thể liên kết đến các chủ đề sẽ giúp.

Chúc mừng


4

Một điều thực sự cơ bản khác sẽ là sự khác biệt giữa các chiến lược định tuyến bong bóng và đường hầm.


3

Nhập cảnh

  • Kiến thức về thiết kế UX
  • Kiến thức về khai báo ràng buộc cho các đối tượng kinh doanh
  • Sử dụng lệnh

Cao cấp

  • Tối ưu hóa tài nguyên & điều chỉnh hiệu suất
  • Tính mô đun & khả năng mở rộng
  • Mô hình lập trình không đồng bộ


2

Giữa hoặc có thể cao cấp

  • Lột da / Chủ đề
  • Điều khiển tùy chỉnh

2
  • DataTemplate vs HVELicalDataTemplate
  • MụcControl vs ItemPresenter vs ContentControl vs ContentPresenter
  • Các loại kích hoạt khác nhau
  • Cách thực hiện Ảnh động thông qua StoryBoards

1

Tôi nghĩ rằng vòng đời của ứng dụng WPF - từ sáng tạo đến thời gian chạy nên được đưa vào cấp độ câu hỏi dành cho người mới bắt đầu. Không biết điều đó, thật khó tin một người là một nhà phát triển WPF thực sự.


Tôi không biết bạn có ý gì ở đây.
cplotts

Tôi nghĩ rằng anh ấy có nghĩa là: msdn.microsoft.com/en-us/l
Library / ms754221.aspx

1

Tôi muốn mở rộng triển khai ClickOnce với WPF Deployment nói chung, vì thật tốt khi biết các hạn chế và đặc thù của từng mô hình (chỉ ClickOnce, XBAP, chỉ trình duyệt). Đặt nó ở mức trung bình có vẻ công bằng mặc dù.


1

kiểu cung cấp một cơ chế để bạn áp dụng một chủ đề trên một ứng dụng và ghi đè chủ đề đó trong các trường hợp cụ thể mà bạn muốn. Kiểu dáng được định nghĩa như tài nguyên; thực tế, chúng được định nghĩa trong cùng một phần của tệp XAML trong đó tài nguyên được xác định.



1

Biết về thử nghiệm đơn vị và ảnh hưởng của nó đến cách bạn sử dụng WPF là một kỹ năng cơ bản mà tôi sẽ đặt ở Cấp nhập cảnh. Mọi người có thể tìm hiểu các chi tiết, nhưng nếu họ chưa nghĩ về những điều cơ bản của thiết kế phần mềm thì bạn có vấn đề.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.