WPF पर line-of-business (LOB) एप्लिकेशन को हथियाने की कोशिश करने के तीन महीने बाद, मैं अपने प्रोजेक्ट के लिए विंडोज फॉर्म पर वापस जाने पर विचार करने के मुद्दे पर पहुंच गया, और अन्य लोगों की राय पर शोध करने के लिए, इस धागे में आया ...
हां, डब्ल्यूपीएफ एक शानदार तकनीक है और इसका लाभ केवल आंखों की कैंडी से बहुत दूर है ... templating और बाध्यकारी क्षमताओं महान उदाहरण हैं। पूरा ऑब्जेक्ट मॉडल अधिक लचीलापन और व्यापक संभावनाएं प्रदान करता है। हालांकि, यह भविष्य में LOB अनुप्रयोगों के लिए इसे डिफैक्टो प्लेटफॉर्म नहीं बनाता है।
व्यापारिक तर्क से जीयूआई को अलग करने के मामले में डब्ल्यूपीएफ हल करने वाली "समस्याएं" ऐसी समस्याएं नहीं हैं जिन्हें विंडोज़ फॉर्म में आसानी से सही वास्तुकला और दिमागी सेट से शुरू नहीं किया जा सकता है। यहां तक कि WPF की ऑब्जेक्ट-पथ बाध्यकारी क्षमताओं को विंडोज़ फॉर्म में कुछ बहुत ही सरल सहायक कक्षाओं के साथ पुन: उत्पन्न किया जा सकता है। डब्ल्यूपीएफ की डेटा टेम्पलेट क्षमताओं बहुत अच्छी हैं, लेकिन फिर वे कुछ भी नहीं हैं जिन्हें आप उन दुर्लभ अवसरों पर विंडोज फॉर्म में अनुकरण नहीं कर सकते हैं जब आप पूरी तरह से नहीं जानते कि आप किस वस्तु का प्रतिनिधित्व किसी भी भाग पर प्रस्तुत करने जा रहे हैं स्क्रीन।
जहां विंडोज़ फॉर्म रेस आगे परिपक्वता के मामले में है। आप कुछ ब्लॉग को मारने के बिना Google पर एक मृत बिल्ली को स्विंग नहीं कर सकते हैं, जहां किसी ने आपके लिए विंडोज़ फॉर्म समस्या हल की है। दूसरी ओर, डब्ल्यूपीएफ, तुलनात्मक रूप से कम सीखने के संसाधन उपलब्ध हैं, कम कस्टम नियंत्रण उपलब्ध हैं, और इसकी कई समस्याएं हल नहीं हुई हैं।
विंडोज़ फॉर्म बनाम डब्ल्यूपीएफ बनाने की चोटी पर विकास पर्यावरण की परिपक्वता होनी चाहिए। विंडोज फॉर्म संपादक धीमे, उत्तरदायी और सहज हैं। त्रुटियों के बारे में प्रतिक्रिया तुरंत आपको मिलती है, समाधान आमतौर पर स्पष्ट होते हैं, और संकलन-> डीबग-> विंडोज़ फॉर्म में संपादित चक्र बहुत तेज़ है।
दूसरी तरफ, डब्ल्यूपीएफ अनुप्रयोगों की तुलनात्मक रूप से दयनीय डिजाइन समय समर्थन है, डिजाइन के दृश्य के साथ सभी को एक त्रुटि के पहले मुठभेड़ में चिकन के लिए तैयार है, अक्सर डिजाइनर के ठीक पहले एक परियोजना निर्माण की आवश्यकता होती है फिर से लात मारने के लिए तैयार हैं। टूलबॉक्स से घटकों के ड्रैगड्रॉप को भी समर्थित नहीं किया जा सकता है, जिसमें परिस्थितियों की विस्तृत श्रृंखला दी गई है, जिसके अंतर्गत यह बिल्कुल काम नहीं करता है, या पूरी तरह से अनजान परिणाम उत्पन्न करता है। WpfToolkit के वादे के बावजूद, अभी भी WPF के लिए उपयोग करने योग्य डेटाग्रिड नहीं है जो कि किसी भी तरह के resonable प्रदर्शन या डिजाइन समय मित्रता पैदा करता है।
डिबगिंग WPF अनुप्रयोगों वर्ष ASP.NET डीबगिंग प्रतिमान की तरह एक सा ... हिट F5 है -> इंतजार -> लांच -> त्रुटि -> बंद -> ठीक -> मारा F5 -> प्रतीक्षा करें -> लॉन्च -> त्रुटि -> ग्रोन -> स्टॉप -> फिक्स -> हिट एफ 5 .... आपके प्रोग्राम चल रहे सभी एक्सएएमएल लॉक हैं, और एक्सएएमएल विशिष्ट समस्याओं को ट्रैक करना अक्सर कठिन होता है।
लब्बोलुआब यह है, बस रखा, जो Windows प्रपत्र के लिए विकास उपकरण आप एक WPF आवेदन के समय के एक अंश में बाहर सामने समाप्त होता है की पिटाई की है ... विशेष रूप से आप बना रहे हैं तो जा रहे हैं मास्टर-विस्तार ग्रिड या इंटरफेस की तरह स्प्रेडशीट, जो अधिकांश LOB है। विंडोज फॉर्म के साथ, आप पहले से ही किए गए 90% काम से शुरू करते हैं।
मैं WPF आर्किटेक्चर का एक बड़ा प्रशंसक हूं। मैं बस डिज़ाइन-टाइम टूल-सेट की इच्छा पूर्व-अल्फा डीबग-बिल्ड की तरह महसूस नहीं करता था।
संपादित करें: इस उत्तर के बारे में .NET 3.5 + दृश्य स्टूडियो 2008, लेकिन एक WPF डेटा ग्रिड के साथ दृश्य स्टूडियो 2010 जहाजों के साथ .NET 4.0 तैनात थे। जबकि नए डब्ल्यूपीएफ विकास अनुभव में कई सुधार किए गए हैं, मेरा जवाब यहां अपरिवर्तित बनी हुई है, और मैं निम्नलिखित सुझाव जोड़ना चाहता हूं:
यदि आप RAD विकास करने के लिए दौड़ में हैं, तो विंडोज फॉर्म के साथ जाएं । यदि आप एक अच्छी तरह से आर्किटेक्टेड, रखरखाव योग्य, स्केलेबल, संसाधन अग्निशामक, बहु-उपयोगकर्ता लाइन-ऑफ-बिजनेस एप्लिकेशन का उत्पादन करना चाहते हैं, तो एएसपी.नेट एमवीसी + एचटीएमएल 5 + jQuery पर विचार करें ... इन तकनीकों के साथ मेरी परियोजनाओं के परिणामस्वरूप बेहतर हो गया है परिणाम, जल्द ही, मेरे ग्राहकों के लिए। एमवीसी सभी समान टेम्पलेटिंग प्रदान करता है जो डब्ल्यूपीएफ करता है, और jQuery एनिमेशन और जटिल इंटरैक्शन को सक्षम बनाता है। सबसे महत्वपूर्ण बात यह है कि, एएसपी.नेट एमवीसी + jQuery समाधान के लिए आपके अंतिम उपयोगकर्ताओं को सभ्य ग्राफिक्स हार्डवेयर के साथ आधुनिक डेस्कटॉप की आवश्यकता नहीं होती है।
क्या WPF और Winforms के बीच कोई प्रदर्शन अंतर है? – Marklar
हां समय है, Winforms लगभग किसी भी चीज़ के लिए तेज़ तरीका है। –
@ कैमिलो: मुझे लगता है कि आपकी टिप्पणी भ्रामक है। अधिकांश चीजों के लिए Winforms लगभग 1.2x जितना तेज़ WPF है। कुछ चीजों के लिए यह तेजी से 2x है। दूसरी तरफ, कई चीजों के लिए डब्ल्यूपीएफ वास्तव में विनफॉर्म की तुलना में तेज़ है, कभी-कभी नाटकीय रूप से ऐसा होता है (उदाहरण के लिए एनिमेशन आसानी से WPF में 10x जितना तेज़ हो सकता है)। लेकिन मुझे * कुछ भी नहीं पता है जिसके लिए विनफॉर्म डब्ल्यूपीएफ की तुलना में "तेज़ तरीका" है। –