.NET में पहलू-उन्मुख प्रोग्रामिंग करने का सबसे अच्छा तरीका अच्छी तरह से ज्ञात डिजाइन तकनीकों का उपयोग करना है। उदाहरण के लिए, एसओएलआईडी सिद्धांतों को लागू करके आप क्रॉस-कटिंग चिंताओं को जोड़ने की अनुमति देने के लिए लचीलापन और मॉड्यूलरिटी प्राप्त कर सकते हैं। यदि आपके पास डिज़ाइन सही है, तो आप बिना किसी ढांचे के सबसे अधिक क्रॉस-कटिंग चिंताओं को लागू करने में सक्षम होंगे। यह सोचना एक पतन है कि ओओपी AOP करने के लिए अनुपयुक्त है।
यहाँ कुछ संकेत दिए गए हैं:
- ठोस उदाहरणों पर निर्भर न हों, बल्कि सार पर निर्भर रहें।
- एक ही कक्षा में क्रॉस-कटिंग चिंताओं और व्यावसायिक तर्क को न मिलाएं।
- उन चिंताओं ( सज्जाकार ) को लागू करने वाली कक्षाओं में व्यावसायिक तर्क के साथ कक्षाएं लपेटकर क्रॉस-कटिंग चिंताओं को जोड़ना ।
- अपने डिजाइन में सामान्य कलाकृतियों को ढूंढें और उन्हें समान रूप से मॉडल करें, अधिमानतः एक ही प्रकार के अमूर्त का उपयोग करके। उदाहरण के लिए इस और इस पर एक नज़र डालें ।
जब आपको सही सार मिल गया है, तो सिस्टम में नई क्रॉस-कटिंग चिंताओं को जोड़ना एक नए डेकोरेटर वर्ग को लिखने और इसे सही कार्यान्वयन के आसपास लपेटने का मामला है। यदि सार सामान्य हैं, तो आप कक्षाओं के एक बड़े समूह के चारों ओर एक एकल डेकोरेटर लपेट सकते हैं (जो कि एओपी के बारे में ठीक है)।
यद्यपि गतिशील प्रॉक्सी और कोड बुनाई जैसी तकनीकें बुरी तरह से डिजाइन किए गए एप्लिकेशन के साथ काम करना आसान बना सकती हैं, लेकिन वास्तव में अच्छे डिजाइन का कोई विकल्प नहीं है। जल्दी या बाद में आप जल जाएंगे। इसका मतलब यह नहीं है कि गतिशील प्रॉक्सी पीढ़ी और कोड बुनाई का उपयोग नहीं किया जाना चाहिए। लेकिन एक उचित अनुप्रयोग डिजाइन के बिना भी उन तकनीकों को केवल मामूली मदद मिलेगी।