2012-06-26 13 views
9

मैं एक नई परियोजना के लिए एएसपीएनटी एमवीसी परियोजना संरचना का शोध कर रहा हूं और मुझे कुछ भ्रमित करने के बारे में कोई सवाल है। मॉडल और मॉडल देखने के बीच क्या अंतर है? क्या मैं यह कहने में सही होगा कि मॉडल में फॉर्म गुणों में मॉडलों को शामिल किया गया है?मॉडल के बीच अंतर और मॉडल देखें

+0

आप गुगल हो सकते थे। एसओ के पास बहुत सारे प्रश्न हैं reg। यह विषय। – VJAI

+1

यह SO प्रश्न- http://stackoverflow.com/questions/4061440/asp-net-mvc-model-vs-viewmodel, पूरी तरह से इस प्रश्न का उत्तर देता है। – Bibhu

उत्तर

28

मैं एक ब्लॉग है, जहां मैं एक ही दृश्य में नवीनतम पोस्ट, नवीनतम टिप्पणी, पोस्ट श्रेणियों की सूची प्रदर्शित करना चाहते है। मैं यह कैसे कर सकता हूँ? मैं दृढ़ता से मॉडल में से किसी एक को अपना विचार टाइप कर सकता हूं? मॉडल देखें।

मैंने BlogViewModel नामक एक व्यू मॉडल बनाया जिसमें नवीनतम पोस्ट, नवीनतम टिप्पणियां और अन्य सामान शामिल हैं और मैं इस मॉडल के साथ अपना विचार बांधता हूं। posts, comments .. डोमेन मॉडल जबकि BlogViewModelमॉडल देखें, मैंने विशेष रूप से दृश्य के लिए बनाया है।

कल मैं अपने ब्लॉग को मोबाइल संस्करण में दिखाऊंगा और उस समय मैं एक साधारण दृश्य मॉडल बना सकता हूं जिसमें केवल कम गुण हों। अंत में .. मॉडल देखें विचारों के लिए हैं और अधिकांश बार वे वास्तविक डोमेन मॉडल पर रैपर के रूप में कार्य करते हैं!

4

ViewModel विशिष्ट दृश्य में समायोजित व्यवसाय-डोमेन परतों के मॉडल का संस्करण है।

इसमें केवल दृश्य के लिए प्रासंगिक गुण हैं और इसमें विधियां नहीं होनी चाहिए (ToString() जैसे सरल लोगों को छोड़कर)।

ViewModel केवल "डेटा कंटेनर" है।

2

एक मॉडल बस आपके आवेदन में किसी ऑब्जेक्ट का प्रतिनिधित्व है। हालांकि, कुछ अलग-अलग प्रकार के मॉडल हैं जिनके बारे में आपको अवगत होना चाहिए।

  1. डोमेन मॉडल: यह एक एसक्यूएल मेज की तरह अपने आवेदन में एक डोमेन वस्तु का प्रतिनिधित्व करता है, यदि आप एक ORM (Linq2SQL, एफई) का उपयोग कर रहे हैं।

  2. मॉडल देखें: यह उस ऑब्जेक्ट का प्रतिनिधित्व करता है जिसे आप अपने अंतिम उपयोगकर्ताओं को देखना/संपादित/आदि करना चाहते हैं। एक व्यू मॉडल में कई या कोई डोमेन मॉडल से गुण हो सकते हैं और आम तौर पर उन गुणों को बहिष्कृत कर सकते हैं जिनके अंतिम उपयोगकर्ताओं को मिलना नहीं चाहिए। मॉडल देखें केवल उन तत्वों को अवश्य रखना चाहिए जो किसी विशिष्ट अनुरोध के लिए अंतिम उपयोगकर्ता को उचित डेटा प्रदर्शित करने के लिए आवश्यक हैं।

Here is some Jimmy Bogard दृश्य मॉडल और उनके उपयोग के बारे में आपके लिए।

22

आमतौर पर एक मॉडल आमतौर पर आपके डेटा को संग्रहीत करने के तरीके से अधिक निकटता से संबंधित होता है (डेटाबेस, सेवाएं इत्यादि) और मॉडल उनसे मिलकर मिल जाएगा।

दूसरी तरफ व्यूमोडेल उपयोगकर्ता से आपका डेटा कैसे प्रस्तुत किया जाता है उससे निकटता से संबंधित है। यह आम तौर पर आपके मॉडल का एक बड़ा संस्करण है, denormalized, आदि यह कई मॉडलों का एकत्रीकरण हो सकता है।

अपने ठेठ Person वस्तुओं के लिए, अपने मॉडल निम्नलिखित की तरह गुण हो सकते हैं:

  • प्रथम
  • अंतिम नाम
  • जन्मतिथि

हालांकि, में अपने ViewModel आप चुन सकते हैं प्रतिनिधित्व करने के लिए यह अलग-अलग है और कुछ और है:

  • FULLNAME
  • उम्र
+1

मैं जोड़ता हूं कि एक मॉडल ऑब्जेक्ट को किसी ऑब्जेक्ट की अर्थपूर्ण/वैचारिक संरचना, इसकी आंतरिक/प्राकृतिक गुणों और व्यवहारों का प्रतिनिधित्व करना चाहिए, वास्तव में यह वास्तव में कितना संग्रहित नहीं होता है। भंडारण कार्यान्वयन विवरण के अधीन है, जो वस्तु की वास्तविक विशेषताओं नहीं हैं। – heltonbiker

+1

@heltonbiker, यह एक महान बिंदु है। मुझे लगता है कि कई मॉडल हैं, व्यू मॉडेल, बिजनेस लॉजिक मॉडल, डेटा स्टोरेज मॉडल इत्यादि। हम अक्सर संघर्ष करते हैं क्योंकि हम उनमें से प्रत्येक के मतभेदों को गले लगाते हैं और इसके बजाय उनकी समानताओं पर ध्यान केंद्रित करते हैं। मैं जल्द ही इसके बारे में एक ब्लॉग पोस्ट लिख सकता हूं;) –

+1

ऐसा लगता है कि मॉडलिंग सबसे महत्वपूर्ण विकास गतिविधियों में सबसे उपेक्षित है (अच्छी तरह से, कम से कम ज्यादातर स्थानों में मुझे पता है ...) – heltonbiker

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