2012-07-09 13 views
15

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

+3

यहां बहुत सारी सहायता है: https://www.google.com/#q=difference+between+MVP+MVC+and+MVVM।हम क्या कह सकते हैं कि उन ब्लॉगों में पहले से ही पर्याप्त रूप से शामिल नहीं है? –

+5

@ रॉबर्ट हार्वे: अधिकांश ब्लॉग वास्तव में भ्रमित होते हैं और लोग उसी प्रतिलिपि चिपकाने को दोहराते रहते हैं। मैं यह नहीं देखता कि इस तरह से यह सटीक और समझा जा सकता है। मुझे भी यकीन है कि, मेरे जैसे कई लोग हैं जो पूछे जाने पर मतभेदों को स्पष्ट रूप से स्पष्ट नहीं कर सकते हैं। मैं 3 के अंतर को समझाते हुए एक लेट मैन वाक्यों को पसंद करूंगा और जैसा कि मैंने पूछा था, अगर मैं वर्तमान मॉडल के साथ नियंत्रक को वर्तमान और प्रस्तुतकर्ता के साथ बदलता हूं तो क्या होगा। मुझे इन प्रकार के सवालों के जवाब चाहिए। तकनीकी अंतर भी। (क्योंकि सभी एक ही लक्ष्य में हैं) – Learner

+0

SO विशिष्ट प्रोग्रामिंग प्रश्नों के लिए है। – Paparazzi

उत्तर

10

मैं आपको एक पूरा उत्तर नहीं दे सकता, हालांकि मैंने इन पैटर्न में से कुछ सीखने के लिए संघर्ष किया और शायद आपको कुछ मुख्य मतभेदों के बारे में एक विचार देने में सक्षम हो।

मैंने पहले एमवीवीएम सीखा, और फिर एमवीसी। मैं एमवीपी से अवगत हूं और यह सिद्धांत में कैसे काम करता है, हालांकि मैंने वास्तव में इसके साथ कोई एप्लिकेशन नहीं बनाया है।

डिज़ाइन पैटर्न के बीच सबसे बड़ा अंतर ऐसा लगता है कि एप्लिकेशन प्रवाह और तर्क को नियंत्रित करता है।

में MVVM, अपने कोड वर्गों (ViewModels), जबकि अपने Views सिर्फ एक सुंदर उपयोगकर्ता के अनुकूल इंटरफेस है कि आवेदन कोड के शीर्ष पर बैठता है और उपयोगकर्ताओं को इसे के साथ बातचीत करने की अनुमति देता है कर रहे हैं, आपके आवेदन कर रहे हैं। इसका मतलब है कि ViewModels का एक बड़ा काम है, क्योंकि आपके आवेदन हैं, और आवेदन प्रवाह से लेकर व्यवसाय तर्क तक सबकुछ के लिए ज़िम्मेदार हैं।

एमवीसी के साथ, आपके Views आपके आवेदन हैं, जबकि आपके Controller एप्लिकेशन प्रवाह को संभालते हैं। आवेदन तर्क आमतौर पर ViewModels में पाया जाता है, जिसे एमवीसी में M का हिस्सा माना जाता है (एसडेनोट: एमवीसी में M एमवीवीएम में M के समान नहीं माना जा सकता है क्योंकि एमवीसी की M परत में एमवीवीएम की M परत की तुलना में अधिक कार्यक्षमता शामिल है)। उपयोगकर्ता को एक स्क्रीन दी जाती है (View), वे इसके साथ बातचीत करते हैं तो Controller पर कुछ सबमिट करते हैं, और Controller यह तय करता है कि डेटा के साथ कौन करता है और उपयोगकर्ता को नया View देता है।

मैंने एमवीपी का उपयोग नहीं किया है, हालांकि इसकी समझ एमवीसी के समान ही थी, लेकिन क्लाइंट/सर्वर एप्लिकेशन के बजाय डेस्कटॉप एप्लिकेशन के लिए अनुकूलित किया गया था। Views वास्तविक एप्लिकेशन हैं, जबकि Presenter एप्लिकेशन ईवेंट और व्यावसायिक तर्क को संभालता है।

+0

आपके ज्ञान और अनुभव को साझा करने के लिए राहेल बहुत बहुत धन्यवाद। यह वास्तव में समझने के लिए मुझे बहुत मदद करता है। मैं इसकी सराहना करता हूं। मैं और अधिक से गुजर जाऊंगा, धन्यवाद मैडम :) चीयर्स – Learner

+0

एफवाईआई, एमवीपी दो स्वादों में आता है: निष्क्रिय दृश्य और पर्यवेक्षण नियंत्रक। निष्क्रिय दृश्य एमवीसी से काफी अलग है। मेरी समझ से एमवीपी वेब (जीडब्ल्यूटी) के लिए भी उपयुक्त है। –

+2

@ गेटेटहॉल धन्यवाद, मैं वास्तव में एमवीपी के बारे में बहुत कुछ नहीं जानता। मैं अनुमान लगा रहा हूं कि "निष्क्रिय दृश्य" का अर्थ यह है कि यह घटना संदेशों के लिए निष्क्रिय रूप से इंतजार कर रहा है और उन्हें एमवीसी के नियंत्रक की तरह प्रतिक्रिया देता है, जबकि "पर्यवेक्षण नियंत्रक" का अर्थ है कि यह पूरे एप्लिकेशन प्रवाह का प्रभार लेता है जैसे कि एमवीवीएम के व्यूमोडेल करता है? एक निष्क्रिय बॉस की तरह जो वापस बैठता है और कोई समस्या होने पर केवल आपके काम में हस्तक्षेप करता है, या एक नियंत्रित बॉस जो आपके काम को सूक्ष्म-प्रबंधित करना पसंद करता है? :) – Rachel

1

MVC में आप मॉडल देखें नियंत्रक एक त्रिकोण एमवीपी में के रूप में जुड़ा हुआ है आप मॉडल देखें प्रस्तुतकर्ता जुड़ा हुआ lineary मूल रूप से MVC और एमवीपी बहुत बहुत समान हैं, लेकिन यह MVC के साथ काम करने सरल है, भले क्योंकि आप पहले से ही निर्माण किया है एमएस प्लगइन अपने एमवीसी को अपने फायदे प्रदान करने और अलग करने के लिए एमवीपी के साथ आपका ऐप सामान्य एएसपी.नेट ऐप की तरह दिखता है, इसका मतलब है: विचारों के लिए कोई रेजर, नहीं। सीएसटीएमएल, आदि और आपको संरचना से निपटना होगा अपनी खुद की। एमवीवीएम आमतौर पर सिल्वरलाइट/डब्ल्यूपीएफ में उपयोग किया जाता है और उन तकनीकों के लिए यह सबसे अच्छा विकल्प है। एमवीवीएम और एमवीसी का विचार काफी समान है। यदि आप नॉकआउट का उपयोग करते हैं तो आप अपने वेब ऐप के क्लाइंट साइड पर एमवीवीएम भी लागू कर सकते हैं।

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