मुझे लगता है कि एप्लिकेशन एक-दूसरे से अलग हैं और हमारी समझ के बारे में हमारी समझ अभी भी बहुत सीमित है। पिछले विंडोज़ फॉर्म अनुप्रयोगों पर मैंने काम किया है जो एक-दूसरे से अलग हैं। डिजाइन मतभेद मैंने देखा है (सबसे संयोजनों सहित) कर रहे हैं में से कुछ:
- सीधे डेटाबेस से बात (2 स्तरीय) एक बैकएंड कि दिए गए आवेदन (3 टीयर)
लिए लिखा गया है
- उपयोग
- कई सेवाओं द्वारा उपयोग के लिए लिखी गई वेब सेवाओं का एक सेट उपयोग करें और आपके आवेदन के लिए बदला नहीं जा सकता है। (सेवा-उन्मुख संरचना)
- अपडेट CRUD आपरेशन द्वारा किया जा रहा
- अपडेट command pattern (बैकएंड सर्वर को भेजने से आदेशों)
- data binding/आंकड़ों का कोई उपयोगों के उपयोगों के बहुत से
- अधिकांश डेटा बाइंडिंग के साथ किया जा रहा है "टेबल जैसी" (जैसे चालान) होने के नाते जो मानक ग्रिड नियंत्रणों में अच्छी तरह से काम करते हैं/अधिकांश यूआई डेटा के लिए कस्टम नियंत्रण की आवश्यकता होती है।
- एक डेवलपर/10 या 20 डेवलपर्स (बस यूआई पर) mocks आदि का उपयोग इकाई परीक्षण के
- बहुत सारे की टीमों/कोई इकाई परीक्षण
इसलिए मैं इसे एक कार्यान्वयन के लिए संभव है नहीं लगता है एमवीसी (या एमवीपी) जो हमेशा अच्छी तरह से फिट बैठता है।
सबसे अच्छा पदों मैं वास्तव में देखा है MVC और क्यों एक MVC प्रणाली जिस तरह से यह है बनाया गया है समझा, "Build Your Own CAB" series by Jeremy D Miller है। काम करने के बाद भी आपको अपने विकल्पों को बहुत बेहतर समझने में सक्षम होना चाहिए। Microsoft's Smart Client Guidance (CAB/Microsoft Composite Application Block) पर भी विचार किया जाना चाहिए। यह थोड़ा जटिल है, लेकिन यह उन अनुप्रयोगों के लिए अच्छी तरह से काम कर सकता है जिनके पास एक अच्छा फिट है।
MVC/MVP Implementation for a Winforms Project का चयन करना एक सिंहावलोकन देता है जो पढ़ने योग्य है। PureMVC जैसे बहुत से लोग। मैंने कभी इसका इस्तेमाल नहीं किया है, लेकिन अगली बार जब मुझे एमवीसी ढांचे की आवश्यकता होगी तो मैं इसे देखता हूं।
"Presenter First" एक सॉफ्टवेयर विकास दृष्टिकोण है जो मॉडल व्यू प्रेजेंटर (एमवीपी) डिज़ाइन पैटर्न और test-driven development के विचारों को जोड़ता है। यह आपको ग्राहक की भाषा में परीक्षण लिखकर शुरू करने देता है। उदाहरण के लिए:
"जब मैं क्लिक करें 'सहेजें' बटन तो फ़ाइल बचाया जाना चाहिए और न सहेजा गया फ़ाइल चेतावनी गायब करना चाहिए।"
मैं का उपयोग कर "प्रस्तुतकर्ता पहले कोई अनुभव नहीं है , "लेकिन मैं इसे एक कोशिश जब मैं एक मौका मिलता है दे देंगे, के रूप में यह बहुत आशाजनक दिखता है।
अन्य ढेर ओवरफ्लो प्रश्न देखने के लिए पर here और here हैं चाहते हो सकता है हो सकता है।
यदि आप किसी भी समय WPF का उपयोग करने की सोच रहे हैं तो Model-View ViewModel (MVVM) पैटर्न पर एक नज़र डालें। यहां एक बहुत अच्छा वीडियो है जिसे आपको देखना चाहिए: Jason Dolinger on Model-View-ViewModel।
MVVM (Model View View Model) Design Pattern for Winforms एक और विकल्प दें जो कभी भी आवश्यक होने पर WPF में परिवर्तित करना आसान हो सकता है। Magical.Trevor विंडोज फॉर्म के लिए अभी तक एक और एमवीवीएम नमूना है जिसमें संपत्ति नामों के आधार पर ऑटो बाध्यकारी भी शामिल है।
भी अपने आप को पूछना क्यों आप MVC का उपयोग कर रहे हैं।
- क्या आप जितना संभव हो उतना कोड परीक्षण करने में सक्षम होना चाहते हैं?
- क्या आप जितना संभव हो सके कोड को पुन: उपयोग करने की अनुमति दे रहे हैं?
- क्या आप अपना कोड बेस समझने में आसान बना रहे हैं?
- 101 अन्य कारण जो किसी दिए गए प्रोजेक्ट के लिए मान्य हो सकते हैं।
एक बार जब आप पर अपने करना स्पष्ट हैं, यह एक कार्यान्वयन या किसी अन्य का चयन करने के आसान हो जाता है।
के संभावित डुप्लिकेट [? आप कैसे एक WindowsForms आवेदन में MVC लागू करेगा] (http://stackoverflow.com/questions/ 122388/कैसे-करेंगे-आप-कार्यान्वयन-एमवीसी-इन-ए-विंडोज़फॉर्म-एप्लिकेशन) – nawfal
यह भी देखें [डाटाबेसिंग प्रकार को सुरक्षित कैसे करें और रीफैक्टरिंग का समर्थन कैसे करें] (http://stackoverflow.com/questions/1329138/how-to -मेक-डाटाबेसिंग-टाइप-सेफ-एंड-सपोर्ट-रिफैक्टरिंग) –