मैं एक ऐसे प्रश्न का स्पष्ट अंतिम उत्तर पाने की कोशिश कर रहा हूं जिसने मुझे लंबे समय तक पागल कर दिया है।क्या एक आम असेंबली में संस्थाओं के साझा संदर्भ के बजाय डीटीओ का उपयोग करने का कोई लाभ है?
यह आमतौर पर व्यक्त किया जाता है कि बीएलएल में बिजनेस लॉजिक और बिजनेस ऑब्जेक्ट्स (बीओ) होना चाहिए, और डीएएल का संदर्भ होना चाहिए। दूसरी तरफ डीएएल में बीएलएल का संदर्भ नहीं हो सकता है, इसलिए यह बीओ को तर्क के रूप में स्वीकार नहीं कर सकता है, या बीओ को रिटर्न वैल्यू के रूप में वापस नहीं कर सकता है।
इस समस्या का सबसे पारंपरिक जवाब है करने के लिए:
क) सरल मानकों, और बदले (अधिमानतः टाइप) डेटासेट और डेटा लौटाने के लिए DataTables स्वीकार करें: नाम स्थान दाल { सार्वजनिक वर्ग संपर्क सार्वजनिक DataTable GetContacts () {...} सार्वजनिक अद्यतन संपर्क (डेटाटेबल संपर्क) {...}
बी) दूसरा सबसे अधिक अनुशंसित समाधान अस्थायी, धारावाहिक, डेटा स्थानांतरण ऑब्जेक्ट्स (डीटीओ) को परिभाषित करना है (कभी-कभी मूल्य ऑब्जेक्ट्स (वीओ)) जिसमें केवल फ़ील्ड और गुण हैं, कोई विधि नहीं है, और केवल संक्षेप में स्थानांतरित करने के लिए उपयोग की जाती है बीएलएल परत तक का डेटा, जहां नए बीओ को पॉप्युलेट करने के लिए उपयोग किया जाता है, उस बिंदु पर उन्हें तब छोड़ दिया जाता है।
सी) एक सामान्य तीसरी असेंबली (जैसे Entities.dll कहा जाता है) का उपयोग करें, जो बीओ को परिभाषित करता है, और सभी 3 परतों द्वारा संदर्भित किया जाता है: यूआई, बीएलएल, और डीएएल।
विकल्प ए) कार्यान्वित करने के लिए कम से कम काम करता है (किसी अन्य असेंबली को बनाने की आवश्यकता नहीं है), इसलिए अक्सर प्रस्तावित क्यों किया जाता है, लेकिन डेटाटेबल्स में अतिरिक्त तारों की आवश्यकता होती है जिसे सरल संचालन के लिए जरूरी नहीं है।
अभी तक यह बहुत स्पष्ट नहीं है जो करने के लिए ख के) के रूप में या ग) बेहतर है ...
मैं देख रहा हूँ ख) कभी कभी की पेशकश की है, और लगभग कभी नहीं ग), हालांकि ग) दो का सबसे आसान प्रतीत हो रहा है ।
मुझे क्या याद आ रही है? सी क्यों है) इतनी कम पेशकश की जाती है भले ही यह तार्किक रूप से सबसे आसान प्रतीत होता है, और क्यों एक) यह पेशकश की जाती है जब यह सभी परिदृश्यों के लिए स्पष्ट रूप से उपयुक्त नहीं है (उदाहरण के लिए एकल वस्तुओं को वापस करना)?
धन्यवाद!
HI जोनाथन: पहली कड़ी प्राधिकरण की आवश्यकता है दूसरी कड़ी है, जो एक आप की बात कर रहे थे के रूप में - इंटरफेस या डेटा सेवाओं उदाहरण –
क्षमा करें, मैं जोड़ दिया है अनुमतियाँ अब तो आप के माध्यम से इसे डाउनलोड करने के लिए सक्षम होना चाहिए।? लिंक ए bove। इसे "डीडीडी और डब्ल्यूसीएफ - सीरियलाइजिंग एंटिटीज" कहा जाता है। –
हाय जोनाथन: लिंक के लिए धन्यवाद। निष्कर्ष: क) डीटीओ के श्रृंखलाबद्ध किया जा सकता है/एक ही वस्तु को deserialized, अगर दोनों स्तरों में एक ही बो के लिए रेफरी है/BEntities विधानसभा: दाल <- बो # 1 वी (WCF का उपयोग) BLL <- बो # 2 यानी: बाहरी BO.dll सबसे अधिक समस्याओं को हल करता है। ख) क्यों टाइप किया कस्टम डीटीओ को डेटासेट पसंद करते हैं? –