43

के लिए स्वच्छ WinForms एमवीसी ट्यूटोरियल की तलाश में एक समृद्ध उपयोगकर्ता इंटरफ़ेस कैसे बनाएं Windows अनुप्रयोग, उदाहरण फोटो शॉप।सी #

मैं WinForms के लिए सी # कहीं के साथ स्वच्छ एमवीसी ट्यूटोरियल की तलाश में हूं। (। नहीं ASP.NET MVC)

विंडोज प्लेटफार्म पर नए होने के नाते; अधिकांश एमएसडीएन और इंटरनेट ट्यूटोरियल मूल रूप से फॉर्म वर्ग में सबकुछ डालते हैं। नियंत्रण/मॉडल पर घटनाओं को भेजने की बजाय, फॉर्म के अंदर और भी डिफ़ॉल्ट घटनाओं को संभाला जाता है, जो इसके बदले में दृश्य के राज्य को बदल देता है।

या विंडोज अनुप्रयोगों के लिए पसंदीदा पद्धति कुछ और है?

+4

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

+3

बू बू पक्षियों के बाहर आने से पहले आप यहां एक नज़र डालना चाह सकते हैं। http://stackoverflow.com/questions/2406/looking-for-a-mvc- नमूना-for-winforms –

+1

क्या कोई प्रश्न पुनः सक्रिय करना संभव है? हम अब 2012 में हैं और मैं विनफॉर्म एमवीसी का एक अच्छा और सरल उदाहरण भी ढूंढ रहा हूं। –

उत्तर

2

मॉडल-व्यू-व्यू मॉडेल (यदि आप विशेष रूप से WPF का उपयोग करने में रुचि रखते हैं/खुश हैं) को देखकर लायक हो सकते हैं।

यह विशेष रूप से WPF और Silverlight के साथ काम करने के लिए tweaked है, और सब कुछ एक साथ गोंद करने के लिए डेटाबेस का उपयोग करता है।

अधिक जानने, जॉन Gossman के introduction सहित के लिए वेब पर संसाधनों का एक नंबर, और एक अच्छा article जोश स्मिथ, जो अपने blog MVVM से संबंधित पर अन्य संसाधनों है द्वारा है।

+1

देखें जोश स्मिथ का लेख वास्तव में अच्छा है – s5804

-1

विंडोज अनुप्रयोगों के लिए, विंडोज ओएस अनजाने में नियंत्रक का हिस्सा बन जाता है।

मॉडल विभिन्न घटनाओं/संदेशों (जैसे माउस क्लिक, चाल, विंडो पुनः आकार, बटन क्लिक ...) की सदस्यता ले सकता है। जब उसने अपना परिवर्तन-अद्यतन-प्रसंस्करण किया है तो दृश्य को रेड्रो ऑपरेशंस के माध्यम से अपडेट किया जाता है।

विंडोज ओएस यहां नियंत्रक के रूप में कार्य करता है क्योंकि यह दोनों मॉडल (जैसे माउस क्लिक) या दृश्य में संदेश भेज रहा है (इसे विंडोज़ का एक हिस्सा गंदा है और इसे रेड्रा की आवश्यकता है)।

किसी भी व्यावसायिक अनुप्रयोग के लिए, आप अपने मॉडल और दस्तावेज़ संरचनाओं को लागू करेंगे और उन्हें संबंधित WinForm ऑब्जेक्ट्स से अलग करेंगे।

इननेट में यह इतना स्पष्ट नहीं है क्योंकि मॉडल और दृश्य दोनों के लिए केवल एक फ़ाइल है। एमएफसी में यह बहुत स्पष्ट था - एक सीडी दस्तावेज़ वर्ग और इसके संबंधित सीवी व्यू वर्ग के साथ।

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

+0

क्या आप सुझाव दे रहे हैं कि ज्यादातर मामलों में Winforms पर्याप्त हैं। बशर्ते मैसेजिंग सही हो? – s5804

+0

हां। हालांकि, अगर आपके पास कई रूपों को अपडेट करने की आवश्यकता है जैसे मामलों में ऐसा लगता है। ऐसे मामले में शायद मॉडल को एक अलग वर्ग में अलग करने का अर्थ हो और मॉडल नियंत्रक और फॉर्म ऑब्जेक्ट्स के बीच समन्वय करने के लिए नियंत्रक को भी लागू किया जा सके। – Sesh

+0

मैं इस कथन से असहमत हूं: "विंडोज़ अनुप्रयोगों के लिए, विंडोज ओएस अनजाने में नियंत्रक का हिस्सा बन जाता है।" यदि आप WinForms किसी विशेष पैटर्न (एमवीसी/एमवीपी/एमवीवीएम/आदि) को जरूरी नहीं करते हैं, तो भी आप पैटर्न का उपयोग कर सकते हैं भले ही balioune_ba से लिंक और पैटर्न और ढांचे के लिए रिफैक्टर पालाडिन को देखें। ऐसा कहा जा रहा है कि, एमवीसी WinForms और WPF के लिए सबसे अच्छा पैटर्न नहीं हो सकता है एमवी * पैटर्न को लागू करने का एक और प्राकृतिक तरीका प्रदान करता है। – Ryan

9

Derick बेली (लॉस टेकीज़ के माध्यम से) मिश्रण (अनुप्रयोग नियंत्रक, घटना एग्रीगेटर) को जोड़ा गया अन्य अच्छे पैटर्न के एक जोड़े के साथ एक WinForms अनुप्रयोग में एमवीपी के बारे में उनकी कार्यान्वयन के लिए blogged some fantastic articles (और पूर्ण डेमो स्रोत कोड) है।

काम से Jeremy D Miller's series of articles titled 'Build Your Own CAB'