लॉजिकल परतों में समाधान को विभाजित करते समय, किसी फ़ोल्डर द्वारा समूहबद्ध करने पर एक अलग प्रोजेक्ट का उपयोग करना सबसे अच्छा कब होता है?विजुअल स्टूडियो समाधान में फ़ोल्डर या प्रोजेक्ट्स?
उत्तर
डिफ़ॉल्ट रूप से, हमेशा ही नया फ़ोल्डर एक ही परियोजना
- आप एकल विधानसभा (अतिरिक्त ILMerge व्यायाम के बिना) मिल जाएगा
- आसान अंधेरा करना (क्योंकि आप कम सार्वजनिक प्रकार होगा भीतर बना सकते हैं और विधियों, आदर्श बिल्कुल भी नहीं)
कई परियोजनाओं में अपने स्रोत कोड को अलग ही भावना है, तो आप ... बनाता
- कि परियोजना का हिस्सा है, लेकिन डिफ़ॉल्ट रूप से या सभी (इकाई परीक्षण, अतिरिक्त प्लगइन्स आदि)
- अधिक डेवलपर्स शामिल पर परिनियोजन योग्य नहीं हैं स्रोत कोड के कुछ अंश है और आप उपभोज्य काला के रूप में अपने काम का इलाज करना चाहते हैं डिब्बा। (बहुत अनुशंसित नहीं)
- यदि आप अपनी परियोजना को पृथक परतों/मॉड्यूल में स्पष्ट रूप से अलग कर सकते हैं और आप यह सुनिश्चित करना चाहते हैं कि वे आंतरिक सदस्यों को पार नहीं कर सकते हैं।(यह भी अनुशंसित नहीं है क्योंकि आपको यह तय करने की आवश्यकता होगी कि कौन सा पहलू सबसे महत्वपूर्ण है)
यदि आपको लगता है कि आपके स्रोत कोड के कुछ भाग पुन: प्रयोज्य हो सकते हैं, फिर भी इसे एक नई परियोजना के रूप में न बनाएं। बस तब तक प्रतीक्षा करें जब तक कि आप इसे किसी अन्य समाधान में पुन: उपयोग नहीं करना चाहेंगे और आवश्यकतानुसार इसे मूल परियोजना से अलग कर दें। प्रोग्रामिंग एक लेगो नहीं है, पुन: उपयोग करना आम तौर पर बहुत कठिन होता है और अक्सर योजनाबद्ध नहीं होता है।
मैं आमतौर पर एक परियोजना जीयूआई के लिए एक परियोजना व्यापार तर्क के लिए डेटा का उपयोग के लिए एक परियोजना और इकाई परीक्षण के लिए एक परियोजना है।
लेकिन कभी कभी यह सेवाओं पर आधारित (यदि आप एक सेवा उन्मुख वास्तुकला का उपयोग कर रहे हैं) जुदाई है समझदारी प्रमाणीकरण, बिक्री, आदि के रूप में इस तरह के है
मैं अंगूठे का नियम है कि मुझे लगता है कि है के बंद काम लगता है यदि आप इसे एक ऐसे घटक के रूप में देख सकते हैं जिसमें चिंताओं का स्पष्ट अलगाव हो तो एक अलग परियोजना समझदार हो सकती है। लेकिन मुझे लगता है कि फ़ोल्डर्स बनाम परियोजनाएं सिर्फ वरीयता या दर्शन हो सकती हैं।
मैं व्यक्तिगत रूप से लगता है कि यह करता है, तो यह सिर्फ फ़ोल्डर में है के अलावा अन्य स्थानों का उपयोग करने में आसान है, तो पुन: प्रयोज्य कोड परियोजनाओं में विभाजित है।
डेनी ने लिखा है:
मैं व्यक्तिगत रूप से लगता है कि यह करता है, तो यह सिर्फ फ़ोल्डर में है के अलावा अन्य स्थानों का उपयोग करने में आसान है, तो पुन: प्रयोज्य कोड परियोजनाओं में विभाजित है।
मैं वास्तव में इसके साथ सहमत हूं - यदि आप इसका पुन: उपयोग कर सकते हैं, तो यह एक अलग परियोजना में होना चाहिए। इसके साथ ही कहा, यह भी प्रभावी ढंग से पुन: उपयोग करने :)
यहाँ एसओ पर बहुत मुश्किल है, हम तीन परियोजनाओं के साथ बहुत सरल होने की कोशिश की है:
- MVC वेब परियोजना (जो अलग करने का एक अच्छा काम करता है डिफ़ॉल्ट रूप से फ़ोल्डर) MVC मॉडल के खिलाफ
- ईकाई परीक्षण हमारे डीबी के स्रोत नियंत्रण के लिए
- डाटाबेस परियोजना/नियंत्रकों
मैं हर किसी के लिए नहीं बोल सकता में अपने परतों, लेकिन मैं खुश हूँ w यह कितना आसान है कि हमने इसे रखा है - वास्तव में साथ ही साथ गति को गति देता है!
कई परियोजनाओं में अपने स्रोत कोड को अलग ही भावना है, तो आप ... ... और डेवलपर्स शामिल है और आप उपभोज्य ब्लैक बॉक्स के रूप में अपने काम का इलाज करना चाहते हैं बनाता है। (बहुत अनुशंसित नहीं है) ...
यह क्यों अनुशंसित नहीं है? मैंने इसे विभिन्न भागों पर काम कर रहे कई देवताओं के साथ एक एप्लिकेशन का प्रबंधन करने का एक बहुत ही उपयोगी तरीका पाया है। मुख्य रूप से विलय को समाप्त करके चेकिन को बहुत आसान बनाता है। बहुत ही कम ही दो देवताओं को एक ही परियोजना पर एक ही परियोजना पर काम करना होगा।
यह केवल कोड के लिए अनुशंसित है जो परियोजनाओं के लिए स्पष्ट जिम्मेदारियों और इंटरफेस को निर्धारित करने के लिए पर्याप्त स्थिर है। – reinierpost
परियोजनाओं में विशेषताओं को अलग करना अक्सर एक यज्ञ वास्तुकला अनुकूलन होता है। आपने कितनी बार उन अलग-अलग परियोजनाओं का पुन: उपयोग किया है, वास्तव में? यदि यह लगातार घटना नहीं है, तो आप सैद्धांतिक पुन: उपयोग के लिए अपने विकास, निर्माण, तैनाती और रखरखाव को जटिल बना रहे हैं।
मैं फ़ोल्डरों में अलग-अलग (उचित नामस्थानों का उपयोग करके) को अलग करना पसंद करता हूं और वास्तविक जीवन पुन: उपयोग के मामले में अलग-अलग परियोजनाओं को पुन: सक्रिय करना पसंद करता हूं।
जब मैं 'परीक्षण' के साथ 'सैद्धांतिक पुन: उपयोग' को प्रतिस्थापित करता हूं, तो क्या आपका निष्कर्ष अभी भी है? – reinierpost
यदि आप कई परियोजनाओं के निर्माण के लिए जाते हैं, तो सुनिश्चित करें कि समाधान में कोड जोड़ने वाले प्रत्येक व्यक्ति को उनके इरादे से पूरी तरह से पता है और परियोजनाओं के बीच निर्भरताओं को समझने के लिए आप जो कुछ भी कर सकते हैं, उसे पूरा कर सकते हैं। यदि आपने कभी गड़बड़ी को हल करने का प्रयास किया है और कोई संदर्भ जोड़ा है जो वहां नहीं होना चाहिए था और सप्ताहों तक इसके साथ दूर हो गया था तो आप इस बिंदु को
मुझे लगता है कि प्रोजेक्ट को विभाजित करना बेहतर है साथ ही, लेकिन यह सब परियोजना के आकार और उस पर काम करने वाले लोगों की संख्या पर निर्भर करता है।
बड़ी परियोजनाओं के लिए, मैं (मॉडल)
मैं रोब कॉनरी से मॉडल मिल गया
- डेटा अभिगमन की परियोजनाएं हैं और उसका स्टोरफ्रंट एप्लिकेशन ... वास्तव में अच्छा काम करता प्रतीत होता है।
मुझे वास्तविकता की लुबोस की भावना पसंद है। – ybakos