साक्षात्कार के प्रश्न: WPF डेवलपर [बंद]


182

हर WPF डेवलपर को क्या जानना चाहिए?

प्रवेश स्तर

  • मजबूत .NET 2.0 पृष्ठभूमि और जानने के लिए तैयार!
  • निर्भरता गुण बताइए?
  • एक शैली क्या है?
  • क्या एक टेम्पलेट है?
  • बाइंडिंग
  • बेस कक्षाओं के बीच अंतर: दृश्य, UIElement, फ्रेमवर्क, नियंत्रण
  • दृश्य बनाम तार्किक पेड़?
  • संपत्ति परिवर्तन अधिसूचना (INotifyPropertyChange और वेधशाला का चयन)
  • संसाधन छाया - a7an द्वारा जोड़ा गया
  • UserControls - a7an द्वारा जोड़ा गया
  • बुलबुला और सुरंग मार्ग रणनीतियों के बीच अंतर - कार्लो द्वारा जोड़ा गया
  • Microsoft ने अभी तक एक और मार्कअप भाषा क्यों शुरू की?
  • XAML

मध्य स्तर

  • रूट किए गए ईवेंट और कमांड्स
  • कन्वर्टर्स - आर्थर कार्वाल्हो द्वारा जोड़ा गया
  • WPF के 2-पास लेआउट इंजन की व्याख्या करें?
  • पैनल कैसे लागू करें?
  • इंटरऑपरेबिलिटी (WPF / WinForms)
  • ब्लेंड / साइडर - a7an द्वारा जोड़ा गया
  • एनिमेशन और स्टोरीबोर्डिंग
  • ClickOnce परिनियोजन
  • Skinning / themeing
  • कस्टम नियंत्रण
  • वर्कर थ्रेड यूआई को कैसे अपडेट कर सकते हैं?
  • DataTemplate बनाम HierarchicalDataTemplate
  • आइटम्सकंट्रोल बनाम आईटम्सपर्सेंट बनाम कंटेंटकंट्रोल बनाम कंटेंटपर्सेंट
  • विभिन्न प्रकार के ट्रिगर

वरिष्ठ

  • संलग्न व्यवहार का उदाहरण?
  • PRISM, CAL & CAG क्या है?
  • वर्कर थ्रेड यूआई को कैसे अपडेट कर सकते हैं?
  • WPF 3D - a7an द्वारा जोड़ा गया
  • सिल्वरलाइट 2 और WPF के बीच अंतर
  • MVVM / MVP - a7an द्वारा जोड़ा गया
  • WPF प्रदर्शन ट्यूनिंग
  • पिक्सेल शेड्स
  • फ्रीज़ेबल्स का उद्देश्य

किसी भी अन्य "चाल" सवाल पूछने के लिए?

क्या आप अपने WPF डेवलपर से ब्लेंड करने की उम्मीद करते हैं?


13
मैं "मजबूत .NET 2.0 पृष्ठभूमि" पर असहमत हूं। वास्तव में WPF .NET 2.0 की तुलना में बहुत सारी चीजें करता है, और वास्तव में कम जानने से आप WPF को तेज कर सकते हैं ...
आर्कटिकस

28
कैसे इन विषयों में से प्रत्येक के लिए कुछ लिंक के बारे में भी!
बिनोज एंटनी

16
मुझे लगता है कि यह "प्रवेश स्तर" के लिए एक बहुत ही उच्च बार है। मैं शर्त लगाता हूं कि यदि नौकरी की स्थिति को "प्रवेश स्तर" के रूप में वर्णित किया जाता है, तो आपको कई (कोई भी) लोग नहीं मिलेंगे जो आपके मानक को पूरा कर सकते हैं। जानने के लिए अच्छी चीजें, निश्चित रूप से, लेकिन नहीं जो ज्यादातर लोग "प्रवेश स्तर" कहेंगे।
बस्का

1
मैं "फ्रीज़ेबल्स के उद्देश्य" को कुछ वरिष्ठ नहीं कहूंगा - और अगर आप मध्य-स्तर में थ्रेडिंग के बारे में बात करने जा रहे हैं, तो यह वह जगह है जहाँ फ्रीज़ेबल्स हैं। एमवीवीएम / एमवीपी भी विशेष रूप से जटिल नहीं है और न ही आर्कन।
ईमोन नेरबोन

4
मुझे लगता है कि इन सूचियों को दो में विभाजित किया जाना चाहिए, एक ग्राफिक / यूआई डिजाइन पक्ष के लिए और एक तकनीकी डिजाइन पक्ष के लिए। यूआई डिजाइनर को संभवतः अभिव्यक्ति मिश्रण का उपयोग करने का पता होना चाहिए, लेकिन एक डिज़ाइन करने योग्य उपयोगकर्ता नियंत्रण के पीछे कोडिंग जैसे तकनीकी विवरण के बारे में अधिक जानने की आवश्यकता नहीं है। प्रोग्रामर को यह जानने की जरूरत है कि एक डिज़ाइन करने योग्य नियंत्रण कैसे बनाया जाए, लेकिन अभिव्यक्ति मिश्रण का उपयोग करने की आवश्यकता नहीं है (वीएस में xaml डिजाइनर पर्याप्त होना चाहिए जब तक कि यूआई डिजाइनर इसे सुंदर बना सकता है)।
ब्रायन रीचेल

जवाबों:


41

मुझे आश्चर्य है कि किसी ने अभी तक XAML के बुनियादी ज्ञान का उल्लेख नहीं किया है। यह जानना कि XAML क्या है, और एक ग्राफिकल डिज़ाइन टूल के बजाय XAML का उपयोग करके कुछ बुनियादी संपादन करने की क्षमता है। मध्य स्तर के डेवलपर्स को XAMLPad जैसे उपकरण का उपयोग करके फॉर्म / ग्राफिक प्रोटोटाइप को दस्तक देने में सक्षम होना चाहिए।


34

व्यक्तिगत रूप से मैं उन्हें एक मानक डेवलपर बिल्ड मशीन के सामने बैठाऊंगा और उन्हें कुछ कार्य पूरा करने के लिए कहूंगा। कोई सवाल नहीं, बस देखते हैं कि कुछ घंटों के बाद उनका कोड क्या है (या यदि कार्य लंबा है)।

मेरे पास वास्तविक वास्तविक जीवन प्रोग्रामिंग परीक्षण के परिणामों के आधार पर हायरिंग डिसकशन बनाने पर शून्य विफलता दर है।

कार्य बहुत कठिन नहीं है। मैंने डेटाबेस या XML फ़ाइल और सरल उपयोगकर्ता इंटरफ़ेस में रखे जा रहे संदेशों के साथ अतीत में दिन के आवेदन का एक सरल संदेश उपयोग किया है। सुनिश्चित करें कि आप उन्हें इसे अच्छी तरह से संरचना करने के लिए कहें (जैसा कि कार्य पर्याप्त रूप से छोटा है कि यह सभी एक वर्ग में किया जा सकता है अगर उन्हें लगा कि)।

उपरोक्त प्रश्नों में, मैं कहूंगा कि आप इस बात का अच्छा अंदाजा नहीं लगा सकते कि वे वास्तव में अच्छे हैं या नहीं। एक संभावित कैंडिडेट वास्तव में इन्हें पढ़ सकता है और डिब्बाबंद उत्तर बना सकता है जो बहुत अच्छा लगता है। यह सब दिखाता है कि उम्मीदवार बात कर सकते हैं, लेकिन नौकरी में क्या मायने रखता है अगर वे पैदल चल सकें।


4
मैं पूरी तरह से सहमत हूं, लोगों को सामान करना, न कि केवल इसके बारे में बात करना। @ कोलिन, स्पेलिंग पर आपकी मदद के बाद (सेल्फ डायग्नोस्टिक ऐप के सवाल) मुझे बस आपको 4 अंकों के दायरे तक उकेरना था .... वैसे, वहाँ एक प्रकार है: किए गए के बजाय। :)
राऊलसन

argh, टाइपो, मेरा मतलब है, मजाकिया :)
raoulsson

मैं आपसे आंशिक रूप से सहमत हूं, लेकिन इसका समय प्रक्रिया का उपभोग करता है, यहां तक ​​कि मौखिक प्रश्नकर्ता को अधिक समय लगता है। बेशक, इस तरह से सही उम्मीदवार को चुना जाता है।
मोहनावेल

1
तो, आप किस भाग से असहमत हैं?
कॉलिन मैके

1
मुझे यह भी लगता है कि "डब्ल्यूपीएफ के प्रत्येक डेवलपर को उपरोक्त प्रश्नों को जानना चाहिए"। वे सामान्य बात करने वाले बिंदुओं की तरह अधिक हैं; कठिन पूर्वापेक्षाएँ नहीं।
ईमोन नेरबोन

23

मैं एंट्री लेवल पर बाइंडिंग और कन्वर्टर्स लगाता हूं, क्योंकि आप WPF में बहुत समय बिताते हैं।


19

मेरी राय में बहुत अच्छी सूची।
हालांकि मैं साक्षात्कार पर मुश्किल सवाल नहीं पूछूंगा । साक्षात्कार स्वयं पर्याप्त तनाव देता है, ट्रिक प्रश्न अत्यधिक कुशल व्यक्ति को भी भ्रमित कर सकता है।


9
मैं सहमत हूं ... एक साक्षात्कार का बिंदु यह आकलन करना है ... साथी को यात्रा करने के लिए नहीं।
cplotts

मैं इस एक से असहमत हूं, IMO एक प्रोग्रामर को इंटरव्यू की तुलना में कठिन सामान, बहुत ज्यादा वेंडर को संभालना चाहिए। तो एक मुश्किल सवाल यह देखने के लिए अच्छा है कि प्रोग्रामर तनाव के तहत किसी समस्या को कैसे हल करता है। एक सरल "मुझे नहीं पता" एक लंबा रास्ता तय करता है।
आर्टूर कार्वाल्हो

15

व्यक्तिगत रूप से, मैं एंट्री-लेवल के तहत 'थ्रेड वर्कर्स थ्रेड्स यूआई' को कैसे अपडेट कर सकता हूं। मध्य-स्तर, यदि आपको वास्तव में आवश्यकता है। यदि एक एंट्री-लेवल प्रोग्रामर लॉजिकल ट्री और विजुअल ट्री के बीच अंतर को समझ सकता है, तो उन्हें समझना चाहिए कि बैकग्राउंड थ्रेड से UI को कैसे अपडेट किया जाए।

मेरे संगठन में, हम ब्लेंड के बिना बहुत सारे डब्ल्यूपीएफ विकास करते हैं। मुझे विशेष रूप से ब्लेंड पसंद नहीं है, इसलिए मैं थोड़ा पक्षपाती हूं, लेकिन ब्लेंड कौशल एक अच्छा होना चाहिए, मुझे लगता है।


9

एक WPF डेवलपर के पास कोड के पीछे से XAML को अलग करने की एक दृढ़ समझ होनी चाहिए, और उस रेखा की लंबाई पर चर्चा करने में सक्षम होना चाहिए।

अपनी पसंद की भाषा में एक मॉडल सेट करने में सक्षम होने के नाते, और फिर डेटा बाइंडिंग, डेटा टेम्प्लेट, कंट्रोल टेम्प्लेट, स्टाइल, ट्रिगर्स, वैल्यू कन्वर्टर्स और यूजरक्रंट्रोल के माध्यम से उस मॉडल पर विचार प्रदर्शित करने के लिए एक्सएएमएल का उपयोग करना मध्य के लिए एक काफी बुनियादी काम है। -लेवल प्रोग्रामर। (हालांकि किसी को "दिल से" नियंत्रण टेम्पलेट जैसी कोई चीज़ बनाने के लिए कहने पर लेवे की थोड़ी मात्रा दी जानी चाहिए।

वास्तव में, WPF में बहुत कुछ है, और अगर यह MSDN मंचों और विषय पर गहन पुस्तकों के लिए नहीं थे, तो यह "बस इसे लेने के लिए" काफी काम होगा। उस कारण से, मैं दृढ़ता और किसी भी स्तर के लिए एक शीर्ष आवश्यकता के रूप में दूसरों से सीखने की क्षमता को दर करूंगा।

एक एंट्री-लेवल WPF प्रोग्रामर के लिए, मैं प्रति se WPF के किसी भी ज्ञान की उम्मीद नहीं करूंगा, लेकिन मैं ऑब्जेक्ट ओरिएंटेड सिद्धांतों, यूआई को बिजनेस लॉजिक से अलग करने और समान इवेंट मॉडल के साथ आराम की जानकारी की मांग करूंगा। WPF (DockPanel कंटेनरों के साथ) जैसी शैली में UI तत्वों को बिछाने का अनुभव एक प्लस है।

संपादित करें: इसके अलावा, कॉलिन मैके ने क्या कहा।


8

सामान्य और सीएस ज्ञान में जीयूआई प्रोग्रामिंग / ग्राफिक्स अनुभव के बारे में क्या? यदि यह पूर्णकालिक नौकरियों के लिए है, तो यह आईएमएचओ के लिए कोई फर्क नहीं पड़ता है अगर आदमी को डब्ल्यूपीएफ सीखने के साथ कुछ समय पहले बिताना पड़ता है, अगर वह (या वह) एक मजबूत पृष्ठभूमि है।


7

प्रवेश स्तर

  • संपत्ति परिवर्तन NOtification (INotifyPropertyChange और वेधशाला का चयन)
  • ResourceDictionary
  • UserControls

मध्य स्तर

  • मिश्रण / साइडर
  • एनिमेशन और स्टोरीबोर्डिंग
  • ClickOnce परिनियोजन

वरिष्ठ

  • WPF 3 डी
  • सिल्वरलाइट 2 और WPF के बीच अंतर
  • MVVM / एमवीपी
  • WPF प्रदर्शन ट्यूनिंग
  • पिक्सेल शेड्स

7
  • धागे और डिस्पैचर के बीच क्या संबंध है?
  • Freezables का उद्देश्य क्या है?
  • गुण और निर्भरता गुणों के बीच अंतर क्या है? एक या दूसरे का उपयोग क्यों करें?

5
  • कन्वर्टर्स (सरल और बहु)।
  • इंटरोऑपरेबिलिटी।

मुझे लगता है कि मैं ऐसे देव को पसंद करूंगा जो ब्लेंड को जानता होगा । वह / वह डिजाइनर के साथ आसानी से संवाद कर सकता है और कुछ बुनियादी डिजाइनर सामान भी कर सकता है, बस xaml में लिखने से।

सूची दिलचस्प है, शायद विषयों के लिंक से मदद मिलेगी।

चियर्स


4

एक और वास्तव में बुनियादी चीज बुलबुला और सुरंग मार्ग की रणनीतियों के बीच अंतर होगा।


3

प्रवेश स्तर

  • UX डिजाइन में ज्ञान
  • व्यापारिक वस्तुओं के लिए घोषणात्मक बंधन में ज्ञान
  • आज्ञा का उपयोग

वरिष्ठ

  • संसाधन अनुकूलन और प्रदर्शन ट्यूनिंग
  • प्रतिरूपकता और स्केलेबिलिटी
  • प्रोग्रामिंग मॉडल को एसिंक्रनाइज़ करें


2

मिड या शायद सीनियर

  • Skinning / themeing
  • कस्टम नियंत्रण

2
  • DataTemplate बनाम HierarchicalDataTemplate
  • आइटम्सकंट्रोल बनाम आईटम्सपर्सेंट बनाम कंटेंटकंट्रोल बनाम कंटेंटपर्सेंट
  • विभिन्न प्रकार के ट्रिगर
  • StoryBoards के माध्यम से एनिमेशन कैसे करें

1

मुझे लगता है कि WPF एप्लिकेशन का जीवनचक्र - निर्माण से लेकर रनटाइम तक प्रश्नों के शुरुआती स्तर में शामिल होना चाहिए। इसे जाने बिना, यह मानना ​​मुश्किल है कि एक वास्तविक डब्ल्यूपीएफ देव है।


मुझे नहीं पता कि आपका यहां क्या मतलब है।
cplotts

मुझे लगता है कि वह इसका मतलब है: msdn.microsoft.com/en-us/library/ms754221.aspx
HappyNomad

1

मैं सामान्य रूप से WPF परिनियोजन के साथ ClickOnce परिनियोजन का विस्तार करूंगा, क्योंकि यह प्रत्येक मॉडल (ClickOnce, XBAP, ब्राउज़र केवल) की सीमाओं और विशिष्टताओं को जानना अच्छा है। मध्य स्तर पर रखने से यह उचित लगता है।


1

शैलियाँ आपके लिए किसी एप्लिकेशन पर थीम लागू करने और उन विशिष्ट उदाहरणों में जहाँ आप चाहते हैं, उस थीम को ओवरराइड करने के लिए एक तंत्र प्रदान करती हैं। शैलियों को संसाधनों की तरह परिभाषित किया गया है; वास्तव में, वे आपकी XAML फ़ाइल के उसी खंड के भीतर परिभाषित किए गए हैं जिसमें संसाधन परिभाषित हैं।



1

इकाई परीक्षण और इसके प्रभाव के बारे में जानना कि आप WPF का उपयोग कैसे करते हैं, एक बुनियादी कौशल है जिसे मैं प्रवेश स्तर पर रखूंगा। लोग विवरण जान सकते हैं, लेकिन यदि उन्होंने सॉफ़्टवेयर डिज़ाइन की मूल बातें के बारे में नहीं सोचा है तो आपको समस्या है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.