2008-12-03 5 views
5

विजुअल स्टूडियो 2008 समाधान में इष्टतम संख्या में परियोजनाएं क्या हैं?विजुअल स्टूडियो 2008 समाधान में इष्टतम संख्या में परियोजनाएं क्या हैं?

हमारे पास एक विजुअल स्टूडियो 2008 समाधान है जो अभी लगभग 50 परियोजनाएं है। यह संभवतः बढ़ता जा रहा है क्योंकि समाधान के भीतर परियोजनाओं के बड़े हिस्से में मुख्य आवेदन के लिए प्लगइन असेंबली शामिल हैं।

यह "बहुत सारे प्रोजेक्ट" एक समाधान में की तरह लगता है, तो आप कैसे निर्धारण जो परियोजनाओं के लिए एक समाधान में एक साथ समूहीकृत किया जाना चाहिए के बारे में जाना होगा? एक समाधान में लगभग 50 परियोजनाओं के हमारे उदाहरण को देखते हुए परियोजनाओं के बड़े पैमाने पर प्लगइन होने के साथ और प्लगइन की संख्या बढ़ने की संभावना के साथ, समाधानों को कैसे संरचित किया जाना चाहिए? क्या सभी प्लगइन्स को अपने स्वयं के समाधान में रखा जाना चाहिए? जब संगठन प्लगइन समाधान में प्लगइन की संख्या "बहुत अधिक" के जादू संख्या को हिट करती है तो संगठन को कैसे बदला जाना चाहिए?

हमारे पास समाधान में इस कई परियोजनाओं के साथ कोई समस्या नहीं है ... यह जल्दी से लोड हो जाता है, यह जल्दी से बनाता है, यह उचित मात्रा में स्मृति का उपयोग करता है, और वीएस 2008 को किसी के खिलाफ क्रैश या टक्कर नहीं देता है वीएस -2008 कीड़े

मैं Microsoft से प्रलेखन के लिए देखा है (वहाँ किसी भी होना प्रतीत नहीं होता है) और से करने के लिए "हर परियोजना के लिए अपने स्वयं समाधान हो जाता है" गूगल उपज सिफारिशों खोज "एक ही समाधान में सभी परियोजनाओं जगह।" दोनों चरमपंथी बेतुका प्रतीत होता है। मैं बीच में कुछ उचित मार्गदर्शन की तलाश में हूं।

वहाँ के लिए maximum आप देखा है संबंधित Stackoverflow पर अन्य प्रश्न किया गया है। इष्टतम क्या होगा उतना ही उतना ही नहीं है।

उत्तर

3

यह "कक्षा में कितने कार्यों में होना चाहिए" जैसे विचार-विमर्श के समान है? और "प्रत्येक enum को अपनी .cs फ़ाइल में परिभाषित किया जाना चाहिए?"।

मुझे यह जानने में दिलचस्पी होगी कि आपकी प्रत्येक परियोजना में कितनी कक्षाएं हैं। आप संगठनात्मक इकाइयों के रूप में अपने वर्गों, परियोजनाओं और समाधानों के बारे में सोच सकते हैं। वे आपके जीवन को आसान बनाने के लिए हैं, और आपको (और आपकी टीम) को समग्र परियोजना को मैनेज करने योग्य वैचारिक हिस्सों में तोड़ने की अनुमति देने के लिए हैं।

यदि वीएस -2008 शिकायत नहीं कर रहा है, और आप और आपके डेवलपर्स को एक समाधान में 50 परियोजनाओं के साथ कोई समस्या नहीं है तो मैं इसके बारे में चिंता नहीं करता।

उसने कहा, यह एक बड़ी संख्या की तरह लगता है - लेकिन फिर हम आपके समग्र कोडबेस के आकार के बारे में कुछ भी नहीं जानते हैं, इसलिए आगे टिप्पणी करना मुश्किल है।

+0

स्टैक ओवरफ़्लो ने [कहा है कि वे] (http://highscalability.com/blog/2014/7/21/stackoverflow-update-560m-pageviews-a-month-25-sversvers-and-i.html): _ केवल 9 परियोजनाएं हैं, अन्य प्रणालियों में 100 हैं। इतनी कम परियोजनाओं का कारण यह है कि संकलन बिजली तेज है, जिसके लिए शुरुआत में योजना की आवश्यकता है। संकलन एक कंप्यूटर पर 10 सेकंड लेता है ._ इस बात को ध्यान में रखते हुए, 50 परियोजनाएं एक गति-संकलन परिप्रेक्ष्य से आदर्श से अधिक है। –

4

मैं कहूंगा कि आपको अपने सिस्टम पर प्रत्येक परत के लिए कम से कम 1 प्रोजेक्ट की आवश्यकता है। अगर आपको और परियोजनाओं की आवश्यकता है, तो शायद यह एक डिजाइन समस्या है। मतलब आप या तो "ओवर" -डिज़ाइन या "अंडर" कर सकते हैं-एप्लिकेशन को डिज़ाइन करें।

मैं निम्नलिखित परतों का उपयोग nowdas:

dataLayer - अंतर्निहित डेटा संरचना (डेटाबेस) के लिए जिम्मेदार। इस परियोजना में इसके लिए LINQ और आंशिक कक्षाएं रखने वाले नवीनतम मामलों में।

इंटरफेस -, इस extendabillity मदद करने के लिए सभी इंटरफेस के लिए एक परत होने और इन इंटरफेस का उपयोग करने के कुछ अन्य परतों पर भरोसा करने के लिए नहीं होने चाहिए।

तर्क - यह अपने आप, व्यापार तर्क

जीयूआई/मोर्चा को परिभाषित करता है - ग्राफिकल यूजर इंटरफेस (कोड)

इन परतों न्यूनतम अन्य परतें कि संभव हो सकता है स्थानीयकरण और अन्य परियोजना होगी हैं कि बढ़ सकता है

लेकिन कई परियोजनाओं के उपयोग से रैटर निर्देशिका और नामस्थानों को सरल बनाते हैं!

+0

यह इतना आसान नहीं है। परतें (और अक्सर अक्सर) घटकों में विभाजित हो सकती हैं, यानी डेटा परत में एक सार (सामान्य) भाग हो सकता है और एक या अधिक ठोस कार्यान्वयन हो सकता है। एक इंटरफेस असेंबली होने से सिस्टम के अप्रयुक्त हिस्सों पर निर्भरता भी शामिल हो सकती है। – user3285954

0

जाहिर है जब आप 500 तक पहुंचते हैं तो आप इसे "प्रबंधित करने" के लिए अव्यवहारिक हो जाते हैं।

मैं सुझाव देना चाहेंगे कि आप का विश्लेषण और पैकेज है कि एक ही समाधान के रूप में "क्या वास्तव में अपने आवेदन का गठन किया"। प्लगइन्स को शायद ही कभी बेस एप्लिकेशन का हिस्सा माना जाता है लेकिन आधार कार्यक्षमता में ऐड-ऑन।

तो आवेदन निश्चित प्लगइन के बिना ही उपयोगी होने के लिए बंद कर दिया जायेगा, तो आधार समाधान में उन लोगों में शामिल हैं।

अन्य प्लगइन जेनर पर समूहित किए जा सकते हैं ... आपके आईपॉड पर प्लेलिस्ट की तरह। प्रत्येक प्लगइन एक सामान्य स्तर पर क्या प्राप्त करता है? (ये स्पष्ट रूप से उदारवादी प्रश्न हैं) मैं प्राकृतिक समूहों में प्लगइन को एक साथ समूहित करता हूं - जैसे कि वे फ़ोटोशॉप प्लगइन्स की तरह मेनू पर समूह करते हैं। यानी वे 3 डी को प्रभावित करते हैं, क्या वे रंग को प्रभावित करते हैं, क्या वे ज्यामितीय प्रभाव को प्रभावित करते हैं, क्या वे विकृति इत्यादि को प्रभावित करते हैं आदि

0

जब मैं धीमा दिखता हूं, तो मैं एक ऐसे समाधान का निर्माण करता हूं जिसमें परियोजना फ़ाइलों की बजाय निर्भर परियोजनाओं के निर्मित संस्करणों (असेंबली) के संदर्भ हैं (किसी भी परियोजना के लिए जो मुझे स्रोत कोड देखने की आवश्यकता नहीं है) । मैं केवल उन परियोजनाओं के लिए स्रोत खोलता हूं जिन पर मैं काम कर रहा हूं - निश्चित रूप से किसी को भी एक समय में 50 परियोजनाओं के स्रोत पर काम करने की आवश्यकता नहीं है।

यदि आप पहले से ही स्रोत के बजाय आश्रित असेंबली का संदर्भ दे रहे हैं, तो मुझे लगता है कि यह सिर्फ एक मामला या संगठनात्मक वरीयता है (इस तरह व्यवस्थित करें कि आपके लिए समझने और बनाए रखने के लिए सबसे आसान है)।

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