سؤال

لقد قمت مؤخرًا باستكشاف أفضل طريقة لتنظيم طبقة العرض التقديمي لتطبيق ASP.NET MVC عندما يكون النموذج الأساسي معقدًا.ما ظهر حتى الآن هو بنية MVVM مع كائنات ViewModel الخاصة بها.ومع ذلك، لست متأكدًا من أفضل الممارسات عند استخدام هذا النوع من الهندسة المعمارية.

  • هل يمكن أن تحتوي كائنات ViewModel على كائنات نموذجية؟
  • إذا تم استخدام MVVM، فهل من المستحسن استخدام كائنات النموذج في طرق العرض؟
  • أين يجب تنفيذ التحقق من الصحة، على فئات ViewModel أو Model؟
  • هل يجب أن تعرف طبقة الأعمال (طبقة الخدمة) عن ViewModel ومن المسؤول عن التعيين بين ViewModel وModel؟
هل كانت مفيدة؟

المحلول

  • في معظم الأوقات، تكون كائنات ModelView مجرد حاويات تحتوي على كائنات نموذجية عندما نحتاج إلى إرسال أنواع متعددة منها، أو عندما نحتاج إلى تمرير بعض الخصائص الإضافية المطلوبة فقط في طرق العرض.
  • إذا كانت مهمة العرض هي عرض تفاصيل النموذج ولا يوجد شيء آخر لتمريره إلى العرض، فلماذا لا؟
  • يعتمد على.يمكنك استخدام فئتي ModelView وModel فقط لنقل البيانات بين الطبقات.واحرص على التحقق من الصحة عبر مجلدات نموذج Cutom أو باستخدام طبقة الخدمة.
  • لا يوجد سبب يمنعهم من معرفة ModelViews.ولكن عادةً ما تحصل فقط على النموذج (النماذج) المطلوبة من طبقة الخدمة من وحدة التحكم، ثم تمررها مباشرة أو في ModelView إلى العرض.

راجع للشغل، أنا لا أعتبر ModelViews كهندسة معمارية.إنه أشبه بـ "استخدم واحدًا عندما تحتاج إليه".بعد كل شيء، ليس هناك فائدة من القيام بذلك لتمرير البيانات لعرضها:

class SomeModelView {
    public MyModel model { get; set; }
}

مجرد تمرير MyModel إذا كان هذا كافيًا للعرض للقيام بعمله.

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