कुछ पैटर्न मैं एक समाधान के भीतर परियोजनाओं के आयोजन में उपयोगी पाया गया है:
मैं लगभग हमेशा एक "आम" या "utils" परियोजना है। इस परियोजना में बहुत कम निर्भरता होनी चाहिए, इसलिए इसे आसानी से मेरे समाधान (या संभवतः अन्य समाधानों में) कहीं भी और हर जगह फिर से उपयोग किया जा सकता है। आप आश्चर्यचकित होंगे कि इस परियोजना में कितने छोटे सहायक वर्ग आएंगे।
मैं हमेशा अपने व्यवसाय तर्क को एक परियोजना (या परियोजनाओं के एक सेट की संभावना) में अलग करने की कोशिश करता हूं, और मेरे बूटस्ट्रैप/प्रदाता कोड को एक अलग परियोजना (या परियोजनाओं के सेट) में अलग करने का प्रयास करता हूं। मेरा बूटस्ट्रैप/प्रदाता वर्ग संदर्भ-विशिष्ट हैं (वे एक HttpContext या कमांड लाइन तर्क, आदि की उपस्थिति मान सकते हैं), लेकिन उनमें कोई व्यावसायिक तर्क नहीं है। मेरे व्यवसाय वर्ग व्यवसाय तर्क को लागू करते हैं, लेकिन किसी संदर्भ-विशिष्ट तत्वों की उपस्थिति या अनुपस्थिति को न मानें। इस तरह, अगर मैं शुरुआत में सिस्टम को कंसोल ऐप के रूप में बना देता हूं, तो मैं बाद में विंडोज़-सर्विस बूटस्ट्रैप/प्रदाताओं का एक सेट लिख सकता हूं, और इसे जल्दी से विंडोज़ सेवा में बदल सकता हूं, जिसमें बिजनेस क्लासेस पर कम-से-कम प्रभाव पड़ता है।
बूटस्ट्रैप/प्रदाता कक्षाओं के समान, मैं अपने व्यवसाय वर्ग से अपनी डेटा परत को अलग करने का भी प्रयास करता हूं। लेकिन यह एक आम, बुनियादी अलगाव है कि हर किसी ने 1000 बार सुना है, इसलिए यह उल्लेखनीय रूप से उल्लेखनीय है।
कई प्रणालियों का व्यवसाय तर्क एक ही परियोजना में फिट होने के लिए बहुत जटिल है और कोड की रखरखाव की डिग्री रखता है। इस प्रकार, मैं आमतौर पर कई व्यावसायिक तर्क परियोजनाओं के साथ मिल जाता हूं, जो कार्यात्मक क्षेत्र ("ग्राहक मैंगमेंट", "उत्पाद सूची" आदि) द्वारा समूहीकृत होते हैं।
मेरे पास एक प्रोजेक्ट नहीं है, न कि एक प्रोजेक्ट। मेरे पास कक्षा आरेख, कक्षाओं का पुनर्मूल्यांकन, आदि में अच्छी सलाह है! –