Model View ViewModel או MVVM היא תבנית ארכיטקטורה בהנדסת תוכנה שתוכננה על ידי מיקרוסופט. התבנית מהווה המשך לתבניות הנדסה קודמות בסביבת UI שהן MVC ו-MVP. מטרת התבנית היא ליצור סדר באפליקציות UI ולשמור על עקרונות תכנות נכון כמו SRP ואפילו שאר עקרונות SOLID.

MVVM לא נוצרה עבור טכנולוגיה ספציפית אבל מקובלת מאוד בסביבת XAML בפרט ושפות Markup בכלל, ולמעשה היא סוג של תקן בפיתוח ל-WPF ,UWP, ובאופן חלקי גם ב Angular החל מגרסה 2, שכן פופולריות השיטה הכניסו את העקרונות לשימוש גם בסביבת WEB.

עקרונות התבנית עריכה

עקרונות התבנית הם מבנה של:

  • Model - מודל מתאר על האובייקטים שמהווים את ה-Data של התוכנית. (הלוגיקה)
  • View - החלק האחראי על הגרפיקה וממשק המשתמש. (ה-UI - User Interface), כמו כן הוא מחזיק מופע של ה-ViewModel.
  • ViewModel - החלק אשר מהווה רכיב תקשורת בין החלקים ומחזיק רכיבי לוגיקה של UI. מחזיק מופע של Model.

הרעיון הוא הפרדה מוחלטת בין ה-View לבין ה-Model כשהתקשורת ביניהם היא באמצעות מנגנוני Commands להעברת פקודות\מסרים, ו-Data Binding בין ה-View ל-ViewModel כדי להציג נתונים.