रोब कॉनरी के कोना एप्लिकेशन से नमूनों को देखते हुए, मुझे लगता है कि वह आईओसी - आईएसशन के साथ दो चीजों का उपयोग कर रहा है, जहां उसके पास डेटा लेयर कोड और सेवाएं हैं, जहां उनके पास कुछ अतिरिक्त व्यावसायिक तर्क है जिसे हमें डेटास्टोर में डेटा में हेरफेर करने के दौरान प्रदर्शन करने की आवश्यकता है । उदाहरण के लिए, हम सिर्फ डीबी में रिकॉर्ड नहीं जोड़ सकते हैं बल्कि किसी अन्य रिकॉर्ड के गुणों को भी बदल सकते हैं, कुछ मायने रख सकते हैं, कुछ वापस ले सकते हैं, आदि। हमें उस अतिरिक्त कोड को कहीं भी रखना होगा और वह उन्हें उन सेवाओं में रखेगा।एएसपी.नेट एमवीसी एप्लिकेशन में डेटा मैनिपुलेशन और बिजनेस लॉजिक कोड कहां रखा जाए?
उदाहरण के लिए, उसके पास ग्राहक सेवा है जो ग्राहकों को कुशल बनाती है। इसके लिए हमें ग्राहक सेवा में आईएसएशन इंस्टेंस भेजने की आवश्यकता है, ताकि ग्राहक सेवा डेटास्टोर तक पहुंचने के लिए इसका उपयोग कर सके।
अब ऐसा करने का एक और तरीका ग्राहक वर्ग में उस अतिरिक्त कोड को रखना होगा और उस वर्ग में आईएसशन (या आईरिपोजिटरी, जो भी शब्दावली हम उपयोग करते हैं) भेज देंगे। और कोई सेवाएं नहीं है। आम तौर पर, ग्राहक, आदेश, उत्पाद, आदि कक्षाएं मॉडल कक्षाएं होती हैं, जिससे परिणामस्वरूप बड़े/भारी मॉडल वर्ग होते हैं।
मेरा सवाल है, कौन सा समाधान बेहतर है? अब तक मुझे इसकी आवश्यकता नहीं थी क्योंकि मेरे पास नियंत्रकों में अधिकांश कोड था लेकिन अब जब मेरा आवेदन बढ़ता है, तो मुझे इस पर निर्णय लेने और नियंत्रकों को साफ करने की आवश्यकता है।
वर्तमान में मेरे पास है: - व्यापार तर्क के साथ वसा नियंत्रकों उस में, - बहुत परमाणु खजाने, - बहुत साफ मॉडल और ViewModels। अधिक कोड के साथ खजाने, - - - पतली नियंत्रकों, व्यापार तर्क कोड के साथ मॉडल (विशेष रूप से अपने मॉडल वर्गों की तरह जोड़ें(), निकालें() तरीकों को शामिल करना चाहिए, उदाहरण के Customer.Remove के लिए:
मैं पर जाना चाहिए() ??)
या के लिए - पतली नियंत्रकों, - परमाणु खजाने, - अभी भी साफ मॉडल, - सेवाएं (सब कुछ है कि पिछले में से किसी में नहीं जाता संपुटित के लिए)।
डिट्टो, सिवाय इसके कि मैं सेवा के अंदर दृश्य मॉडल में कनवर्ट करता हूं ताकि नियंत्रक मेरे डोमेन मॉडल पर विधियों को कॉल न कर सके। – Ryan
यह एक अच्छा अभ्यास है हालांकि मेरे मॉडल के पास केवल फ़ील्ड/गुणों का कोई तरीका नहीं है। – mare
यही कारण है कि आपको भंडार होना चाहिए। –