WPF बनाम WinForms - एक डेल्फी प्रोग्रामर का परिप्रेक्ष्य?


38

मैंने WPF बनाम WinForms पर अधिकांश प्रमुख सूत्र पढ़े हैं और मुझे लगता है कि आप दुर्भाग्यपूर्ण महत्वाकांक्षा में फंस गए हैं, जब आप आजमाए हुए और सच्चे पिछले टेक (Winforms) के बीच निर्णय ले सकते हैं, और यह उत्तराधिकारी (WPF) है।

मैं कई वर्षों का एक अनुभवी डेल्फी प्रोग्रामर हूं जो आखिरकार सी # में कूद रहा हूं। मेरे साथी डेल्फी प्रोग्रामर समझेंगे कि मैं यह जानकर उत्साहित हूं कि डेल्फी की प्रसिद्धि के एंडर्स हेजलबर्ग, C # के पीछे थे। मुझे डेल्फी के वीसीएल कस्टम घटकों के लिए एक मजबूत लत है, विशेष रूप से मल्टी-स्टेप विजार्ड्स और घटकों को बनाने में शामिल है जो बाल घटकों के लिए कंटेनर के रूप में कार्य करते हैं।

उस पृष्ठभूमि के साथ, मैं उम्मीद कर रहा हूं कि आप में से जो डेल्फी से C # में स्विच किए गए हैं, वे अपने शुरुआती अनुप्रयोगों को लिखने के लिए मेरे WinForms बनाम WPF निर्णय के साथ मेरी मदद कर सकते हैं। ध्यान दें, मैं बहुत अधीर हूँ जब कोडिंग और पूर्ण विकसित ऑटो-पूर्ण और उचित डिबगर समर्थन जैसी चीजें मेरे लिए एक प्रोजेक्ट बना सकती हैं या तोड़ सकती हैं, जिसमें एपीआई सुविधाओं और कॉल पर आसानी से उपलब्ध जानकारी प्राप्त करने में सक्षम होना और इससे भी अधिक, बग के लिए कार्य करना। ।

2009 की शुरुआत की तारीख में SO थ्रेड्स और टिप्पणियां मुझे WPF पर बहुत चिंता देती हैं जब यह संभावित कुंठाओं की बात आती है जो मेरे C # UI डेवलपमेंट कोडिंग से शादी कर सकती हैं। दूसरी ओर, एक एपीआई तकनीक सीखने में समय की एक असीम राशि खर्च करना, जो कि भले ही इसे छोड़ न दिया जाए, जल्द ही प्रतिस्थापित किया जा सकता है (WinForms), समान रूप से परेशान है और मुझे WPF tantizingizing में GPU का समर्थन मिलता है।

इसलिए मेरी महत्वाकांक्षा। चूंकि मैंने या तो तकनीक नहीं सीखी है, फिर भी मुझे एक नई शुरुआत करने का एक दुर्लभ अवसर मिला है और बड़े "अनलर्निंग" वक्र का सामना नहीं करना पड़ा है, मैंने देखा है कि लोग विभिन्न थ्रेड्स में उल्लेख करते हैं जब एक WinForms प्रोग्रामर WPF के लिए कदम बनाता है। दूसरी ओर, अगर WPF का उपयोग करना बहुत निराशाजनक होगा या अपने जैसे अधीर राड डेवलपर के लिए अन्य प्रमुख नकारात्मक परिणाम होंगे, तो मैं तब तक WinForms के साथ रहूंगा जब तक WPF समर्थन और उपयोग में आसानी के समान स्तर तक नहीं पहुंच जाता। एक प्रोग्रामर के रूप में मेरे मनोविज्ञान में आपको एक ठोस उदाहरण देने के लिए, मैंने वीबी और उसके बाद डेल्फी का उपयोग किया, जो कि विंडोज़ डेवलपर्स के रूप में एमएफसी के साथ कोडिंग के बहुत वास्तविक दर्द से पूरी तरह से बचने के लिए था, जो कि कई डेवलपर्स ने शुरुआती विंडोज़ ऐप विकसित करते समय सामना किया था। मुझे MFC से बचने में अपनी किस्मत पर कभी पछतावा नहीं है।

यह जानकर भी सुकून मिलेगा कि WPF और / या WinForms के आर्किटेक्चर में Anders Hejlsberg का हाथ था या नहीं, और यदि रचनात्मक दृष्टि में कोई असमानताएं हैं और उपयोग की आसानी या तो कोड बेस में सन्निहित है। अंत में, डेल्फी प्रोग्रामर्स के लिए, मुझे बताएं कि WinForms के विपरीत WPF का उपयोग करते समय मैं कितना "IDE schock" हूं, खासकर जब यह डीबगर समर्थन की बात आती है। 2011 के लिए अपडेट किए गए किसी भी नौकरी बाजार टिप्पणियों की भी सराहना की जाएगी।


2
क्या WPF खराब प्रदर्शन के लिए वास्तव में खराब प्रतिष्ठा नहीं है?
डेविड हेफर्नन

9
@ डेविड: यह वास्तव में प्रतिष्ठा है, लेकिन हमेशा की तरह, वास्तविकता रैप के रूप में के रूप में बुरा नहीं है। दृश्य स्टूडियो 2010 के GUI को WPF में फिर से लिखा गया था, और अधिकांश मशीनों पर वीएस 2008 की तुलना में ध्यान देने योग्य गति में कमी नहीं दिखाई देती है। @Robert: यह कहा जा रहा है, मेरी सिफारिश विनफ्रेम के पक्ष में होगी। विशेष रूप से एक डेल्फी कन्वर्ट के लिए। लेकिन मुझे यह कहने में थोड़ी झिझक है कि एक उत्तर के रूप में, ऐसा न हो कि यह गुमनामी में बदल जाए। हर कोई इसके खिलाफ नरक-तुला लग रहा है क्योंकि यह "पुरानी" तकनीक है, जैसे कि वास्तव में इसका मतलब कुछ था।
कॉडी ग्रे

@Cody। समझ लिया। मुझे उत्तर और टिप्पणियों के साथ कुछ बेहतरीन जानकारी मिल रही है, लेकिन मैं WPF पर अधिक प्रत्यक्ष जानकारी के लिए आशा कर रहा हूं और यह डिबगर समर्थन बनाम WinForms और कुछ नौकरी बाजार की जानकारी है। उन विषय क्षेत्रों में रखे गए मेरे प्रश्नों के उत्तर अभी भी चाहते हैं।
रॉबर्ट ओस्लर

1
@ कोडीग्रे: आपको मजाक करना चाहिए। VS2010 VS2008 की तुलना में सौ गुना धीमा है, और इसलिए WPF है। आपकी धारणा संभवतः सामान्य प्रोग्रामर के पूर्वाग्रह के कारण है: आप केवल सबसे हाल की उच्च-अंत मशीनों को देखते हैं, जो अधिकांश सामान्य उपयोगकर्ताओं के पास नहीं है।
टिमवी

जवाबों:


20

यदि आपके पास डेल्फी पृष्ठभूमि है, तो आप WinForms में निराश होंगे। आप उन चीजों को करने की कोशिश करेंगे जो वीसीएल में आसान थे, केवल यह पता लगाने के लिए कि वे दर्द से मुश्किल हैं, या असंभव भी हैं। WPF बहुत कम सीमित होगा।

उदाहरण के लिए, हमारे द्वारा चलाई गई कुछ WinForms सीमाएँ यहाँ हैं:

  • WinForms में TAction की तुलना में कुछ भी नहीं है, इसलिए यदि आप क्रियाओं के साथ कोडिंग करने के लिए उपयोग किए जाते हैं, तो मेनू आइटम और टूलबार बटन और राइट-क्लिक मेनू के बीच एक ही टेक्स्ट और आइकन साझा करना, अपने सक्षम तर्क को केंद्रीकृत करना और सक्षम स्थिति को अपडेट करना। OnUpdate के साथ पृष्ठभूमि में ... आप WinForms से नफरत करेंगे, जहां आपको वह सब करना होगा जो कठिन और त्रुटि-रहित तरीका है।
  • WinForms का पुराना (.NET 1.0 विंटेज) मेनमेनू मेनू आइटम के बगल में मौजूद छवियों का समर्थन नहीं करता है, और नया (.NET 2.0 में पेश किया गया) मेनूस्ट्रिप उन बग्स से भरा हुआ है, जिन्हें Microsoft ठीक करने से मना कर देता है (क्योंकि बगफिक्स बैकएंड संगतता को तोड़ सकते हैं)।
  • कई नियंत्रण, जैसे ट्री व्यू, अपने वीसीएल समकक्षों की तुलना में कमज़ोर होते हैं (दर्द धीरे, कोई मालिक नहीं, कई अनुकूलन विकल्प गायब हैं, आदि)
  • डेल्फी में आपके द्वारा उपयोग किए जाने वाले तृतीय-पक्ष नियंत्रण डेवलपर्स के जीवंत समुदाय जैसा कुछ नहीं है। वहाँ गुणवत्ता नियंत्रण पुस्तकालय बाहर हैं, लेकिन आप उनके लिए भुगतान करते हैं - VirtualTreeView जैसे मुफ्त प्रसाद केवल WinForms के लिए बाहर नहीं हैं।

WPF, WinForms की तुलना में कुछ मामलों में थोड़ा अधिक नंगे-हड्डियों वाला है, लेकिन यह बहुत अधिक एक्स्टेंसिबल है।

  • आप TAction की तरह कुछ करना चाहते हैं? WPF में ICommand है, जो आपके द्वारा उपयोग किए जाने के समान ही समृद्ध है (लेकिन सुनिश्चित करें कि आपने जोश स्मिथ के MVVM लेख को पढ़ा है - आम तौर पर आपको राज्य को बदलने पर मैन्युअल रूप से अपने आदेशों को सक्षम / अक्षम करना पड़ता है, लेकिन उनका संस्करण स्वचालित रूप से आपके सक्षम कोड को आग लगा देता है पृष्ठभूमि में जैसे कि आप OnUpdate के साथ उपयोग किए जाते हैं)।
  • आप मेनू पर चित्र चाहते हैं? कि (WinForms में के रूप में छोटी गाड़ी के रूप में कहीं नहीं) में बनाया गया है।
  • WinForms कुछ महत्वपूर्ण नियंत्रणों पर स्वामी-ड्रॉ को छोड़ देता है, लेकिन यदि आप इसके बजाय WPF का उपयोग कर रहे हैं, तो आपको स्वामी-ड्रा की आवश्यकता नहीं है - यदि आप चाहते हैं कि आपके ट्री व्यू नोड्स में कोष्ठक में नीले रंग की संख्या के साथ काला पाठ हो, तो आप बस इसे अपने DataTemplate में रखें और यह काम करता है, कोई बदसूरत मालिक-ड्रा कोड की आवश्यकता नहीं है।
  • आप तृतीय-पक्ष नियंत्रण चाहते हैं? कई मामलों में, आपको उनकी आवश्यकता नहीं है, क्योंकि आप WinForms के तरीकों में विस्तार कर सकते हैं और हां, वीसीएल डेवलपर्स केवल सपने देख सकते हैं।

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


1
प्रत्यक्ष डेल्फी टिप्पणी के लिए धन्यवाद। किसी भी नौकरी के बाजार की टिप्पणी और WPF के लिए वीएस 2010 के डिबगर समर्थन से संबंधित कोई भी जानकारी, विशेष रूप से ट्रेसिंग / निरीक्षण मुद्दों? मैं आपके द्वारा लिंक की गई पुस्तक की जांच करूंगा।
रॉबर्ट ओस्लर

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

6
बहुत खड़ी सीखने की अवस्था। आप WPF में इतना कार्यक्रम नहीं करते हैं; आप WPF को समझाने के लिए कि आप क्या चाहते हैं, इस पर प्रश्न पूछें।
इयान बॉयड

असल में, कुछ सबसे बड़ी बाधाएं एक ऐसे ढांचे के साथ काम करना सीखने के बारे में हैं, जो जिम्मेदारियों को ठीक से अलग करता है, बजाय इसके कि केवल सब कुछ आँख मूंदकर टीकेनसिंक से निकले।
जो व्हाइट

1
क्या मेरे पास डेल्फी फॉर्म हो सकते हैं, लेकिन C # भाषा रखें? कृप्या?
रॉबर्ट हार्वे

13

मैं आमतौर पर लोगों को यह कहते हुए बहुत आश्चर्यचकित करता हूं कि उन्हें WPF के साथ अच्छा अनुभव नहीं था। मैं एक डेवलपर हूं जो C ++ / MFC से C # / WinForms से C # / WPF में स्विच किया गया। WinForms से WPF में परिवर्तन एक आसान नहीं था क्योंकि XAML सीखना बहुत आसान नहीं है, लेकिन एक बार जब आप इसे पकड़ लेते हैं, तो यह एक भयानक तकनीक है। मैं, एक के लिए, WinForms पर वापस नहीं जा सकता। WPF बस कमाल है।

दूसरी बात जो मुझे परेशान करती है कि लोग आम तौर पर केवल UI के साथ WPF को कैसे जोड़ते हैं। यह UI डिज़ाइन में आसानी से मेरी राय में WinForms की तुलना में वास्तव में 100 गुना बेहतर है, लेकिन कई अन्य कारण हैं जिन्हें आप WPF का उपयोग करना पसंद करेंगे:

  1. यूआई, बिल्कुल।
  2. बाइंडिंग। बस सादा जादू। UI के बाद सबसे शक्तिशाली फीचर। LOB एप्लिकेशन को इससे सबसे अधिक फायदा होता है।
  3. आदेश।
  4. चिंताओ का विभाजन। डिजाइनर डिजाइन, प्रोग्रामर प्रोग्राम पर काम करते हैं।
  5. संलग्न गुण। आप स्रोत कोड के बिना तीसरे पक्ष के नियंत्रण की कार्यक्षमता का विस्तार कर सकते हैं (हालांकि यह बिंदु अच्छी तरह से पहले बिंदु का हिस्सा हो सकता है)।
  6. सिल्वरलाइट के लिए आसान संक्रमण (वेब ​​और WP7 दोनों)

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

और सबसे बड़ा कारण है, यह भविष्य है। इसे सिल्वरलाइट में विलय किया जा सकता है लेकिन कौशल समान रहेगा।

इसलिए, मैं आपको WPF तरीके से जाने के लिए दृढ़ता से सलाह दूंगा।


1
मैं यह नहीं कह रहा हूं कि मैं असहमत हूं, लेकिन वे सभी कारण यूआई से संबंधित हैं (हालांकि आप कहते हैं कि दूसरी बात जो मुझे परेशान करती है कि लोग सामान्य रूप से केवल UI के साथ WPF को कैसे जोड़ते हैं )
एड एस।

1
+1 क्योंकि मैं आपके सभी बिंदुओं से सहमत हूं। अगर मुझे WPF या Winforms सीखना चाहते थे, तो मुझे लेने के लिए मिला, और मैंने WPF का चयन किया और इसे कभी भी पछतावा नहीं किया। @ ईडी: मैं उनमें से किसी को भी पहले वाले को छोड़कर यूआई से सख्ती से संबंधित होने के रूप में नहीं देखता।
राचेल

1
@ राचेल: वाक़ई? प्रॉपर्टी वैल्यू में बदलाव होने पर यूआई को अपडेट करने के लिए बाइंडिंग का उपयोग किया जाता है। # 4 में चिंताओं का पृथक्करण केवल UI विकसित करते समय ही लागू होता है। # 5 सभी तीसरे पक्ष के नियंत्रण के बारे में है। कोई UI, कोई नियंत्रण नहीं। # 6 फिर से एक सिल्वरलाइट यूआई में अनुवाद करने के बारे में है। क्या मैं कुछ भूल रहा हूँ?
एड एस।

3
मैं कम या ज्यादा विपरीत तरीके से गया हूं: WPF -> WinForms -> C ++ / MFC। हाँ, मैं एक विद्रोही हूँ; मैं ऊपर तैरता हूं। मैं सिर्फ WPF UI में क्या लाता है इसके बारे में कुछ भी सम्मोहक नहीं देखता। भयानक, गैर-देशी दिखने वाले सॉफ़्टवेयर का एक गुच्छा "प्रगति" का मेरा विचार नहीं है। इससे परे, मुझे यकीन नहीं है कि WPF के साथ डिजाइन पैटर्न इतने सारे (इस उत्तर सहित) एसोसिएट किसी भी तरह से WPF के लिए अनन्य हैं । आप किसी भी भाषा या GUI ढांचे में डिजाइन पैटर्न का उपयोग कर सकते हैं। क्या अंतर बस इतना है कि यदि आप मजबूर नहीं हैं , तो लोग नहीं करेंगे? सिल्वरलाइट के लिए संक्रमण की आसानी ही यहाँ सम्मोहक कारण है।
कोडी ग्रे

5
एक WPF आवेदन के साथ मेरा पहला काम: एक टूलबार ड्रॉप, यह 14 dlus लंबा बनाते हैं। नहीं किया जा सकता है । दूसरा कार्य: उपयोगकर्ता के फ़ॉन्ट चेहरे और आकार से मिलान करने के लिए फ़ॉर्म फॉण्ट सेट करें। नहीं किया जा सकता तीसरा कदम: बाध्यकारी बिना सूचीदृश्य में आइटम जोड़ने के नहीं किया जा सकता मैं छोड़ दिया।
इयान बॉयड

5

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

सलाह की कुछ पंक्तियाँ:

  • आसान शुरू करें: केवल एमवीवीएम या फैंसी एनिमेशन का उपयोग करके अपने पहले प्रोजेक्ट को लागू करने का प्रयास न करें। विंडोज़, बटन और सूचियों के साथ सरल शुरुआत करें।
  • DataBinding का लाभ लें।
  • एडम नाथन द्वारा लिखित पुस्तक WPF अनलेशेड खरीदें ।

+1। व्यावहारिक उत्तर। केवल एमवीवीएम या फैंसी एनिमेशन का उपयोग करके अपनी पहली परियोजना को लागू करने की कोशिश न करें
कार्तिक श्रीनिवासन

4

मुझे पहले ध्यान देना चाहिए कि मैं ज्यादातर एक asp.net डेवलपर हूं, हालांकि मैंने बहुत पहले winforms का उपयोग किया है। WPF पर स्विच उतना बड़ा नहीं है जितना आप इसे (imo) एक हफ्ते या इतने (40+ घंटे) के बाद बना रहे हैं, फिर से दूसरा स्वभाव था।

वैसे भी मेरा मानना ​​है कि एंडर्स हेजलबर्ग WPF के पीछे एक आर्किटेक्ट हैं, कम से कम इस पुस्तक के प्रकाशकों के अनुसार->

" WPF के पीछे एक आर्किटेक्ट के रूप में, क्रिस एंडरसन न केवल 'कैसे,' बल्कि 'क्यों' भी बताते हैं। यह पुस्तक डिजाइन सिद्धांतों और WPF की सर्वोत्तम प्रथाओं को समझने के इच्छुक लोगों के लिए एक उत्कृष्ट संसाधन है। "-एंडर्स हेजेल्सबर्ग, तकनीकी साथी, माइक्रोसॉफ्ट कॉर्पोरेशन

http://www.amazon.com/Essential-Windows-Presentation-Foundation-WPF/dp/0321374479


11
"WPF के पीछे के वास्तुकारों में से एक के रूप में, क्रिस एंडरसन कुशलता से बताते हैं ..." सुझाव देता है कि WPF के पीछे क्रिस एंडरसन आर्किटेक्ट में से एक है। एंड्रॉइड कॉर्पोरेशन में एंडर्स हेज्सबर्ग केवल एक "तकनीकी साथी" हैं, उद्धृत पाठ के अनुसार, जो इस प्रकार WPF में उनकी भागीदारी को साबित नहीं करता है।
एंड्रियास रिब्रांडैंड

आह कि यह सच हो सकता है, लेकिन यह दिखाता है कि वह इसका सम्मान करता है!

2
या कम से कम वह क्रिस का सम्मान करता है।
ब्रूस मैकगी

1
या कम से कम यह कि पीआर विभाग ने किसी को प्रतिष्ठा के साथ टिप्पणी करने के लिए मिला।
जल्दी_नौ

@Andreas; अच्छा मजाक: केवल "तकनीकी साथी"। क्रिस एंडरसन को कम नहीं करना चाहते हैं - वह थोड़ा कम प्रोफ़ाइल रखने वाला एक महान व्यक्ति है ( msdn.microsoft.com/en-us/ff395959 वहाँ है, लेकिन simplegeek.com को लंबे समय तक अपडेट नहीं किया गया है)। Anders Hejlsberg कई .NET चीजों में शामिल है (तकनीकी अध्येताओं की एक व्यापक पहुंच होती है), आखिरकार वह एक फ्रेमवर्क (VCL, WCF, आदि) है - साधारण-talk.com/content/article.aspx?article-673 और microsoft देखें .com / presspass / exec / techfellow / Hejlsberg / default.mspx ) और केवल कुछ तकनीकी
फॉलोवर्स हैं

2

Winforms डेल्फी विकास के लिए लगभग समान है। और, ज़ाहिर है, इसके लिए एक कारण है। जिस प्रकार डेल्फी / ऑब्जेक्ट पास्कल ऑब्जेक्ट मॉडल ने C # को भारी प्रभावित किया, उसी प्रकार फॉर्म सिस्टम ने विन्फोर्म्स को प्रभावित किया।

WPF वह दिशा प्रतीत होती है, जिसके अंतर्गत चीजें होती हैं; यह कहा गया है कि (बहुत सुंदर!) VS2010 UI WPF- आधारित है, जो पिछली जनरलों के विपरीत था जो विन्फ़ॉर्म पर बनाए गए थे।

यदि आप अपने कम्फर्ट जोन में रहना चाहते हैं, तो winforms के साथ जाएं। यदि आप नवीनतम और महानतम में फंसना चाहते हैं, तो अपने आप को WPF में डुबोएं।


3
WinForms क्या डेल्फी फैली हुई है, यह वास्तव में डेल्फी की तुलना में बहुत निराशाजनक है। यह डेल्फी की तुलना में VB-3 की तरह अधिक है, और IME का घर्षण स्तर समान है।

2

मैं डेल्फी प्रोग्रामर नहीं हूं, लेकिन हां मैंने WinForm (भारी) और WPF (मध्यम से कम) दोनों पर काम किया है। मैं आपसे किसी हद तक हताशा के स्तर पर सहमत हूं, जो WinForm से WPF में स्विच कर रहा होगा क्योंकि मैं खुद उस स्थिति में हूं, लेकिन केवल जब तक मुझे इसकी आदत नहीं हो जाती। जानें और देखें कि WPF के साथ WinForm की तुलना में अद्भुत और लचीला कैसे है। इसमें भारी सीखने की अवस्था है, कम से कम किसी ऐसे व्यक्ति के लिए जो डेल्फी पृष्ठभूमि से आ रहा है, और विनफॉर्म नहीं है। आपके लिए, यह निश्चित रूप से WinForm के बजाय WPF की ओर बढ़ने लायक है, और समय के लायक है।

आप इसके साथ शुरू करने के लिए नीचे दिए गए लिंक देख सकते हैं:


1

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

पिछली बार विंडोज फॉर्म को अपडेट किया गया था 2005 (वीएस 2005)। यह अभी भी है लेकिन अब माइक्रोसॉफ्ट द्वारा सुधार नहीं किया जा रहा है। WPF डेस्कटॉप ऐप्स के लिए ब्लॉक पर नया बच्चा है, इसलिए यदि आप MS टूल का उपयोग करके .NET प्लेटफॉर्म पर जाने वाले हैं, तो मैं कहूंगा कि यह सुरक्षित शर्त है। कुछ लोग एक डेस्कटॉप समाधान के रूप में सिल्वरलाइट को धक्का देते हैं, लेकिन जब मैंने इसे एक संभावना के रूप में देखा, तो मैंने पाया कि इसकी बहुत सी सीमाएं थीं (जो वेब संदर्भ में समझ में आ सकती हैं, लेकिन डेस्कटॉप पर ऐसा नहीं है।)

नीचे पंक्ति: एक कठिन सीखने की अवस्था है, और मैं अभी भी इसे सीख रहा हूं। लेकिन यह सब इसके लायक था। बहुत मज़ा हैं।


1

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

करियर के नजरिए से, आप WPF बनाम WinForms को जानना भी बेहतर समझते हैं। उपरोक्त कारणों से। साथ ही, सिल्वरलाइट सीखने के लिए आपके पास एक अच्छा पैर होगा। उन दो प्लेटफार्मों के बीच ओवरलैप का एक टन है।

और अंत में, WPF सिर्फ सादा अधिक मजेदार है। और अधिक शक्तिशाली।

सीखने की अवस्था स्थिर है, मैं आपको वह देता हूं। लेकिन यह अंत में अधिक फायदेमंद है।


0

एक अतिरिक्त विचार जो उल्लेख किया जाना चाहिए वह यह है कि मोनो में WPF समर्थन की कोई योजना नहीं है । मुझे लगता है कि आपने (मोनो) क्रॉस-प्लेटफ़ॉर्म समर्थन में कोई दिलचस्पी नहीं दिखाई है, लेकिन आपके भविष्य में इसके लिए एक अवसर हो सकता है (यदि आप विन्फ़ॉर्म के साथ जाते हैं)। वर्तमान में, मोनो में WPF के लिए समर्थन (या समान) साथ आएगा।

संपादित करें: जैसा कि मैंने बताया गया लिंक और गुलशन की टिप्पणी पर प्रकाश डाला, चांदनी क्रॉस-प्लेटफॉर्म सिल्वरलाइट समर्थन प्रदान करने के लिए मोनो टीम के नेतृत्व में एक ओपन-सोर्स प्रयास है


लेकिन चाँदनी सक्रिय विकास में है।
गुलशन

-1

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

मैंने उस समय अपने ब्लॉग पर थोड़ी जानकारी पोस्ट की:
http://blog.dantup.com/2007/08/visual-studio-2008-beta-2-first.html
http://blog.dantup.com/2007 /08/wpf-designer-cider-part-2.html

मैंने इसे 2010 में आजमाया नहीं है, हालांकि मैंने कुछ लोगों से बात की है, और ऐसा लगता है कि यह अभी भी थोड़ा जटिल / कष्टप्रद है जिसके साथ पकड़ना है।

मुझे लगता है कि आपका आवेदन निस्संदेह WPF में बेहतर लगेगा / महसूस करेगा, लेकिन मुझे यह भी लगता है कि इसे बनाने में आपको अधिक समय लगेगा और आप अपने सिर को बहुत पीछे कर लेंगे।


"मुझे लगता है कि आपका आवेदन निस्संदेह WPF में बेहतर लगेगा / महसूस करेगा"। जरूरी नहीं - WPF आपको एक शिट्टी UI लिखने से नहीं बचाएगा। मेरे पास यहां कुछ उदाहरण हैं (जिनमें से एक मेरा है, हालांकि वह कुछ सामान का परीक्षण करने के लिए सिर्फ एक त्वरित 'एन' गंदा थ्रो ऐप था।) यदि आप (और शॉट्स को कॉल करने वाले उर्फ ​​$ $) खर्च करने को तैयार हैं। समय और प्रयास, आप WPF में कुछ अद्भुत चीजें कर सकते हैं।
मेटलमेस्टर

निष्पक्ष बिंदु। मेरा आशय यह था कि WPF आपको अधिक सुंदर ऐप बनाने की अनुमति देता है , क्योंकि आप विंडोज के विजेट से कम विवश हैं। बेशक, यह एक अच्छी और बुरी चीज दोनों हो सकती है!
डैनी टुप्पेनी

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

1
मैं कहूंगा कि यह थोड़ा व्यक्तिपरक है। मैं शायद नहीं चाहूंगा कि मेरा वर्ड पॉसकोर इन सभी नियमों को तोड़ दे, लेकिन सॉफ्टवेयर के कुछ टुकड़े इससे दूर हो सकते हैं। उदाहरण के लिए। सबसे अच्छा WPF नमूनों में से एक जो मुझे याद है कि याहू एक था - मेरे लिए, यह एक विंडोज़-विजेट-आधारित ऐप पर एक बड़ा सुधार है: blogs.msdn.com/cfs-filesystemfile.ashx/__key/…
डैनी युपेनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.