यह यह पूछने जैसा है कि एक सेब और एक सेब कोर के बीच क्या अंतर है। ये दो आर्किटेक्चर एक दूसरे के लिए प्रतिस्थापन नहीं हैं। मुझे लगता है कि एक और अधिक सटीक राय यह है कि 3-स्तरीय संरचना है बढाती है MVC।
MVC आर्किटेक्चर
मॉडल: ये आपके आवेदन में "सामान" का प्रतिनिधित्व करते हैं। इस परत ने हाल के वर्षों में थोड़ी फजी हो गई है, जैसा कि मैं बाद में समझाऊंगा।
दृश्य: उपयोगकर्ता इंटरफ़ेस। उपयोगकर्ता जिस चीज के साथ इंटरैक्ट करता है।
नियंत्रक: प्रोग्रामिंग कोड जो उपयोगकर्ता के प्रति प्रतिक्रिया करता है और मॉडल परत में परिवर्तन करता है
3-स्तरीय वास्तुकला
3-स्तरीय वास्तुकला के साथ, आपके पास विभिन्न जिम्मेदारियों के साथ परतें हैं।
उपयोगकर्ता सेवाएँ: (या "सामान्य रूप से" सेवाएं) यह परत पुनर्प्राप्ति और "मॉडल" परत के संशोधनों के समन्वय के बारे में अधिक है। जटिल, बहु-चरण क्रियाएं यहां निष्पादित होती हैं
बिजनेस लेयर: यह प्रोग्रामिंग कोड में खोले गए व्यावसायिक नियमों का प्रतिनिधित्व करता है। क्या "व्यवसाय" चाहता है इस परत में लागू किया गया है।
डेटा एक्सेस लेयर: एक या अधिक कक्षाएं जो लगातार डेटा स्टोर तक पहुंचने के लिए जिम्मेदार हैं।
3-स्तरीय वास्तुकला का एकमात्र हिस्सा जो MVC के साथ प्रतिच्छेद करता है, वह है "बिजनेस लेयर"। MVC में "मॉडल" और 3-स्तरीय वास्तुकला में "बिजनेस लेयर" समान लक्ष्य को प्राप्त करने की कोशिश कर रहे हैं।
MVC में "M" ने फ़र्ज़ी हो गया है
MVC में "मॉडल" परत का विस्तार हाल के वर्षों में हुआ है। मैंने जो देखा है, उससे दो, संभवतः तीन प्रकार के मॉडल हैं:
डोमेन मॉडल: ये "चीजों" का प्रतिनिधित्व करते हैं जो "बिजनेस" की परवाह करता है - बिजनेस डोमेन। ये कक्षाएं डेटा और सभी प्रक्रियाओं को रखती हैं जो व्यावसायिक नियमों को लागू करने के लिए उस डेटा पर काम करती हैं। एक डोमेन में अक्सर डोमेन मॉडल को टेबल से बांधा जाता है। यह 3-स्तरीय वास्तुकला के "बिजनेस लेयर" को फिट करने के लिए लगता है।
देखें मॉडल: ये ऐसी कक्षाएं हैं जिनका उपयोग डोमेन मॉडल से डेटा को देखने के लिए और अधिक देखने योग्य बनाने के लिए किया जाता है। यह 3-स्तरीय वास्तुकला में कहीं भी फिट नहीं है क्योंकि दृश्य मॉडल व्यावसायिक तर्क को लागू नहीं करते हैं, न ही वे किसी भी प्रकार की सेवा या डेटा एक्सेस प्रदान करते हैं।
बिजनेस मॉडल: जटिल अनुप्रयोगों में, बिजनेस लॉजिक से डोमेन मॉडल को डिकूप करने की आवश्यकता उत्पन्न होती है। व्यावसायिक मॉडल में डेटा और संचालन प्रक्रियाएँ होती हैं जो व्यावसायिक नियमों को लागू करने के लिए उस डेटा पर काम करती हैं, और डोमेन मॉडल को "प्रॉपर्टी बैग्स" में बदल दिया जाता है - वे वस्तुएं जो केवल डेटा रखती हैं लेकिन उनमें कोई व्यवहार नहीं होता है। डोमेन मॉडल डेटाबेस और एप्लिकेशन के बीच डेटा ट्रांसफर ऑब्जेक्ट का दूसरा रूप बन जाता है।
एमवीसी में कहीं भी डेटा एक्सेस का उल्लेख नहीं किया गया है। कुछ मामलों में, आप देखेंगे कि डेटा एक्सेस MVC की "मॉडल" परत में है, जैसा कि हमने देखा है कि अब कोई स्पष्ट परत नहीं है। वास्तव में मैं 3-स्तरीय वास्तुकला देखता हूं जिसे संपूर्ण अनुप्रयोग बनाने के लिए MVC के साथ जोड़ा जाता है। एक वृद्धि या दूसरे पर सुधार:
- मॉडल
- डोमेन मॉडल (MVC / 3-स्तरीय)
- मॉडल देखें (MVC)
- (वैकल्पिक रूप से) बिजनेस मॉडल (MVC / 3-स्तरीय)
- दृश्य (MVC)
- नियंत्रकों (MVC)
- डेटा एक्सेस (3-स्तरीय)
- सेवाएँ (3-स्तरीय)
कुछ चौराहे हैं, लेकिन वे काफी हद तक अलग हैं, और एक साथ एक बड़ी प्रणाली के विभिन्न घटकों को अलग करने और अलग करने के लिए उपयोग किया जाता है।