2013-09-23 3 views
13

मेरे पास WinForms के साथ एक छोटा सा प्रोग्राम है और अब मैं इसे WPF का उपयोग करके फिर से बनाना चाहता हूं।एक विनफॉर्म एप्लिकेशन को WPF एप्लिकेशन में कनवर्ट करें

मैं WPF के लिए नया हूं और मैंने पढ़ा है कि आप XAML के साथ जो भी कर सकते हैं, आप इसके बिना भी कर सकते हैं, जिसका अर्थ केवल कोड का उपयोग करना है।

बेशक आपके पास Winforms का उपयोग करते समय कोई XAML नहीं है। क्या मैं WPF एप्लिकेशन के लिए एक ही कोड का उपयोग कर सकता हूं जिसे मैंने Winforms एप्लिकेशन के लिए उपयोग किया था और एक ही परिणाम प्राप्त किया था? या मुझे XAML बनाने और संपादित करने की आवश्यकता है? XAML का उपयोग करने या उपयोग करने के क्या फायदे हैं?

इसके अलावा, Winforms का उपयोग कर पिछले अनुभव पर विचार करते हुए, क्या मुझे किसी भी तरह से डिजाइन और कार्यान्वयन के बारे में सोचने का तरीका बदलना चाहिए जो Winforms के लिए काम करता है लेकिन क्या यह WPF के लिए उपयुक्त नहीं है?

+2

क्यों आप WPF में इसे पुन: करना चाहते हैं? –

+2

@ सिस्टमडाउन मैं डब्ल्यूपीएफ के लिए काफी नया हूं क्योंकि आपने मेरे प्रश्न से एहसास किया है और मुझे पता है कि आप WPF का उपयोग करके सबकुछ बेहतर दिख सकते हैं। लगभग कोई भी अभी भी Winforms का उपयोग नहीं करता है अगर यह कुछ बहुत ही छोटी, गैर पेशेवर सामग्री के लिए नहीं है और मैं WPF के बारे में कुछ और अध्ययन करना चाहता हूं। –

+1

चूंकि यह सीखने का अनुभव होगा, मैं सिर्फ स्क्रैच से सामान फिर से बनाऊंगा। आप और जानेंगे और जो भी नुकसान सीधे अनुवाद आपको प्राप्त कर सकते हैं उससे बचें। –

उत्तर

23

नहीं, आप WPF में Winforms से कोड का पुन: उपयोग नहीं कर सकते हैं।

और यहां तक ​​कि यदि आप कर सकते हैं, तो आपको नहीं करना चाहिए।

जो कुछ भी आप XAML के साथ कर सकते हैं, आप भी कर सकते हैं बिना यह

आप वास्तव में यूआई को परिभाषित है, और फिर DataBinding और MVVM, जिनमें से एक और अधिक पेशेवर तरीका है उपयोग करने के लिए XAML का उपयोग करना चाहिए पारंपरिक प्रक्रियात्मक Winforms दृष्टिकोण से विकास।

एक्सएएमएल का उपयोग नहीं करना इसका उपयोग करने से कहीं अधिक परेशानी है। यह पहली बार डर लग रहा है लेकिन यह काम करने के लिए एक बहुत ही बढ़िया बात है।

पाठ्यक्रम कि आप किसी भी XAML की जरूरत नहीं है की जब Winforms

नहीं, बिल्कुल नहीं का उपयोग कर

। Winforms एक वास्तव में पुरानी तकनीक है जो कुछ भी समर्थन नहीं करता है। यही कारण है कि उन्होंने विजुअल स्टूडियो डिजाइनर बनाया, अन्यथा किसी भी चीज के लिए किसी भी चीज के लिए कभी भी Winforms का उपयोग नहीं किया होता था, क्योंकि कुछ भी उपयोगी करने के लिए आवश्यक कोड की भयानक गड़बड़ी थी।

मैं WPF अनुप्रयोग है कि मैं WinForms आवेदन के लिए इस्तेमाल किया और एक ही परिणाम प्राप्त करने के लिए एक ही कोड का उपयोग कर सकते हैं?

शायद, कुछ वर्ग के नाम और क्या नहीं है, लेकिन फिर आप डब्ल्यूपीएफ द्वारा प्रदान किया गया मुख्य लाभ खो देते हैं, जो वास्तव में भयानक Winforms- जैसे कोड से छुटकारा पा रहा है।

Winforms का उपयोग कर अतीत के अनुभव को देखते हुए मैं किसी भी तरह तरह से मैं डिजाइन और कार्यान्वयन के बारे में सोच रहा हूँ कि Winforms के लिए काम किया बदल चाहिए, लेकिन WPF के लिए कि उपयुक्त नहीं हैं?

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

मैं दृढ़ता से WinForms से WPF के उन्नयन के बारे में Rachel's Excellent Post पढ़ने की सलाह।

+1

का उपयोग करें। क्या आपके पास लेखों के कुछ लिंक हो सकते हैं या आप स्वयं की क्या सलाह नहीं देते हैं? मैंने ट्यूटोरियल को http://www.wpftutorial.net/ पर पढ़ना शुरू किया क्या आपको पता है कि यह एक अच्छा स्रोत है या नहीं? –

+0

@YonatanNir सबसे पहले, मैं राहेल की सामग्री (ऊपर लिंक) के माध्यम से जाने की सिफारिश करता हूं। –

1

एक्सएएमएल के बिना डब्ल्यूपीएफ नियंत्रण बनाने की कोशिश कर रहा है परेशानी की मांग कर रहा है - पूरा ढांचा एमवीवीएम पैटर्न के आसपास बनाया गया है जो मांग करता है कि आपके व्यू को एक प्रक्रियात्मक फैशन की बजाय एक घोषणात्मक फैशन में वर्णित किया जाए। जबकि आप निश्चित रूप से सी # और एक्सएएमएल में एक ही यूआई ऑब्जेक्ट्स बना सकते हैं, तो सी # में ऐसा करने के लिए आपको यूआई की स्थिति बदलते समय क्षतिपूर्ति करने के लिए फ्रेमवर्क कैसे काम करता है (वास्तव में विस्तार से विस्तार से) की आवश्यकता होगी। फ्लिप पक्ष पर, यदि आप इसे एक्सएएमएल करते हैं (जैसा डब्ल्यूपीएफ आपको बताता है), तो चीजें आम तौर पर ठीक ठीक होती हैं और अंतहीन बग के आसपास काम करने की आवश्यकता के बिना। संक्षेप में "हाँ" आप इसे कोड में कर सकते हैं, लेकिन "नहीं" आप इसे अपनी संवेदना खोए बिना कोड में नहीं कर सकते हैं।

2

मैं सीधे WPF करने के लिए एक winforms अनुप्रयोग परिवर्तित करने की कोशिश की, और यह तरीका अधिक मुद्दों से आप की जरूरत है क्योंकि आप ढांचे हर समय लड़ रहे हैं का कारण बनता है। एमवीवीएम और डाटाबेसिंग पर पढ़ें और इसका इस्तेमाल करें। इसका क्या डब्ल्यूपीएफ डिजाइन किया गया है, और टेस्टेबिलिटी जैसे कई फायदों के साथ आता है। आप वास्तव में (, ViewModels आदि बाइंडिंग ...) सरल अवधारणाओं के कुछ के साथ काफी एक लंबा रास्ता मिल सकता है और अपने ज्ञान का विस्तार के रूप में तुम जाओ, लेकिन मैं WPF में MVVM की समझ और डेटा बाइंडिंग की सलाह देते हैं पहले।

एक अच्छा ढांचा MVVMLight होगा के साथ शुरू करने के लिए मिलता है, लेकिन इसके लायक एक रूपरेखा के बिना मूल बातें लिख पता है कि कैसे चीजों को पहली बार काम पाने के लिए। http://reedcopsey.com/series/windows-forms-to-mvvm/

+0

मैंने ट्यूटोरियल को http://www.wpftutorial.net/ पर पढ़ना शुरू किया क्या आपको पता है कि यह विषय के बारे में एक अच्छा स्रोत है या नहीं? –

1

वास्तव में यह कैसे जटिल अपनी परियोजना है पर निर्भर करता है:

मैं ईख copsey से पदों की यह एक अच्छा सेट किया जा रहा याद करने लगते हैं। काफी छोटी परियोजना के लिए आप इसे "रूपांतरण" काफी सरल बना सकते हैं। लेकिन यह एक अच्छा अभ्यास नहीं है क्योंकि WPF विकास अक्सर एमवीवीएम/प्रिज्म पर आधारित होता है और वे आपको बहुत सारे फायदे देते हैं। इसके अलावा आपके यूआई का व्यवहार अलग हो सकता है - यह आपकी परियोजना की जटिलता पर निर्भर करता है।

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