2009-07-29 13 views
5

मैं जल्द ही कुछ वेब अनुप्रयोगों को डिजाइन कर दूंगा। वे शायद asp.net एमवीसी में किया जाएगा।क्या एमवीसी वेब अनुप्रयोग 3 स्तर होना चाहिए?

डेल्फी में किए गए मेरे मौजूदा वेब ऐप्स में, डेटा एक्सेस लेयर पूरी तरह से अलग एप्लिकेशन में अलग हो जाती है, कभी-कभी एक अलग सर्वर पर चलती है। आर्किटेक्चरल कारणों से कोड पुन: उपयोग के लिए यह और अधिक किया जाता है। यह अगले ऐप में एक कारक नहीं होगा क्योंकि यह सब नया होगा।

क्या एक एमवीसी ऐप में एक अलग डेटा एक्सेस एप्लिकेशन ओवरकिल है? मैं पहले से ही एमवीसी का उपयोग करके व्यवसाय वर्गों को अलग कर दूंगा, और मैं डीबी दृढ़ता के लिए एक ओआरएम का उपयोग करूँगा।

संपादित करें: बस स्पष्ट करने के लिए; मैं अलग भौतिक अनुप्रयोगों को संदर्भित करने के लिए स्तरीय शब्द का उपयोग करता हूं, केवल एक तार्किक अलगाव या परत से अधिक कुछ।

+2

यदि आप दृढ़ता के लिए buisiness कक्षाओं और डीबी को अलग करते हैं, तो आपके पास पहले से कम से कम 3 स्तर हैं। जीयूआई/तर्क/डीबी - यह 3 स्तर है इसलिए आपको n <3 नहीं मिलेगा। यदि आपको अधिक मॉड्यूलरेशन की आवश्यकता है तो एक अतिरिक्त स्तर का परिचय दें - लेकिन यह पूरी तरह से आपके आवेदन पर निर्भर करता है। –

उत्तर

6

शब्द "टीयर" मेरे अनुभव में आम तौर पर जैसे भौतिक आवेदन seperations लिए बात कर रहा है क्लाइंट टियर & सर्वर टियर।

एमवीसी - 3 "परतों" को संदर्भित करता है, जिसमें 3 चिंताओं के बारे में चिंता होने के कारण मॉडल (डेटा), व्यू (यूआई), कंट्रोलर (ऐप लॉजिक) है।

.. अब जब कि मैं के बारे में मेरी शब्दावली उस भेद बना दिया है

एक MVC अनुप्रयोग में एक अलग डेटा का उपयोग आवेदन overkill चल रहा है?

मैं कहूंगा कि नहीं (फिर आप आवेदन के द्वारा क्या मतलब है निर्भर करता है), यह overkill नहीं है, के रूप में यह एक और अधिक maintainable प्रणाली में वास्तविक तथ्य परिणाम में हो सकता है। आपका ओआरएम संभवतः नए डेटा एक्सेस विकल्पों को प्लग इन करने की अनुमति देगा, लेकिन यदि आप एक नया ओआरएम जोड़ना चाहते हैं तो क्या होगा? एक स्पष्ट रूप से अलग डेटा एक्सेस लेयर (डीएएल) होने से आपके आवेदन के इस पहलू में अधिक भविष्य की लचीलापन की अनुमति मिल जाएगी।

दूसरी तरफ, आवेदन के लिए पैमाने और दृष्टि के आधार पर पूरी तरह से अकेले खड़े होने के आधार पर डेटा एक्सेस विकल्प अधिक हो सकता है, लेकिन अलग-अलग असेंबली में डीएएल के संक्षेप में पृथक्करण में संरचना में बहुत अधिक अनुशंसित अभ्यास है एमवीसी पैटर्न को लागू करने वाले एक आवेदन के।

उम्मीद है कि इससे मदद मिलती है, अगर आपको अधिक गहराई की आवश्यकता है तो टिप्पणी करें।

0

ग्रेट टिप्पणी टोबीस।

मैं कहता हूं कि पर्याप्त परतें जोड़ें ताकि यह आपको समझ में आता है और इसे बनाए रखना आसान बनाता है। चिंताओं का एक पृथक्करण रखने के लिए भी।

2

खैर मैं इसे आप के बारे में स्तरों (बार वास्तविक) या परतों (तार्किक/परियोजनाओं) में बात कर रहे हैं, इस पर एक छोटे से निर्भर करता है gues।

लेयरिंग के संबंध में - आप एस # आर्क आर्किटेक्चर (code.google.com/p/sharp-architecture/) जैसे कुछ ऐसा करने के उदाहरण के लिए कुछ देख सकते हैं (उन्होंने लेयरिंग के लिए एक बहुत ही अधिकतम दृष्टिकोण लिया है)।

अधिक minimalistic विचारों का एक उदाहरण के लिए, Ayende के ब्लॉग पर एक नज़र डालें: ayende.com/Blog/

स्तरों के बारे में

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

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