2010-06-10 5 views
9

के साथ एएसपी.नेट एमवीसी में व्यूमोडेल का उपयोग करके मैं एंटिटी फ्रेमवर्क पीओसीओ कक्षाओं और फ्लुएंट वैलिडेशन फ्रेमवर्क के साथ एएसपी.नेट एमवीसी का उपयोग कर रहा हूं। यह अच्छी तरह से काम कर रहा है, और सत्यापन हो रहा है जैसा कि यह होना चाहिए (जैसे कि मैं डेटा एनीमेशन का उपयोग कर रहा था)। मुझे क्लाइंट-साइड सत्यापन भी मिल गया है। और मैं इसके साथ बहुत खुश हूँ।FluentValidation

चूंकि यह एक परीक्षण अनुप्रयोग है, इसलिए मैं यह देखने के लिए लिख रहा हूं कि क्या मैं एक साथ काम कर रहे नई तकनीकों को प्राप्त कर सकता हूं (और उन्हें रास्ते में सीख सकता हूं), अब मैं वास्तविक मॉडल को पास करने के बजाय व्यूमोडल्स का उपयोग करने के लिए प्रयोग करने के लिए तैयार हूं दृश्य मैं मॉडल से व्यू मॉडेल पर आगे और पीछे मैपिंग करने के लिए अपनी सेवा में ऑटोमैपर जैसे कुछ का उपयोग करने की योजना बना रहा हूं लेकिन मेरे पास पहले एक सवाल है।

यह मेरे सत्यापन को कैसे प्रभावित करेगा? क्या मेरे सत्यापन वर्ग (FluentValidation का उपयोग करके लिखा गया) मॉडल के बजाय ViewModel के खिलाफ लिखा जाना चाहिए? या क्या यह दोनों जगहों पर होने की ज़रूरत है? DataAnnotations (और FluentValidation) के बारे में बड़े सौदों में से एक यह था कि आप एक ही स्थान पर सत्यापन कर सकते हैं जो "हर जगह" काम करेगा। और यह उस वादे को पूरा करता है (ज्यादातर), लेकिन अगर मैं व्यूमोडल्स का उपयोग करना शुरू करता हूं, तो क्या मैं उस क्षमता को खो देता हूं और दो स्थानों पर सत्यापन डालने के लिए वापस जाना पड़ता हूं?

या क्या मैं बस इसके बारे में सोच रहा हूं?

उत्तर

4

या क्या मैं बस इसके बारे में सोच रहा हूं?

शायद;)

आप अपने ViewModels करने के लिए सभी सत्यापन कोड जोड़ देते हैं तो आप सिर्फ उन्हें अपने वास्तविक मॉडल के बजाय मान्य होगी। आपके सभी वास्तव में बदल रहे हैं कि कौन सी वस्तुएं अमान्य स्थिति में प्रवेश कर सकती हैं।

अभी मैं पाई के रूप में खुश हूं, केवल ViewModels को मान्य करता हूं और फिर उस जानकारी को वास्तविक मॉडल और डीएओ परतों पर वापस भेजता हूं। चाहे आपका डोमेन अमान्य स्थिति दर्ज कर सकता है या नहीं, हालांकि एक विवादास्पद विषय है लेकिन अब तक यह तकनीक मेरे लिए बहुत अच्छा काम कर रही है। मेरे दृढ़ता स्टोर में एक स्थान पर मान्यता और कोई अमान्य वस्तु नहीं है।