سؤال

أنا أستخدم ASP.NET MVC مع فئات POCO إطار الكيان وإطار FluentValidation. إنه يعمل بشكل جيد ، والتحقق من الصحة يحدث كما ينبغي (كما لو كنت أستخدم DataAntations). لقد حصلت على التحقق من صحة من جانب العميل. وأنا سعيد جدا به.

نظرًا لأن هذا تطبيق اختبار ، فأنا أكتب فقط لمعرفة ما إذا كان بإمكاني الحصول على تقنيات جديدة تعمل معًا (وتعلمها على طول الطريق) ، فأنا الآن مستعد لتجربة استخدام ViewModels بدلاً من مجرد تمرير النموذج الفعلي إلى العرض. أخطط لاستخدام شيء مثل Automapper في خدمتي للقيام بالرسم البياني ذهابًا وإيابًا من الطراز إلى ViewModel لكن لدي سؤال أولاً.

كيف سيؤثر هذا على التحقق الخاص بي؟ هل يجب كتابة فصول التحقق من الصحة (المكتوبة باستخدام FluentValidation) مقابل ViewModel بدلاً من النموذج؟ أم أنه يجب أن يحدث في كلا المكانين؟ كانت إحدى الصفقات الكبيرة حول عمليات البيانات (والسلطة الفلنية) هي أنه يمكن أن يكون لديك التحقق من الصحة في مكان واحد من شأنه أن يعمل "في كل مكان". ويحقق هذا الوعد (في الغالب) ، ولكن إذا بدأت في استخدام ViewModels ، ألا أفقد هذه القدرة وعلي العودة إلى وضع التحقق من الصحة في مكانين؟

أم أنا فقط أفكر في ذلك خطأ؟

هل كانت مفيدة؟

المحلول

أم أنا فقط أفكر في ذلك خطأ؟

من المحتمل ؛)

إذا قمت بإضافة جميع رمز التحقق من الصحة إلى ViewModels ، فستقوم فقط بالتحقق منها بدلاً من النماذج الفعلية الخاصة بك. كل ما تبذلونه من التغيير هو الكائنات التي يمكن أن تدخل حالة غير صالحة.

أنا الآن سعيد لأن فطيرة لا تتحقق فقط من عارضات العرض ، ثم نقل تلك المعلومات إلى النماذج الفعلية وطبقات DAO. ما إذا كان نطاقك الذي يمكن أن يدخل بحالة غير صالحة أم لا ، فهو موضوع مثير للجدل على الرغم من أن هذه التقنية تعمل بشكل رائع حتى الآن. التحقق من الصحة في مكان واحد وليس كائنات غير صالحة في متجر الثبات الخاص بي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top