MVVM Pattern (MVVM part 1)

29 בNovember 2012

תגובה אחת

 

MVVM – מבוא

תבנית מבנה לעיצוב תוכנה, מחליפה את טכנולוגיות העיצוב MVC  ו MVP

פופולרית בעיקר בפיתוח לסביבת XAML WPF  הבנת התבנית
ואני מדגיש “הבנת” דורשת ידע מוקדם ב
Design
Patterns
 אותם
הצגתי בפוסטים הקודמים.

 עקרונות: ניצור הפרדה מלאה וחוסר תלות בין הVIEW   לבין
ה
Code behind שהיינו רגילים לראות
באפליקציית חלונות, עכשיו אותו קוד ייקרא
ViewModel דהיינו
המודל של התצוגה, בנוסף ישנו תמיד ה”מודל” האמיתי  (
Person, Car, Animal,
Customer
) שאותו נציג בView.

הרווח הוא תחזוקה , בדיקות, שינויים, שימוש חוזר ועוד.

אני לא אאריך על מהות הMVVM  כי יש המון ידע ברשת איך לממש ומה זה אומר. (גם
בעברית)

טכניקה:  שימוש בBinding  
לסנכרן מידע מה
ViewModel  ל View ולא עוד קשר ישיר.

             שימוש בCommands כדי להריץ מה UI פונקציות שכתובות בViewModel  תוך שימוש בCommand pattern 

             שימוש בEvents לעדכן שינויים בין View Models (שהם בעצם קלאסים)תוך שימוש ב Observer Pattern בהנחה הגיונית שיש יותר מאחד(וזה מגיע
למאות בתכנות גדולות)

לדוגמא: נניח ויש לנו מסך רישום משתמשים, אחריו מסך מוצרים , ומסך
ניהול, ומסך בלה בלה בלה..

בקיצור יש לנו הרבה views, החוק הלא כתוב של MVVM   מספר 1 קובע שלכל View יש ViewModel משלו ! הרי שיש לנו כמה
קלאסים של
ViewModels תחת אותה אפליקציה,

ונחשוב על התרחיש הבא, אני רוצה לשלוח הודעה מViewModel אחד לשני , לעדגן
סטטוסים, מחירים, מלאי וכו’  איך נתקשר בין
האובייקטים???

הרי החוק הלא כתוב של MVVM   מספר
2 קובע ש
ViewModel אחד לא מכיר את השני !

תזכרו את שני החוקים האלה טוב טוב !! אחרת
תחטפו בראש

אני לא כ”כ אתייחס עכשיו לשאלה למה, בקצרה מטעמי  תחזוקה, הפרדה, בדיקות, וחוסר תלות שבעצם הביאה
לעולם את האפליקציות המבוזרות לשכבות,

יפה, מה שנשאר זה לתת לאובייקט ViewModel שלי לצרוח ” אני
קיייייייםםםםם” 

וכן לא רק אני קיים אלא בתוספת הודעה מסוימת,  נניח int UserId =
1234567

מה זה אומר, שאם היה לנו יכולת להגיד לViewModel
 אחר
במערכת : “תקשיב חמודי, תאזין בבקשה מי צועק עכשיו במערכת שלנו ותרשום לעצמך
את הנתונים של הצעקה..”

מעולה, זה מה שמציעים הספריות הפופולריות שנדבר עליהם   

כיום משתמשי WPF  (לפחות מי שהזמן יקר עבורו) משתמשים בעיקר בFrameWorks חיצוניים שנועדו לחסוך לנו בניית תשתית אלא
להתעסק ישר במה שחשוב.

בסדרת פוסטים שאעלה בקרוב אציג סקירה על התשתיות הבאות:

MVVM Light  של GalaSoft– הכי פשוט וקל למתחילים.

Caliburn.Micro  – סביבה שאמורה להיות נוחה עם
תשתית רחבה וקיצורים יעילים.

ו PRISM של  Microsoft patterns & practices
פופולרי מאוד לאפליקציות גדולות בWPF

אנו נראה איך מורידים ומתקינים את התשתיות השונות כולל מדריך מקוצר
לתחילת עבודה לכל תשתית עם דוגמאות.

            

הוסף תגובה
facebook linkedin twitter email

Leave a Reply

Your email address will not be published. Required fields are marked *

תגובה אחת

  1. יוסי ללום19 בDecember 2012 ב 7:16

    יפה אבל קצר מדי אפשר להאריך?

    Reply