2010-04-21 11 views
64

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

उत्तर

61

यदि आप अभी शुरू कर रहे हैं, तो सीधे WPF में कूदें।

यह आपको विंडोज़ फॉर्म से सीखने वाली संभावित बुरी आदतों (डब्ल्यूपीएफ के लिए) के बिना अपने इंटरफ़ेस को परिभाषित करने के लिए मार्क-अप का उपयोग करके समृद्ध इंटरफेस बनाने शुरू करने की अनुमति देगा।

+2

+1 मैं बिल्कुल सहमत बनाने के लिए प्रयोग किया जाता है। डब्ल्यूपीएफ विंडोज फॉर्म की तुलना में कहीं अधिक लचीला है और यह जीयूआई विकास में दीर्घकालिक है। यह HTML के बहुत करीब है कि आप XML- आधारित लेआउट का उपयोग कैसे करते हैं।विंडोज फॉर्म के लिए सबसे अच्छा तर्क अभी यह है कि यदि आपके पास इसका उपयोग कर प्रमुख अनुभव वाला एक देव टीम है। डब्ल्यूपीएफ भविष्य है, और यह पहले से ही विंडोज फॉर्म से पहले leaps और सीमा है। –

+2

+1 लेकिन, WPF केवल पिछले संस्करणों में फ़ॉन्ट समस्याओं के कारण .NET 4.0+ से उपयोग योग्य है, इसलिए इसे एप्लिकेशन परिनियोजन के लिए ध्यान में रखें। – Josh

+13

@ फॉक्साइड डब्ल्यूपीएफ .NET 3.5 में प्रयोग योग्य है। बहुत सारे उपयोगी ऐप्स बनाए गए हैं ... फ़ॉन्ट समस्याएं सभी के लिए एक शो स्टॉपर नहीं हैं। –

22

ये दोनों पूरी तरह से अलग तकनीकें हैं। वे दोनों दिशाओं में कुछ इंटरऑपरेबिलिटी परतों की पेशकश करते हैं, लेकिन इसके अलावा कुछ भी सामान्य नहीं है। विंडोज फॉर्म Win32/MFC के शीर्ष पर हल्के रैपर को कम या कम है, जिसका अर्थ है कि .NET में इसकी विस्तारशीलता सभी मामलों में अच्छी नहीं है। डब्ल्यूपीएफ स्क्रैच से लागू एक नया यूआई ढांचा है। जब मौजूदा प्रकारों को अनुकूलित करने की बात आती है तो डब्ल्यूपीएफ भी अधिक लचीला होता है।

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

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

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

+0

+1 पूरी तरह से सहमत हैं। –

3

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

+0

मैं हाथ से xaml लिखता हूं: डी और डिजाइनर का उपयोग मार्जिन और सामान सेट करने के लिए करें। और कुछ नहीं। –

4

दोनों प्रौद्योगिकियों के पास उनके प्रो और कॉन हैं।

डब्ल्यूपीएफ क्रॉस प्लेटफार्म विकास और 'चमकदार' जीयूआई बनाने के लिए बेहतर है। हालांकि इसे WinForms की तुलना में एक नया .net ढांचा की आवश्यकता है और एक dx9 संगत GPU या उच्चतम (जो अधिकांश लोगों के पास होगा) की आवश्यकता होती है।

लेकिन यह सब घटनाओं आदि

WinForms अभी भी एक शक्तिशाली तकनीक है जो अक्सर तथापि WPF से तेजी से विकसित किया जा सकता है, अंत में इंटरफ़ेस/तार बनाने के लिए थोड़ा और अधिक शामिल है , दोनों तकनीकों का उपयोग एक ही चीज़ को प्राप्त करने के लिए किया जा सकता है। हालांकि डब्ल्यूपीएफ 'नया' मानक है।

WinForms सामान्यतः व्यापार अनुप्रयोगों को विकसित करने के लिए इस्तेमाल किया जाता है जबकि WPF अक्सर सॉफ्टवेयर के अधिक अंतिम-उपयोगकर्ता के आधार बिट्स, क्षुधा आदि

संबंधित मुद्दे