MVVM part 9 – introduction to Prism

6 בMarch 2013

תגיות: ,
4 תגובות

הגענו לחלק שבו נסקור
את
Prism ונלמד איך משתמשים בו בקלות רבה. Prism זו ספריה פשוטה עם המון רעיונות שלא בכולם חייבים להשתמש, בסופו
של דבר היא באה לעזור לנו ואנו לא חייבים לקבל את כל העזרה. אז מה הרעיון ב
Prism? הרעיון הבסיסי הוא כמובן אפליקציה מבוססת ארכיטקטורה של MVVM , אבל הרבה מעבר לזה. הרעיון הוא לספק תמיכה לאפליקציות UI מורכבות, עם הפרדת תלות מוחלטת.

זאת אומרת שיש לי
מעטפת (
Shell) 
שמכילה אזורים
Region’s בשפה המקצועית וכל אזור
כזה באופן פנימי מוכל ע”י
User-Control ומנהל לוגיקה פנימית משלו
באמצעות
View-ViewModel, אבל כשמדברים על אזורים חשוב לעשות אבחנה
בין חלקים לוגיים לחלקים מעשיים וכאן מופיע הרעיון העונה לשם
Module מודול זאת הישות הפרטית שלי שעוטפת את ה Model-View-ViewModel (אחד או יותר)הפרטי שלי שמייצג רעיון לוגי נניח
חלון
Properties של אפליקציה ונרשמת לרשימה מסוג ModuleCatalog 
וע”י כך יש גישה למודולים דרך ה
Container של האפליקציה. כשנרצה שמודול מסוים יופיע לתוך Region מסוים בShell נפנה לIOC-container ונבקש ממנו לטעון את ישות המודול המבוקש
באמצעות זיהוי מסוים. פעולת הטעינה נעשית באמצעות
RegionManager שאחראי לחיבור “פיזי” בין Module לבין Region התקשורת בין החלקים תהיה
באמצעות מנגנון הודעות או שירותים כללי
(EventAggrigator) שיושב בחוץ וכל אותם מרכיבים (components) נרשמים אליו ומאזינים לו וכל מתקשרים ביניהם כמו שכבר ראינו
בטכנולוגיות
MVVM
 קודמות. המעבר ו\או השיתוף וקבלת השירותים
החיצוניים יתבצע באמצעות מנגנון
IOC וכאמור בתת
ספריה כאמור מסוג
MEF או UNITY (נפוץ יותר). זה כל התורה של Prism על רגל אחת. בלבלתי אתכם כהוגן?? ברור זה התפקיד שלי.. בואו נפרק
את הבניין חזרה לבלוקים.

1. Shell : המעטפת
של האפליקציה, מוגדרת כאובייקט עם “ויזואלי” עם קוד
xaml. המעטפת מכילה “אזורים שונים” שמהווים קונטיינרים וכל
אחד נקרא
Region.

2. Module : אובייקט
לוגי שמחזיק מעין אפליקציה שלמה משל עצמו, הוא אמנם מכיל קוד
UI , אבל לא רץ ישירות אלא נטען לתוך region שמציג אותו.

3. Module-Catalog: פשוט רשימה של מודולים. כל אחד הוא מסוג IModule ויכול לכלול מודל פנימי, ומספר Views . מודול אחד לא מודע לשני.

3. Region: אזורים שונים מוגדרים מראש שנמצאים בתוך הShell. לכל Region יש את הגודל והמיקום והוא
יכול להכיל אלמנטים מסוג
IModul .

4. RegionManager: מנהל את טעינת המודולים לתוך אזורים בShell, גם בזמן ריצה ניתן להחליף מודלים בתוך אזור מסוים.

5.EventAggrigator מנגנון הודעות שמאפשר להעביר הודעות בין
מודולים, ואזורים, לספריות שירות ובינם לבין עצמם.

מן הראוי להוסיף שיש
בפריזם
BootStrapper שכמו תמיד אחראי להיות נקודת הפתיחה של
האפליקציה, לצורך העניין הוא ירים את ה
Shell  לאוויר.

עד כאן המבוא התאורטי
ל
Prism. בפוסט הבא בסדרה נראה איך מיישמים את
התאוריה ונכתוב מיני אפליקציה עם פריזם.

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

Leave a Reply

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

4 תגובות

  1. שחר.NET7 בMarch 2013 ב 1:20

    קצר מידי. אתה מוכן לפרט יותר??

    Reply
  2. חוקר WPF16 בApril 2013 ב 13:26

    מה אם המשך לפוסט הזה חודשיים אני מחכה !!

    Reply
  3. rooleatly22 בApril 2013 ב 14:54

    I was pretty pleased to acquire this web-site.I wanted to thanks for your time for this amazing read!! I definitely enjoying each small bit of it and I have you bookmarked to check out new stuff you weblog post.

    [url=http://www.michaelkorsbagonlines.com]michael kors bags outlet[/url]

    Reply
  4. tietrinny9 בMay 2013 ב 15:52

    This web webpage is certainly a walk-through for all of the information you wanted about this and didn’t know who to ask. Glimpse here, and you will absolutely discover it.

    [URL=http://www.lululemonoutletcheap.com/lululemon-tops.html]lululemon athletica[/URL]

    Reply