मेरा विचार है कि एप्लिकेशन एक-दूसरे से बहुत अलग हैं और एप्लीकेशन कैसे लिखे जाने चाहिए, इस बारे में हमारी समझ अभी भी बहुत सीमित है। विगत विंडोज फॉर्म के अनुप्रयोग जिन पर मैंने काम किया है वे एक दूसरे से बहुत अलग हैं। मेरे द्वारा देखे गए कुछ डिज़ाइन अंतर (अधिकांश संयोजनों सहित):
- सीधे डेटाबेस से बात करें (2 स्तरीय)
- दिए गए एप्लिकेशन के लिए लिखे गए बैकएंड का उपयोग करें (3 स्तरीय)
- वेब सेवाओं के एक सेट का उपयोग करें जो कई अनुप्रयोगों द्वारा उपयोग के लिए लिखा गया था और आपके आवेदन के लिए बदला नहीं जा सकता है। (सेवा उन्मुख संरचना)
- सीआरयूडी संचालन द्वारा किए जा रहे अपडेट
- कमांड पैटर्न के साथ किए जा रहे अपडेट (बैकएंड सर्वर पर कमांड भेजना)
- डेटा बाध्यकारी के usages के बहुत सारे / डेटा बाध्यकारी का कोई usages
- अधिकांश डेटा "टेबल जैसा" (जैसे चालान) जो मानक ग्रिड नियंत्रणों में अच्छी तरह से काम करते हैं / अधिकांश यूआई डेटा के लिए कस्टम नियंत्रण की आवश्यकता होती है।
- एक डेवलपर / 10 या 20 डेवलपर्स की टीमें (सिर्फ UI पर)
- मोक्स आदि का उपयोग करके इकाई परीक्षण के बहुत सारे / कोई इकाई परीक्षण नहीं
इसलिए मुझे नहीं लगता कि एमवीसी (या एमवीपी) के एक कार्यान्वयन को बनाना संभव है जो हमेशा अच्छी तरह से फिट बैठता है।
सबसे अच्छा पदों मैंने देखा है वास्तव में समझा MVC और क्यों एक MVC प्रणाली जिस तरह से यह है बनाया गया है, है जेरेमी डी मिलर द्वारा "अपनी खुद की कैब का निर्माण" श्रृंखला । काम करने के बाद हालांकि आपको अपने विकल्पों को बेहतर तरीके से समझने में सक्षम होना चाहिए।
Microsoft के स्मार्ट क्लाइंट गाइडेंस (CAB / Microsoft समग्र अनुप्रयोग ब्लॉक) पर भी विचार किया जाना चाहिए। यह थोड़ा जटिल है, लेकिन यह उन अनुप्रयोगों के लिए अच्छी तरह से काम कर सकता है जिनके पास एक अच्छा फिट है।
Winforms प्रोजेक्ट के लिए MVC / MVP कार्यान्वयन का चयन एक अवलोकन देता है जो पढ़ने योग्य है। बहुत सारे लोग PureMVC को पसंद करते हैं । मैंने इसका कभी उपयोग नहीं किया है, लेकिन अगली बार जब मुझे एमवीसी ढांचे की आवश्यकता होगी, तो मैं इसे देखूंगा।
" प्रस्तुतकर्ता प्रथम " एक सॉफ्टवेयर विकास दृष्टिकोण है जो मॉडल व्यू प्रस्तुतकर्ता (एमवीपी) डिजाइन पैटर्न और परीक्षण-संचालित विकास के विचारों को जोड़ता है । यह आपको ग्राहक की भाषा में परीक्षण लिखकर शुरू करने देता है। उदाहरण के लिए:
"जब मैं 'सेव' बटन पर क्लिक करता हूं तो फाइल को सेव किया जाना चाहिए और बिना सहेजे फाइल चेतावनी गायब हो जानी चाहिए।"
मुझे "प्रस्तुतकर्ता प्रथम" का उपयोग करने का कोई अनुभव नहीं है, लेकिन मैं इसे एक मौका देने पर कोशिश करूंगा, क्योंकि यह बहुत आशाजनक लग रहा है।
अन्य ढेर अतिप्रवाह प्रश्न आप यहाँ और यहाँ देखना चाह सकते हैं ।
यदि आप किसी भी बिंदु पर WPF का उपयोग करने की सोच रहे हैं तो मॉडल-व्यू व्यूमॉडल (MVVM) पैटर्न पर एक नज़र डालें । यहां एक बहुत अच्छा वीडियो है जिसे आपको देखना चाहिए: मॉडल-व्यू-व्यूमॉडल पर जेसन डोलिंगर ।
WinVs के लिए MVVM (मॉडल व्यू मॉडल देखें) डिज़ाइन पैटर्न एक और विकल्प देता है जो कभी भी ज़रूरत पड़ने पर WPF में परिवर्तित करने में आसान बना सकता है। Magical.Trevor अभी तक विंडोज फॉर्म के लिए एक और MVVM नमूना है जिसमें संपत्ति के नाम के आधार पर ऑटो बाइंडिंग भी शामिल है।
अपने आप से यह भी पूछें कि आप एमवीसी का उपयोग क्यों कर रहे हैं।
- क्या आप अधिक से अधिक कोड को इकाई परीक्षण में सक्षम होना चाहते हैं?
- क्या आप पुन: उपयोग किए जाने के लिए अधिक से अधिक कोड की अनुमति देने का प्रयास कर रहे हैं?
- क्या आप अपने कोड आधार को समझने में आसान बनाने की कोशिश कर रहे हैं?
- 101 अन्य कारण जो किसी दिए गए प्रोजेक्ट के लिए मान्य हो सकते हैं।
एक बार जब आप अपने उद्देश्यों पर स्पष्ट हो जाते हैं , तो एक कार्यान्वयन या किसी अन्य को चुनना आसान हो जाता है।