असल में, यदि आप IDataErrorInfo
लागू करते हैं, तो बाध्य वस्तु में सत्यापन लागू किया जाता है, जबकि यदि आप सत्यापन नियम लागू करते हैं, तो बाध्यकारी से जुड़ी वस्तुओं में सत्यापन लागू किया जाता है।
व्यक्तिगत रूप से, अगर आप MVVM का उपयोग कर रहे हैं, मुझे लगता क्या तुमने कभी IDataErrorInfo
के अलावा कुछ का उपयोग करने के पागल होने के लिए होगा। आप सत्यापन दृश्य मॉडल में जीना चाहते हैं । यदि यह आपके दृश्य मॉडल में है, तो यह केंद्रीकृत है और यह परीक्षण योग्य है। यदि यह आपके विचार में है, तो आपका सत्यापन तर्क गलत हो सकता है, या गायब हो सकता है, और इसे खोजने का एकमात्र तरीका मैन्युअल रूप से आपके दृश्य का परीक्षण करना है। यह टालने योग्य बग का एक बड़ा संभावित स्रोत है।
ऐसे स्थान हैं जहां सत्यापन नियमों का उपयोग करना समझ में आता है - उदाहरण के लिए, आप गूंगा वस्तुओं (उदाहरण के लिए XmlDataSource
) के आसपास यूआई बना रहे हैं। लेकिन ज्यादातर उत्पादन अनुप्रयोगों के लिए, मैं इसके पास नहीं जाऊंगा।
स्रोत
2010-12-05 23:50:31
बहुत जानकारीपूर्ण, बहुत बहुत धन्यवाद! –
एक ValidationRule का उपयोग करने से संभावित लाभ है कि आप मूल्य सत्यता की जांच कर सकते से पहले ViewModel अनुचित मान में बदल जाता है। –
मुझे लगता है कि प्रमाणीकरण नियम केवल तभी उपयुक्त हैं जब आप एमवीवीएम का उपयोग नहीं कर रहे हैं। यदि आप दृश्य मॉडल में देखने से दृश्य में दर्ज डेटा को रोकने के लिए प्रमाणीकरण नियम का उपयोग करते हैं, तो दृश्य मॉडल अब दृश्य को मॉडलिंग नहीं कर रहा है।इसे और अधिक अपारदर्शी बनाये बिना इन सभी चीजों को समझना काफी कठिन है। –