यहां बताया गया है कि मैं अपने MVVM डब्ल्यू/LINQ परियोजनाओं के आयोजन किया गया है:
मॉडल - मैं सिस्टम की स्थिति के रूप में मॉडल के बारे में सोच। यह डेटा के लिए एक इंटरफेस प्रदान करता है, और यह सिस्टम की स्थिति का ट्रैक रखता है। मॉडल को व्यूमोडेल या व्यू के बारे में पता नहीं है - यह सिर्फ अपने डेटा और विभिन्न घटनाओं को सार्वजनिक इंटरफ़ेस प्रदान करता है ताकि उपभोक्ताओं को (आमतौर पर व्यूमोडेल) पता चले कि राज्य कब बदल गया है।
ViewModel - ViewModel के आयोजन या सभी डेटा देखें द्वारा आवश्यक की संरचना, (जैसे कि एक डेटा ग्रिड के वर्तमान में चयनित पंक्ति के रूप में) को देखने की स्थिति का ट्रैक रखने, और कार्रवाई का जवाब देने के आरोप में है दृश्य पर (जैसे बटन धक्का)। यह जानता है कि को की आवश्यकता है, लेकिन यह वास्तव में दृश्य के बारे में नहीं जानता है।
देखें - दृश्य यूआई का वास्तविक रूप और अनुभव है। इसमें सभी अंतर्निहित और कस्टम नियंत्रण होते हैं, वे कैसे व्यवस्थित होते हैं, और वे कैसे स्टाइल होते हैं। यह ViewModel के बारे में जानता है, लेकिन केवल इसके गुणों के लिए बाध्यकारी के उद्देश्य के लिए।
गेटवे - यह वह हिस्सा है जो सीधे आपके प्रश्न को संबोधित करता है। गेटवे (जो मूल रूप से "DataAccessLayer" कहने का मेरा तरीका है) इसकी अपनी अलग परत है। इसमें सीआरयूडी में सभी कोड (LINQ क्वेरीज़ सहित) शामिल हैं या डेटा को आपके डेटा स्रोत (डेटाबेस, एक्सएमएल फ़ाइल इत्यादि) से चुनें, डालें, अपडेट करें और हटाएं। यह मॉडल को एक सार्वजनिक इंटरफ़ेस भी प्रदान करता है, जिससे मॉडल स्रोत को अद्यतन करने के लिए आवश्यक विवरण (यानी, प्रश्न) के साथ खुद को चिंता किए बिना सिस्टम स्थिति को बनाए रखने पर ध्यान केंद्रित करने की अनुमति देता है।
डेटाएप क्लासेस - सी # में, ये बहुत सरल वर्ग हैं जो आपके मूल डेटा ऑब्जेक्ट्स को मॉडल करते हैं। जब आप LINQ क्वेरी का उपयोग करके कुछ चुनते हैं, तो आप आमतौर पर IEnumerable<T>
या List<T>
बनायेंगे जहां T
आपकी डेटा ऑब्जेक्ट्स में से एक है। एक डेटा वस्तु का एक उदाहरण होगा:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
इस तरह की एक डिजाइन के बड़ा लाभ यह है कि यह वास्तव में अपनी चिंताओं को अलग करती है। सब कुछ एक विशेष नौकरी है, और यह (आमतौर पर) यह जानना बहुत आसान है कि किस तरह की चीज कहां जाती है।
नुकसान यह है कि यह छोटी परियोजनाओं के लिए अधिक हो सकता है। आप सार्वजनिक इंटरफेस के लिए बहुत सारे बुनियादी ढांचे का निर्माण करते हैं जो मूल रूप से कई परतों के माध्यम से एक ही इच्छा को पार करते हैं। तो, आप इस तरह के परिदृश्य के साथ समाप्त हो सकते हैं: [उपयोगकर्ता क्लिक सबमिट करते हैं, ViewModel AddNewPerson को मॉडल बताता है, मॉडल इस तरह के परिदृश्य के बजाय गेटवे को इंसर्टपर्सन को बताता है] [उपयोगकर्ता क्लिक सबमिट करें, ViewModel सीधे डेटाबेस में नया रिकॉर्ड जोड़ता है]।
उम्मीद है कि मदद करता है।
कभी-कभी नमूना कोड बिंदु को चित्रित करने के लिए लिखा जाता है। उत्पादन कोड लिखा जाना चाहिए ताकि यह रखरखाव और समझा जा सके। – Min