2011-11-07 19 views
6

मैं वर्तमान में विकास के लिए डोमेन संचालित डिज़ाइन दृष्टिकोण सीख रहा हूं और टिम मैककार्थी द्वारा सी # पुस्तक के साथ .NET डोमेन संचालित डिजाइन का उपयोग कर रहा हूं।डोमेन संचालित डिजाइन और इकाई फ्रेमवर्क 4.1 (कोड-प्रथम)

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

पुस्तक में उदाहरण के आधार पर, स्तरित आर्किटेक्चर दृष्टिकोण का मतलब होना चाहिए कि आधारभूत संरचना परत मॉडल/डोमेन को नहीं देख सकती है।

तो मेरे डोमेन पोको को डीबी संदर्भ कक्षाओं में मैप करने का सबसे अच्छा तरीका क्या है (मुझे लगता है) स्तरित दृष्टिकोण के उल्लंघन के बिना, बुनियादी ढांचे परत में बैठना चाहिए?

एक अच्छा मौका है कि मैं अपनी सोच से पूरी तरह गलत हूं इसलिए कृपया मुझे बताएं क्योंकि मैं अभी भी सीख रहा हूं!

बहुत धन्यवाद :)

एडम

+1

यदि आप कोड-फर्स्ट ईएफ का उपयोग कर रहे हैं, तो पीओसीओ वास्तव में आपका डोमेन मॉडल – Didaxis

+0

हाँ है जो मैं समझ गया हूं, लेकिन आप परतों में इन वस्तुओं का संदर्भ कैसे लेंगे, विशेष रूप से डोमेन/मॉडल के लिए आधारभूत संरचना? – adam

+0

मेरे मॉडल कक्षा पुस्तकालय में हैं, और व्यापार पुस्तकालय संदर्भ डीएलएल। मैं ऑनलाइन यूनिट ऑफ वर्क एंड रिपोजिटरी पैटर्न पर कुछ लेख पढ़ने की सिफारिश करता हूं - वे पीओसीओ के साथ अच्छी तरह से काम करते हैं। यहां: http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc- अनुप्रयोग – AFD

उत्तर

7

खैर सबसे ORM का आज एफई 4.1 और Nhibernate (धाराप्रवाह Nhibenrate एडऑन) की तरह का वर्णन कर सकते POCO से Db संदर्भ के लिए मानचित्रण कक्षाओं के माध्यम से मैपिंग। इन मानचित्रण वर्गों को सर्वोत्तम रूप से एक बुनियादी ढांचा डेटाबेस प्रोजेक्ट में रखा जाना चाहिए, शायद ओआरएम सत्र विशिष्ट कक्षाओं के साथ।

फिर आपके पीओसीओ डोमेन कक्षाओं को एक डोमेन प्रोजेक्ट में रखा जाना चाहिए जिसमें अन्य घटकों या परियोजनाओं के लिए कोई संदर्भ नहीं होना चाहिए। लेकिन आधारभूत डेटाबेस प्रोजेक्ट को डोमेन का संदर्भ देना चाहिए ताकि आपकी मैपिंग कक्षाएं इस बात का आकलन कर सकें कि पीओसीओ को लगातार स्थिति से कैसे लोड किया जाना चाहिए।

एक अच्छा और ठोस आईओसी ढांचा (विंडसर कैसल ...) के साथ बहुत से निर्भरता इंजेक्शन का उपयोग करें। यह आपको चीजों को थोड़ा सा ढीला करने में मदद करेगा। कार्यान्वयन के बजाय एक अमूर्त/इंटरफ़ेस पर निर्भर होना बेहतर है।

मूल बातें यहां http://www.infoq.com/articles/ddd-in-practice

लेकिन अच्छी बात आप कोड पहले दृष्टिकोण के लिए जाने का फैसला किया है। यदि आपके पास विकल्प है तो मैं वास्तव में उस दृष्टिकोण की अनुशंसा करता हूं। लेकिन कभी-कभी जब पुरानी विरासत प्रणाली हस्तक्षेप करती है, चीजें इतनी आसान नहीं होती हैं।

+0

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

+0

गुड लक एडम। सीधे मुझे अन्य डीडीडी मुद्दे पूछने या चर्चा करने के लिए स्वतंत्र महसूस करें। मैं हमेशा दिलचस्प हूं कि लोग विभिन्न तरीकों से समस्याओं को कैसे देखते हैं ... –

+0

धन्यवाद मैग्नस - मेरे पास कुछ और प्रश्न हैं, आपसे संपर्क करने का सबसे अच्छा तरीका क्या है? – adam

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