2010-03-04 8 views
6

मैं एक सामान्य डेटाबेस क्वेरी उपकरण, .NET 3.5 विंडोज फॉर्म एप्लिकेशन विकसित कर रहा हूं। प्रस्तुति परत डेटाबेस परत से स्वतंत्र है बनाने के लिए। मैं DevExpress से एक ओआरएम फ्रेमवर्क, XPO का उपयोग करता हूं।एक .net विंडोज़ फॉर्म एप्लिकेशन में मेरे ओआरएम के साथ एक्सेस कंट्रोल को एकीकृत कैसे करें?

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

मुझे आश्चर्य है कि ओआरएम में एक्सेस नियंत्रण बनाने के लिए इस तरह का अनुभव कौन है। मेरे बुनियादी आवश्यकता है:

  1. यह एक सामान्य विधि और क्रम में उन के द्वारा नियंत्रित किया जाना चाहिए। तो कोई भी हार्ड कोडिंग स्वीकार्य नहीं है।
  2. यह विशेषता, डेटाबेस तालिका, या यहां तक ​​कि बाहरी असेंबली पर आधारित हो सकता है।

मैं एक तैयार समाधान खरीदने के लिए तैयार हूं। एओपी के विचार के अनुसार, एक एक्सेस कंट्रोल फ़ंक्शन को मौजूदा कार्यों के साथ आसानी से और लगभग पिछले डेवलपर को जानबूझकर एकीकृत नहीं किया जा सकता है;)

कोई सुझाव स्वागत है।

+0

क्या आप ऐसे ओआरएम के साथ एकीकृत समाधान में रूचि रखते हैं? –

+0

मुझे कोई फर्क नहीं पड़ता। कृपया आगे बढ़ें और मुझे और बताएं। – Ying

उत्तर

1

मुझे यकीन नहीं है कि यह उत्तर आपकी स्थिति में सहायक होगा, लेकिन यह आपके लिए दिलचस्प हो सकता है।

एक्स-टेंबल कंपनी (DataObjects.Net ORM का डेवलपर) कुछ महीनों में DataObjects.Net के लिए समान सुविधा को लागू करने की योजना बना रहा है। एक्स-टेंडे की योजना सुरक्षा विस्तार का उपयोग करने के लिए पूर्ण रूप से विशेष रूप से विशेषताओं और पहलुओं के आधार पर तैयार करने के लिए तैयार है। निश्चित रूप से यह इस ओआरएम से निकटता से जुड़ा होगा, लेकिन आप इसके विवरण से कुछ विचार प्राप्त कर सकते हैं। सुविधा अनुरोध और इसकी चर्चा here देखें।

आप Rhino Security पर भी एक नज़र डाल सकते हैं, मुझे इस परियोजना की वर्तमान स्थिति पता नहीं है, लेकिन यह इस तरह के समाधान को आपके मामले में उपयोगी हो सकता है।

0

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

प्रस्तुति -> प्रबंधक -> डेटा ऐक्सेस परत -> डीबी

उदाहरण:

var user = Program.Components.Get<IUserManager>().GetById(1); 
user.FirstName = "Jonas"; 
Program.Components.Get<IUserManager>().Save(user); 

प्रबंधकों में आप IIdentity उपयोग कर सकते हैं और IPrincipal (में अभिगम नियंत्रण इंटरफेस में बनाया गया। नेट) पहुंच को नियंत्रित करने के लिए। http://msdn.microsoft.com/en-us/library/ms172765(VS.80).aspx

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