विजुअल स्टूडियो समाधान में फ़ोल्डर्स या प्रोजेक्ट्स?

लॉजिकल लेयर में समाधान को विभाजित करते समय, किसी फ़ोल्डर द्वारा समूहबद्ध करने पर एक अलग प्रोजेक्ट का उपयोग करना सबसे अच्छा कब होता है?

0
जोड़ा संपादित
विचारों: 1

7 उत्तर

मैं आम तौर पर जीयूआई के लिए एक परियोजना प्रोजेक्ट के लिए एक परियोजना करता हूं जो डेटा एक्सेस के लिए एक परियोजना और इकाई परीक्षणों के लिए एक परियोजना है।

लेकिन कभी-कभी सेवाओं के आधार पर पृथक्करण करना बुद्धिमान होता है (यदि आप सेवा उन्मुख वास्तुकला का उपयोग कर रहे हैं) जैसे प्रमाणीकरण, बिक्री इत्यादि।

मुझे लगता है कि मैं जिस अंगूठे का काम करता हूं वह यह है कि यदि आप इसे एक ऐसे घटक के रूप में देख सकते हैं जिसमें चिंताओं का स्पष्ट अलगाव हो तो एक अलग परियोजना समझदार हो सकती है। लेकिन मुझे लगता है कि फ़ोल्डर्स बनाम परियोजनाएं सिर्फ वरीयता या दर्शन हो सकती हैं।

मैं व्यक्तिगत रूप से महसूस करता हूं कि यदि पुन: प्रयोज्य कोड परियोजनाओं में विभाजित है तो यह अन्य स्थानों का उपयोग करना आसान है, अगर यह सिर्फ फ़ोल्डर्स में है।

0
जोड़ा

परियोजनाओं में विशेषताओं को अलग करना अक्सर एक यज्ञ वास्तुकला अनुकूलन होता है। आपने कितनी बार उन अलग-अलग परियोजनाओं का पुन: उपयोग किया है, वास्तव में? यदि यह लगातार घटना नहीं है, तो आप सैद्धांतिक पुन: उपयोग के लिए अपने विकास, निर्माण, तैनाती और रखरखाव को जटिल बना रहे हैं।

मैं फ़ोल्डरों में अलग होना पसंद करता हूं (उपयुक्त नामस्थानों का उपयोग करके) और जब आप वास्तविक जीवन पुन: उपयोग के मामले को प्राप्त करते हैं तो परियोजनाओं को अलग करने के लिए पुन: सक्रिय करना पसंद करते हैं।

0
जोड़ा
जब मैं 'सैद्धांतिक पुन: उपयोग' को 'परीक्षण' के साथ बदलता हूं, तो क्या आपका निष्कर्ष अभी भी है?
जोड़ा लेखक reinierpost, स्रोत

अपने स्रोत कोड को अलग करना   कई परियोजनाओं को केवल समझ में आता है अगर   आप...   ... अधिक डेवलपर्स शामिल हैं   और आप उनके काम का इलाज करना चाहते हैं   उपभोग्य योग्य काला बॉक्स। (बहुत नहीं   अनुशंसित) ...

इसकी सिफारिश क्यों नहीं की जाती है? मैंने इसे विभिन्न भागों पर काम कर रहे कई देवताओं के साथ एक एप्लिकेशन का प्रबंधन करने का एक बहुत ही उपयोगी तरीका पाया है। मुख्य रूप से विलय को समाप्त करके चेकिन को बहुत आसान बनाता है। बहुत ही कम ही दो देवताओं को एक ही परियोजना पर एक ही परियोजना पर काम करना होगा।

0
जोड़ा
यह केवल कोड के लिए अनुशंसित है जो परियोजनाओं के लिए स्पष्ट जिम्मेदारियों और इंटरफेस को निर्धारित करने के लिए पर्याप्त स्थिर है।
जोड़ा लेखक reinierpost, स्रोत

यदि आप कई परियोजनाओं के निर्माण के लिए जाते हैं, तो सुनिश्चित करें कि समाधान में कोड जोड़ने वाले हर किसी के इरादे से पूरी तरह से अवगत है और परियोजनाओं के बीच निर्भरताओं को समझने के लिए आप जो कुछ भी कर सकते हैं, उसे पूरा कर सकते हैं। यदि आपने कभी गड़बड़ी को हल करने का प्रयास किया है जब कोई चला गया है और संदर्भ जोड़े गए हैं जो वहां नहीं थे और सप्ताहों तक इसके साथ दूर हो गए तो आप इस बिंदु को समझेंगे

0
जोड़ा

डिफ़ॉल्ट रूप से, उसी प्रोजेक्ट में हमेशा नया फ़ोल्डर बनाएं

  • आपको एकल असेंबली मिलेगी (अतिरिक्त ILMerge जिमनास्टिक के बिना)
  • obfuscate करना आसान है (क्योंकि आपके पास कम सार्वजनिक प्रकार और विधियां होंगी, आदर्श रूप से कोई भी नहीं)

अपने स्रोत कोड को कई परियोजनाओं में अलग करना केवल समझ में आता है यदि आप ...

  • स्रोत कोड के कुछ भाग हैं जो प्रोजेक्ट का हिस्सा हैं लेकिन डिफ़ॉल्ट रूप से या बिल्कुल नहीं (यूनिट परीक्षण, अतिरिक्त प्लगइन्स इत्यादि) पर तैनाती योग्य नहीं हैं
  • अधिक डेवलपर्स शामिल हैं और आप उपभोग योग्य ब्लैक बॉक्स के रूप में अपने काम का इलाज करना चाहते हैं। (बहुत अनुशंसित नहीं)
  • यदि आप अपनी परियोजना को पृथक परतों / मॉड्यूल में स्पष्ट रूप से अलग कर सकते हैं और आप यह सुनिश्चित करना चाहते हैं कि वे आंतरिक सदस्यों को पार नहीं कर सकते हैं। (यह भी अनुशंसित नहीं है क्योंकि आपको यह तय करने की आवश्यकता होगी कि कौन सा पहलू सबसे महत्वपूर्ण है)

यदि आपको लगता है कि आपके स्रोत कोड के कुछ भाग पुन: प्रयोज्य हो सकते हैं, फिर भी इसे एक नई परियोजना के रूप में न बनाएं। बस तब तक प्रतीक्षा करें जब तक कि आप इसे किसी अन्य समाधान में पुन: उपयोग नहीं करना चाहेंगे और आवश्यकतानुसार इसे मूल परियोजना से अलग कर दें। प्रोग्रामिंग एक लेगो नहीं है, पुन: उपयोग करना आम तौर पर बहुत कठिन होता है और अक्सर योजनाबद्ध नहीं होता है।

0
जोड़ा
मुझे लुब्स की वास्तविकता की भावना पसंद है।
जोड़ा लेखक ybakos, स्रोत

डेनी ने लिखा:

मुझे व्यक्तिगत रूप से लगता है कि यदि पुन: प्रयोज्य कोड परियोजनाओं में विभाजित है तो यह अन्य स्थानों का उपयोग करना आसान है, अगर यह फ़ोल्डरों में है।

मैं वास्तव में इसके साथ सहमत हूं - यदि आप इसका पुन: उपयोग कर सकते हैं, तो यह एक अलग परियोजना में होना चाहिए। इसके साथ ही, प्रभावी ढंग से पुन: उपयोग करना भी बहुत मुश्किल है :)

यहां एसओ पर, हमने तीन परियोजनाओं के साथ बहुत सरल होने की कोशिश की है:

  • एमवीसी वेब प्रोजेक्ट (जो आपकी परतों को डिफ़ॉल्ट रूप से फ़ोल्डर में अलग करने का अच्छा काम करता है)
  • हमारे डीबी
  • के स्रोत नियंत्रण के लिए डेटाबेस प्रोजेक्ट
  • एमवीसी मॉडल / नियंत्रकों के खिलाफ यूनिट परीक्षण

मैं हर किसी के लिए बात नहीं कर सकता, लेकिन मुझे खुशी है कि हमने इसे कितना सरल रखा है - वास्तव में साथ ही साथ बिल्ड को गति देता है!

0
जोड़ा

मुझे सच में लगता है कि परियोजना को भी विभाजित करना बेहतर है, लेकिन यह सब परियोजना के आकार और उस पर काम करने वाले लोगों की संख्या पर निर्भर करता है।

बड़ी परियोजनाओं के लिए, मेरे पास एक परियोजना है

  • डेटा एक्सेस (मॉडल)
  • सेवाएं
  • फ्रंट एंड
  • परीक्षण

मुझे रोब कॉनेरी और उसके स्टोरफ्रंट एप्लिकेशन से मॉडल मिला ... वास्तव में काम करने लगता है।

mvc-storefront

0
जोड़ा