मैं अपने आवेदन की संरचना को वीएस में स्थापित करने की कोशिश कर रहा हूं और मैं इसे "प्रयास" करना चाहता हूं और भविष्य में इसका प्रमाण उचित स्तर पर देना चाहता हूं। यह एप्लिकेशन एक पुराने Winform ऐप का WPF फिर से लिखना होगा, जिसके बाद कोई कन्वेंशन नहीं हुआ था। नो लेयर्स, टियर्स, परिवर्णी, आदि ...
यह काफी लार्जिश एंटरप्राइज एप्लिकेशन है। मैंने अपने DB's के रूप में Linq To SQL का उपयोग करने की योजना बनाई है और यह हमेशा MS SQL होगा। इसके अलावा, मेरे पास इसके साथ एक मौजूदा कौशल है।
मैं MVVM और DDD का सबसे अच्छा अनुसरण करना चाहता हूं, लेकिन इनको मिलाते समय मैं अपने एप्लिकेशन की संरचना पर भ्रमित हो जाता हूं। मुझे कुछ उदाहरणों के साथ समझाने और समझने की कोशिश करते हैं।
जब मैं MVVM का अनुसरण करता हूं तो मेरी फ़ोल्डर संरचना इस तरह दिख सकती है:
Views
Models
ViewModels
Helpers
लेकिन यह कैसे एक सरलीकृत DDD स्तरित दृष्टिकोण में फिट बैठता है जहाँ मेरी परियोजना संरचना इस तरह से हो सकती है:
MyApp.UI
MyApp.Domain
MyApp.Data
क्या मैं Models
डोमेन लेयर में रखता हूं या क्या मेरे पास कहने के 3 संस्करण हैं Person
? इससे एक और सवाल होता है कि मैं अपने रेपोज़िटरी और डोमेन ऑब्जेक्ट के लिए डीबी ऑब्जेक्ट के मैपिंग कहां डालूंगा? मैं डेटा मान जाएगा ...
Views
मैं यूआई में जाना होगा, लेकिन यह ViewModels
भी होगा ?
अंत में, मैं अपने व्यावसायिक तर्क को कहां एम्बेड करूंगा?
मुझे कोडप्लेक्स, डीडीडी उदाहरण पर निम्नलिखित मिला , और यह कुछ मदद कर रहा है, लेकिन ऐसा लगता है कि यह वेब ऐप के लिए है, लेकिन इससे कोई फर्क नहीं पड़ता और मेरी अज्ञानता चमक रही है।
मुझे गलत मत समझो, मुझे पता है कि मेरे पास कई फ़ोल्डर्स हो सकते हैं और मैं जो कुछ भी चाहता हूं उन्हें कॉल कर सकता हूं। मैं यह पता लगाने की कोशिश कर रहा हूं कि चीजों को कहां रखा जाए ताकि यह पैमाने पर सक्षम हो, न कि उन स्थानों को जिन्हें जरूरी कहा जाता है।
मेरे प्रश्न का दिल इस तरह दिखाया जा सकता है।
मेरे पास इससे tblPerson
उत्पन्न वस्तु है *.dbml
। यह स्पष्ट है और मेरी "डेटा" परत में होगा।
अब मेरे पास मॉडल, डीटीओ, डोमेन मॉडल, या जो कुछ भी एक अलग परत (परियोजना?) कहा जाता है में होगा Person
। मैं एक की आवश्यकता होगी Mapper
के लिए Person
करने के लिए tblPerson
कि मैं सुनिश्चित नहीं हूं जहां डाल करने के लिए।
फिर, मेरे पास एक ViewModel EditPerson
होगा , कहते हैं, कि इसका अपना गुण होगा जो इसे खींचता है, Person
लेकिन संभवतः और भी।
अंत में मेरे पास एक View होगा जो उस ViewModel से जुड़ा था ...।
यह स्पष्ट करने के लिए कि पैराग्राफ मेरी मान्यताओं और अनुमानों से भरा हुआ है और मैं उम्मीद कर रहा हूं कि कोई व्यक्ति मेरे लिए हवा को साफ करने में मदद करेगा या वहां की पेशकश करेगा ताकि 6 महीने से लेकर एक साल तक मैं खुद को जरूरत से ज्यादा खुद को लात न मार पाऊं।