2012-07-18 6 views
7

मैं सेवा और रिपोजिटरी परतों सहित "एम" के साथ एमवीसी ऐप का उपयोग करता हूं।नियंत्रक -> सेवा -> रिपोजिटरी: क्या सेवा मानचित्र ViewModel पर इकाई है?

हालांकि, मैं एक छोटे से कहाँ और कैसे चीजों की एक जोड़ी करने के लिए के रूप में उलझन में हूँ।

  1. एक सेवा दो खजाने बुला, या बुला यह खुद भंडार है और किसी अन्य सेवा

उदा

मैं एक ReferenceDataService, जो मेरे संदर्भ तालिकाओं के साथ CRUD के लिए सभी तर्क के संभालती है।

तब मेरे "customerservice" में मैं जैसे प्राप्त करने के लिए 'आर' मेरे संदर्भ डेटा की जरूरत है आईडी के बजाय विवरण। तो, क्या मैं ReferenceDataService या ReferenceDataRepository को कॉल करता हूं?

  1. कुछ परत पर मैं Entity से ViewModel पर मानचित्र करना चाहता हूं।

क्या मैं इसे अपनी सेवा परत में या नियंत्रक में करता हूं?

उदा क्या मेरा सर्विसलेयर वीएम से एंटिटी और बैक पर मानचित्रण/तर्क करता है?

धन्यवाद :)

उत्तर

22
  • डेटा संग्रह स्थान एक अंतर्निहित डेटा स्रोत से बात करें।
  • सेवा परत डोमेन मॉडल के साथ भंडारों के लिए बातचीत करता है। यह डोमेन मॉडल को रिपोजिटरी परत से/पास करता है।
  • नियंत्रक सेवा परत से बात करता है। नियंत्रक सेवा परत से/से डोमेन मॉडल लेता/पास करता है।
  • नियंत्रक डोमेन मॉडल और दृश्य मॉडलों के बीच मैप करने के लिए मानचित्रण परत (यदि हो तो) कहते हैं। यदि आपको मानचित्र परत नहीं है, तो आप अपने नियंत्रक में मानचित्रण कर सकता है, हालांकि यह जल्दी से बोझिल जो मामले में AutoMapper एक बहुत आसान मानचित्रण परत के रूप में सेवा कर सकता है हो सकता है।

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

+0

+1 - हमेशा के रूप में बहुत बढ़िया जवाब ....! – bhuvin

+0

Thx :) मुझे लगता है कि मैं अपनी सेवा परत को हटा रहा हूं ... यह मेरे आवेदन में बहुत कम उद्देश्य प्रदान करता है और मैंने इसे इसलिए शामिल किया क्योंकि "यह पैटर्न को फिट करता है"। रवींद्र! – BlueChippy

5

ViewModel डेटा, दृश्य पर मॉडल प्रदर्शित करने के लिए आवश्यक होता है। यदि आप किसी अन्य दृश्य का उपयोग करेंगे (उदा। मोबाइल एप्लिकेशन, या डेस्कटॉप एप्लिकेशन, या यहां तक ​​कि वेब सेवा) तो आपको दृश्य पर प्रदर्शित होने के लिए एक और डेटा की आवश्यकता होगी। यदि आप सेवा परत पर मैपिंग करेंगे, तो आप इसे किसी अन्य प्रकार के एप्लिकेशन के साथ उपयोग करने में सक्षम नहीं होंगे। इस प्रकार नियंत्रक एक ऐसा स्थान है जहां आप उन्हें देखने के लिए डोमेन डेटा मैप करते हैं (आपके पास जो भी दृश्य है)।

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