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 के फायदे

  • It's newer and thereby more in tune with current standards
  • Microsoft is using it for a lot of new applications, e.g. Visual Studio
  • It's more flexible, so you can do more things without having to write or buy new controls
  • When you do need to use 3rd party controls, the developers of these controls will likely be more focused on WPF because it's newer
  • XAML makes it easy to create and edit your GUI, and allows the work to be split between a designer (XAML) and a programmer (C#, VB.NET etc.)
  • Databinding, which allows you to get a more clean separation of data and layout
  • Uses hardware acceleration for drawing the GUI, for better performance
  • It allows you to make user interfaces for both Windows applications and web applications (Silverlight/XBAP)

WinForms के फायदे

  • It's older and thereby more tried and tested
  • There are already a lot of 3rd party controls that you can buy or get for free
  • The designer in Visual Studio is still, as of writing, better for WinForms than for WPF, where you will have to do more of the work yourself with WPF
This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!