TOC

This article has been localized into Hindi by the community.

About WPF:

WPF बनाम WinForms

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

WinForms और WPF के बीच सबसे महत्वपूर्ण अंतर यह तथ्य है कि WinForms मानक विंडोज नियंत्रक (जैसे टेक्स्टबॉक्स) के शीर्ष पर एक परत है, WPF स्क्रैच से बनाया गया है और लगभग सभी परिस्थितियों में मानक विंडोज नियंत्रण पर भरोसा नहीं करता है । यह एक सूक्ष्म अंतर की तरह प्रतीत हो सकता है, लेकिन यह वास्तव में नहीं है, जिसे आप निश्चित रूप से नोटिस करेंगे यदि आपने कभी ऐसे फ्रेमवर्क के साथ काम किया होगा जो Win32 / WinAPI पर निर्भर करता है।

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

इस लचीलेपन की कमी यह है कि कभी-कभी आपको कुछ हासिल करने के लिए कड़ी मेहनत करनी पड़ेगी जोकि WinForms के साथ बहुत आसान था, क्योंकि यह केवल उस परिदृश्य के लिए बनाई गई थी जिसके लिए आपको इसकी आवश्यकता है। कम से कम यह शुरुआत में ऐसा ही लगता है, जहां आप खुद को एक चित्र और कुछ अच्छे से लगाये गये टेक्स्ट के साथ ListView के लिए टेम्पलेट बनाते हुए पाते हैं, ऐसा कुछ जो WinForms का ListViewItem कोड की एक पंक्ति में करता है।

यह केवल एक अंतर था, लेकिन जब आप WPF के साथ काम करते हैं, तो आपको पता चलेगा कि यहाँ वास्तव में कई अन्य मतभेदों के लिए अंतर्निहित कारण है - WPF बस बेहतर और बदतर के लिए चीजों को अपने तरीके से कर रहा है। अब आप चीजों को करने के लिए विंडोज़ के माध्यम के बाध्य नहीं हैं, लेकिन इस तरह की लचीलापन पाने के लिए, आप थोड़ा और काम करते हैं जब आप वाकई विंडोज़ के माध्यम से चीजों को करने की कोशिश करते हैं।

निम्नलिखित WPF और WinForms के प्रमुख फायदों की पूरी तरह से व्यक्तिपरक सूची है। इससे आपको एक बेहतर अंदाज मिलना चाहिए कि आप क्या कर रहे हैं।

WPF के फायदे

  • यह नया है और वर्तमान मानकों के अनुरूप है।
  • माइक्रोसॉफ्ट इसका उपयोग बहुत से नए अनुप्रयोगों के लिए कर रहा है, उदहारण विज़ुअल स्टूडियो और आदि ।
  • यह अधिक लचीला है, इसलिए आप नए नियंत्रणों को लिखे या खरीदे बिना अधिक कार्य कर सकते हैं
  • जब आपको तृतीय पक्ष नियंत्रणों का उपयोग करने की आवश्यकता होती है, तो इन नियंत्रणों के डेवलपर्स संभवतः डब्ल्यूपीएफ पर अधिक ध्यान केंद्रित करेंगे क्योंकि यह नया है
  • XAML आपके GUI को बनाना और संपादित करना आसान बनाता है, और काम को एक डिज़ाइनर (XAML) और एक प्रोग्रामर (C#, VB.NET आदि) के बीच विभाजित करने की अनुमति देता है।
  • डेटाबाइंडिंग, जो आपको डेटा और लेआउट का अधिक स्पष्ट पृथक्करण प्राप्त करने की अनुमति देता है
  • बेहतर प्रदर्शन के लिए, जीयूआई ड्राइंग के लिए हार्डवेयर त्वरण का उपयोग करता है
  • यह आपको विंडोज़ अनुप्रयोगों और वेब अनुप्रयोगों (सिल्वरलाइट/एक्सबीएपी) दोनों के लिए यूजर इंटरफेस बनाने की अनुमति देता है।

WinForms के फायदे

  • यह पुराना है और इस तरह अधिक आजमाया और परखा हुआ है
  • पहले से ही बहुत से तृतीय पक्ष नियंत्रण हैं जिन्हें आप मुफ्त में खरीद या प्राप्त कर सकते हैं
  • विजुअल स्टूडियो में डिजाइनर अभी भी लेखन के रूप में, डब्ल्यूपीएफ की तुलना में विनफॉर्म के लिए बेहतर है, जहां आपको डब्ल्यूपीएफ के साथ खुद को और काम करना होगा