मैं यह निर्धारित करने की कोशिश कर रहा हूं कि एक अच्छा स्तरित दृष्टिकोण प्राप्त करने के लिए .NET इकाई फ्रेमवर्क प्रोजेक्ट को कैसे व्यवस्थित किया जाए। अब तक मैंने ब्राउज-आधारित गेम में इसे आजमाया है जहां खिलाड़ी ग्रहों के मालिक हैं और संचालित करते हैं। यहाँ कैसे मुझे मिल गया है:.NET इकाई फ्रेमवर्क प्रोजेक्ट लेआउट (आर्किटेक्चर)
वेब साइट
यह सब सामने अंत होता है।
सी # परियोजना - MLS.Game.Data
यह मेरा सभी डेटा मैपिंग के साथ edmx फ़ाइल में शामिल है। यहां और कुछ नहीं है।
सी # परियोजना - MLS.Game.Business
यह विभिन्न वर्गों है कि मैं 'प्रबंधक' इस तरह के PlanetManager.cs के रूप में कहते हैं। ग्रह प्रबंधक के पास विभिन्न स्थैतिक विधियां हैं जिनका उपयोग ग्रह के साथ बातचीत करने के लिए किया जाता है, जैसे कि getPlanet (int planetID) जो एमएलएस.गैम.डेटा से जेनरेट की गई कोड ऑब्जेक्ट लौटाएगा।
वेबसाइट से, मैं कुछ इस तरह करेंगे:
var planet = PlanetManager.getPlanet(1);
यह MLS.Game.Data (edmx से उत्पन्न) से से एक ग्रह वस्तु देता है। यह काम करता है, लेकिन यह मुझे डिग्री के लिए परेशान करता है क्योंकि इसका मतलब है कि मेरे सामने वाले अंत को एमएलएस.गैम.डाटा का संदर्भ देना है। मैंने हमेशा महसूस किया है कि जीयूआई को केवल बिजनेस प्रोजेक्ट को संदर्भित करने की आवश्यकता है।
इसके अलावा, मुझे पता चला है कि मेरे प्रबंधक वर्ग बहुत भारी हो जाते हैं। मैं उनमें दर्जनों स्थिर तरीकों के साथ खत्म हो जाऊंगा।
तो ... मेरा सवाल यह है कि - हर कोई अपनी एएसपी ईएफ परियोजनाओं को कैसे रखता है?
संपादित
कुछ करने के बाद अधिक हालांकि, वहाँ अतिरिक्त आइटम जो मुझे परेशान है। उदाहरण के लिए, मान लें कि मेरे पास मेरी प्लैनेट ऑब्जेक्ट है, जो विज़ार्ड से फिर से जेनरेट कोड है। क्या होगा यदि एक समय आया कि मेरे ग्रह को एक विशेष संपत्ति की आवश्यकता है, "जनसंख्या" कहें जो ग्रह वस्तु के अन्य गुणों के आधार पर किसी प्रकार की गणना है। क्या मैं एक नई कक्षा बनाना चाहता हूं जो ग्रह से विरासत में आती है और फिर इसके बदले में वापस आती है? (हम्म, मुझे आश्चर्य है कि उन वर्गों एफई द्वारा सील कर रहे हैं?)
धन्यवाद
- कि जहां डाटा और अमीर वस्तुओं की जुदाई का अपना में आता है। समृद्ध वस्तुएं समझती हैं कि उन्हें संशोधित करने वाले संचालन को समाहित करते समय उनके गुणों का खुलासा कैसे किया जाए। डीटीओ केवल दृढ़ता परत में डेटा हस्तांतरण के लिए हैं और कोई तर्क की आवश्यकता नहीं है। – flesh