2010-06-24 10 views
7

ऐसा लगता है कि संभावित एमवीसी विन्यास/आर्किटेक्चर (एमवीसी, एमवीवीएम, एमवीपी, एचएमवीसी, पीएसी, दस्तावेज़-दृश्य ...) का एक टन है। क्या कोई वर्तमान में स्वीकृत 'सर्वश्रेष्ठ' या अत्याधुनिक एमवीसी आर्किटेक्चर है? नवीनतम सोच क्या है? या यह सब कुछ मुफ्त में है और/या जो भी प्लेटफार्म विकसित होता है उससे जुड़ा हुआ है (उदा। डब्लूपीएफ के लिए एमवीवीएम)?एमवीसी वास्तुकला में कला का राज्य?

(विशेष रूप से मैं के रूप में डेस्कटॉप/अमीर क्लाइंट अनुप्रयोग में लागू MVC में दिलचस्पी रखता हूँ।)

+0

+1 अच्छा प्रश्न। डेस्कटॉप/समृद्ध क्लाइंट ऐप्स के संदर्भ में – adatapost

उत्तर

6

सं आप क्या "वर्तमान में स्वीकार" सबसे अच्छा वास्तुकला है पर कोई समझौता नहीं मिलेगा।

यह है हुक्म हो सकता है निश्चित रूप से एमवीसी या एमवीपी नहीं। ये आर्किटेक्चर क्रमश: 70 के दशक के उत्तरार्ध और 90 के दशक के आरंभ में उत्पन्न हुए। एमवीपी एमवीसी पर एक सुधार है, लेकिन बीवी वर्षों में एमवीपी का आविष्कार होने के बाद, यह स्पष्ट हो गया है कि यह कई, कई त्रुटियों से ग्रस्त है। यही कारण है कि इतने सारे नए प्रतिस्पर्धी आर्किटेक्चर हैं।

"मॉडल" की अवधारणाएं डी "व्यू" अच्छी तरह से स्वीकार किए जाते हैं और आजकल सभी मौजूदा आर्किटेक्चर मॉडल के लिए आम हैं। असली सवाल यह है कि उन्हें एक साथ कैसे जोड़ना है। मॉडल और दृश्य के अलावा आपको कुछ और चाहिए, लेकिन क्या?

अधिकांश नए आर्किटेक्चर डेटा को बाध्यकारी, अभिव्यक्तियों या इसी तरह के तंत्र का उपयोग करके दृश्य लिंक या सीधे "और कुछ और" बाध्य करके ऐसा करते हैं। इस तरह मॉडल में जो भी सीधे दृश्य से बंधे जा सकते हैं, उसे "कुछ और" शामिल करने की आवश्यकता नहीं है।

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

एमवीवीएम शहर में एकमात्र उन्नत खिलाड़ी नहीं है। पारंपरिक मॉडल और विचारों पर बने पहलू उन्मुख दृष्टिकोण और कमांड आर्कटेक्चर में भी समान आकांक्षाएं होती हैं।

नीचे की रेखा यह है कि यह अभी भी एक सक्रिय रूप से शोध क्षेत्र है और इस समय कोई आम सहमति नहीं मिली है। एमवीवीएम नए आर्किटेक्चर का सबसे लोकप्रिय है लेकिन केवल एक ही नहीं है। निर्णय अभी होना है।

नोट: कैसे नए आर्किटेक्चर MVC और एमवीपी से अधिक सुधार कर रहे हैं में से कुछ विचार प्राप्त करने के लिए, this comparison of Cocoa and WPF की जाँच शीर्षक "दोहराए कोड" से आरंभ होने और "कमांड वास्तुकला" अनुभाग के अंत तक नीचे जा रहा।

+0

क्या ऐसी साइट का कोई लिंक है जो कुछ विस्तार से एमवीवीएम का वर्णन करता है? –

+0

ऐसी कई साइटें हैं। एमवीवीएम पर विकिपीडिया लेख में 12 बाहरी लिंक हैं, जिनमें से कई आप जो खोज रहे हैं वह प्रतीत होता है। http://en.wikipedia.org/wiki/Model_View_ViewModel चेतावनी: इनमें से कुछ लिंक आपके प्रत्येक मॉडल गुणों के लिए आपके व्यूमोडेल में प्रॉक्सी प्रॉपर्टी बनाने का वर्णन करते हैं, लेकिन यह स्पष्ट करने में विफल रहता है कि यह * केवल * आवश्यक या वांछनीय है आपके मॉडल में संपत्ति परिवर्तन अधिसूचना की कमी है। मैं एक डेटा परत का उपयोग करता हूं जो संपत्ति परिवर्तन अधिसूचना को सही तरीके से लागू करता है, इसलिए जब मैंने एमवीवीएम का उपयोग किया है तो मुझे ऐसे प्रॉक्सी गुण बनाने का कोई कारण नहीं था। –

3

नवीनतम वास्तु अनुसंधान गूगल द्वारा किया जा रहा है मोटी ग्राहकों के लिए इन दिनों किया जा रहा है। एमवीपी वास्तुकला के साथ।

एमवीपी पर GWT लेख की जांच करें
http://code.google.com/webtoolkit/articles/mvp-architecture.html
http://code.google.com/webtoolkit/articles/mvp-architecture-2.html

इसके अलावा इस http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/8b0ae5eaf84d8bc2?hide_quotes=no

पर देखने के अलावा, http://www.youtube.com/watch?v=PDuhR18-EdM

जहां तक ​​आपके सवाल का जवाब देने के रूप में इस यूट्यूब वीडियो की जाँच के अलावा कह रही है कि एमवीसी दयालु है, मुझे लगता है कि यह किस तरह से जाने के लिए बहुत ही व्यक्तिपरक है। यह मंच विशिष्ट नहीं है, सिवाय इसके कि फ्रेमवर्क आप लेने वास्तुकला :(

+0

जीडब्ल्यूटी? .. क्या मैं इसे गलत तरीके से पढ़ रहा हूं, या क्या आप वास्तव में यह कहते हैं कि एमवीपी आर्किटेक्चर Google है? –

+0

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

+0

** एमवीपी 90 के दशक के शुरुआती दिनों से आसपास रहा है ** और पुरानी खबर है। यदि प्रश्न पूछ रहा है कि अत्याधुनिक क्या है, तो एमवीपी भी दौड़ में नहीं है। एमवीपी में अभी भी एमवीसी की अधिकांश समस्याएं हैं। आप इससे कहीं बेहतर कर सकते हैं। –

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