5

देखने के लिए डीडीडी एप्लिकेशन सेवा डोमेन मॉडल एप्लिकेशन सेवाओं की मेरी समझ यह है कि वे डोमेन और उपयोगकर्ता इंटरफ़ेस के बीच एक साथ लिंक करते हैं। दूसरे शब्दों में, वे डोमेन पर संचालन करने के लिए नियंत्रक की सेवा करते हैं।मॉडल मैपिंग

मैं अपने आवेदन में निम्नलिखित परियोजना लेआउट:

  • डोमेन कोर
  • इंफ्रास्ट्रक्चर
  • सेवा इंटरफ़ेस
  • वेब UI
    • ViewModels
    • दृश्य
    • नियंत्रकों
    • सेवा (अनुप्रयोग सेवा)

Web UI परियोजना के बाहर मेरे Service Interfaces निहित है। फिर Web UI प्रोजेक्ट में मैं Services के तहत सेवाओं के इंटरफेस को कार्यान्वित करता हूं।

हालांकि यह संरचना थोड़ा सा दोषपूर्ण है और जब हम इसे अभ्यास में रखते हैं तो एक परिपत्र निर्भरता बनाता है। मैंने इस लिंक में वास्तुकला का पालन करने की कोशिश की। https://www.develop.com/onionarchitecture

किसी दिए गए सेवा के लिए, मैं दृश्य मॉडल में पास करना चाहता हूं, दृश्य मॉडल के आधार पर डोमेन पर संचालन करना चाहता हूं, फिर एक अद्यतन दृश्य मॉडल वापस कर सकता हूं। क्या यह दृष्टिकोण गलत है?

क्या मेरी समझ सही है कि सार सेवा में अनुप्रयोग सेवा पैरामीटर के रूप में दृश्य मॉडल लेती है, डोमेन में कुछ विवरण अपडेट करती है और यदि मॉडल की आवश्यकता होती है तो मॉडल को देखते हैं और फिर दृश्य मॉडल लौटाते हैं?

या

आवेदन सेवा केवल ग # डेटाटाइप्स और एक पैरामीटर के रूप डोमेन मॉडल से निपटने के लिए और एक ही डेटाटाइप्स देता है? दूसरे शब्दों में किसी दृश्य मॉडल में कोई जानकारी प्राप्त या सेट नहीं होती है। वास्तव में पता नहीं है कि मॉडल मॉडल मौजूद है।

मुझे सख्त डीडीडी दृष्टिकोण से सबसे अच्छा तरीका क्या है इस पर कुछ स्पष्टीकरण की आवश्यकता है।

+0

एप्लिकेशन सेवाएं आमतौर पर प्रस्तुति (UI) परत में नहीं रहती हैं, उस उद्देश्य के लिए एक एप्लिकेशन परत है। – plalx

+0

क्या मैं उन सेवा कार्यान्वयन के लिए एक अलग परियोजना बना सकता हूं या उन्हें सेवाओं के तहत रख सकता हूं, जहां मेरे इंटरफेस झूठ बोलते हैं? –

+1

आप सभी चीजों को एक परियोजना में एक साथ रख सकते हैं, जब तक आप प्रत्येक घटक/परत के लिए निर्देशिका समर्पित करते हैं। – MikeSW

उत्तर

4

अपने प्रश्नों का उत्तर दें: हाँ, आप सही हैं। एमवीसी अनुप्रयोग के लिए, आप लेयर डिज़ाइन कर सकते हैं जो व्यूमोडल्स लेता है और देता है और

समाधान संरचना का अच्छा उदाहरण डिनो एस्पोजिटो here द्वारा बनाया गया है। मैंने अपनी परियोजना को इस ढांचे में अपनाया और यह बहुत स्पष्ट हो गया। मेरी राय है कि onion architecture छोटी या मध्यम परियोजनाओं के लिए अतिसंवेदनशील है।

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