मैं एक समान पोस्ट के लिए स्टैक ओवरव्लो पर चारों ओर देख रहा हूं और हां, मैं पूछने के बारे में कुछ चर्चाएं कर रहा हूं लेकिन मैंने एक नया विषय शुरू करने का फैसला किया।डीडीडी और क्लाइंट-साइड सत्यापन
मान लें कि आपके पास एक ऐसा एप्लिकेशन है जो डोमेन-मॉडल पैटर्न, डीडीडी और अन्य डिज़ाइन पैटर्न का उपयोग करता है। मान लेते हैं कि हम समाधान के एक नंबर के नीचे सूचीबद्ध है:
- Solution.Model
- Solution.Repository
- Solution.Services
- Solution.Presentation
- Solution.UI.Web
उपयोगकर्ता अनुभव परत समाधान होगा .UI.Web और हम मान लेंगे कि यह एक एएसपी.NET वेबफॉर्म एप्लिकेशन होगा। आप क्लाइंट-साइड सत्यापन कैसे लागू करते हैं?
वहाँ रहे हैं चीजों के एक नंबर पर विचार किया जाएगा:
सबसे पहले, हम आवेदन/डाटाबेस सर्वर (रों) हिट करने के लिए ग्राहक के लिए किसी भी सत्यापन त्रुटियों वापस जाने के लिए नहीं करना चाहिए था, हम फिर भी लागू कर सकता है सर्वर-साइड सत्यापन भी, लेकिन हमें क्लाइंट-साइड सत्यापन की भी आवश्यकता होगी।
दूसरा, हम उपयोगकर्ता अनुभव परत पर सत्यापन नियमों को लागू नहीं करना चाहते हैं। ऐसा इसलिए है क्योंकि यदि आपका एप्लिकेशन एक वेब ऐप है और फिर आप WinApp क्लाइंट को भी बनाने का निर्णय लेते हैं, तो आपको फिर से सत्यापन नियमों को लागू करना होगा -> रखरखाव दुःस्वप्न।
एक सरल दृष्टिकोण आपके व्यूमोडल ऑब्जेक्ट्स (क्लाइंट को भेजे जाने वाले आपके डोमेन इकाइयों के फ़्लैट किए गए दृश्य) के साथ आपके सत्यापन तर्क को लागू करना होगा और फिर एप्लिकेशन/डेटाबेस सर्वर को मारने से पहले उन ऑब्जेक्ट को मान्य करना होगा।
एक और दृष्टिकोण, जिसे मैंने विभिन्न अनुप्रयोगों में कई बार देखा है, केवल सत्यापन त्रुटि संदेशों का संग्रह उत्पन्न करना है और उस संग्रह को क्लाइंट को भेजना है। यह ठीक है, लेकिन एक समस्या है। सत्यापन त्रुटियों का केवल एक साधारण सारांश संदेश नहीं होगा, विशेष रूप से यदि आपके पास बड़ा डेटा प्रविष्टि फ़ॉर्म है।
अब एएसपी.नेट एमवीसी ढांचा जीवन को और अधिक आसान बनाता है। आप ईएफ + डाटा एन्नोटेशन का उपयोग कर सकते हैं, और एमवीसी मचान ढांचे के लिए आपके लिए अधिकतर काम कर सकते हैं। लेकिन यह मामला है यदि आप एक एमवीसी अनुप्रयोग बनाना चाहते हैं और jquery और जावा स्क्रिप्ट के साथ अपने सत्यापन तर्क को लागू करना चाहते हैं।
लेकिन अगर आपको एक सत्यापन फ्रेमवर्क को लागू करने के लिए एक और सामान्य दृष्टिकोण की आवश्यकता है जिसे विभिन्न अनुप्रयोगों में उपयोग और उपयोग किया जा सकता है, तो WinForms और WebForms कहें?
बस स्पष्ट करने के लिए, मैं जो पहचान रहा हूं, वह एक पैटर्न फ्रेम/सिद्धांतों और/या तकनीकों/ढांचे का एक सेट है जो एक सत्यापन ढांचे को लागू करने के लिए है जिसे आपके डोमेन मॉडल के साथ कार्यान्वित किया जा सकता है और फिर अपने क्लाइंट अनुप्रयोगों पर लागू किया जा सकता है। और -> मैं टूटा नियमों या कुछ भी के बारे में स्ट्रिंग त्रुटि संदेशों का संग्रह वापस नहीं करना चाहता, मैं सत्यापन विफलता पर अपने डेटा-बाध्य नियंत्रण (टेक्स्टबॉक्स, कॉम्बोबॉक्स, डेटटाइम पिकर, आदि) को अपडेट करने में सक्षम होना चाहता हूं ताकि उपयोगकर्ता अनुभव परत अधिक सहज (यदि आप करेंगे) होगा।
मैंने यहां कुछ और कार्यान्वयन और ढांचे को देखा है, और मैंने कुछ समय के लिए एएसपी.नेट एमवीसी क्लाइंट-साइड सत्यापन का उपयोग किया है। इसलिए मेरे उत्तर में एमवीसी या जावास्क्रिप्ट सत्यापन के साथ कुछ भी नहीं है।
पीएस। यदि आप संदर्भ लिंक, किताबें, लेख, नमूना परियोजनाओं और/या कोड स्निपेट्स का उल्लेख कर सकते हैं तो यह बहुत अच्छा होगा।
tnx, आर्मिन [:
अपने जवाब और लिंक के लिए धन्यवाद।आप सही हैं, मैं इस बारे में सोच रहा हूं और पिछले कुछ दिनों से कुछ नमूना अनुप्रयोगों पर काम कर रहा हूं और आज मुझे एहसास हुआ कि क्लाइंट-साइड सत्यापन को लागू करने की पूरी प्रक्रिया को स्वचालित करने की कोशिश करना थोड़ी अधिक होगी। अच्छी खबर यह है कि डेटा एनीमेशन नामस्थान का उपयोग डोमेन इकाइयों में सत्यापन तर्क को लागू करने या मॉडल ऑब्जेक्ट्स देखने के लिए किया जा सकता है। जो सत्यापन नियमों के केंद्रीकरण को हल करेगा। लेकिन अंततः हमें क्लाइंट पर वास्तविक सत्यापन लागू करना होगा, जो कि कोई बड़ी बात नहीं है। – Nexus