मैं ऐसे एप्लिकेशन पर काम कर रहा हूं जिसमें हम जितना संभव हो सके चिंता का पृथक्करण रखने के लिए कड़ी मेहनत कर रहे हैं। हम पाते हैं कि सुरक्षा की क्रॉस-कटिंग चिंता कई जटिलताओं को बनाती है।एओपी और UI तत्वों के लिए सुरक्षा लागू करना
हालांकि, ऐसा लगता है कि इन्हें विशेषताओं और पहलू-ओरिएंटेड प्रोग्रामिंग का उपयोग करके कम किया जा सकता है।
मैं इसे डोमेन लेयर कोड के पहलुओं को लागू करने तक समझता हूं, लेकिन यदि आप इसे UI तत्वों पर लागू करना चाहते हैं तो क्या होगा? उदाहरण के लिए, यदि मैं किसी बटन को प्रदर्शित नहीं करना चाहता हूं तो उपयोगकर्ता को उस कार्यक्षमता को निष्पादित करने की अनुमति नहीं है?
हमारे MVC आवेदन में, इस समय हमारे पास लिखने के लिए (छद्म कोड इस प्रकार) होगा:
<% if (user.CanSeeSomeData) { <%=Html.TextBox("MyTextBox") } %>
लेकिन हम गुण एक ला AOP यदि संभव हो तो साथ प्रदर्शन को नियंत्रित करना चाहते हैं।
कोई विचार?
इसके अलावा, यदि तीसरे पक्ष हैं, तो ओपन-सोर्स टूल्स उपयोगी होंगे, उन सुझावों का स्वागत है।
प्रतिक्रिया, भरोसेमंद के लिए धन्यवाद। तो, क्या आप कह रहे हैं कि विशेषता दृष्टिकोण ठीक है, लेकिन नियंत्रक/व्यूमोडेल में किया जाना चाहिए, या आप यह कह रहे हैं कि अगर कथन यह करने का तरीका है * ["यह तरीका विचार होना चाहिए"] * – jlembke
इसके अलावा, आप इसे ViewModel में कैसे पूरा करेंगे? मैं एक संपत्ति पर एक विशेषता डाल सकता हूं लेकिन यह फॉर्म आइटम को दिखाने/छिपाने/अक्षम करने में अनुवाद नहीं करता है। क्या आप कह रहे हैं कि मुझे * नियंत्रण को छिपाने की कोशिश नहीं करनी चाहिए, लेकिन व्यूमोडेल/कंट्रोलर में केवल एक्सेस उल्लंघन को संभालना चाहिए? – jlembke