בחירת תשתית MVVM לפרוייקט
-
יום שני 30 אפריל 2012 07:01. אנו בתחילת פרוייקט חדש, באיזה חבילת MVVM לבחור אך כיום ראיתי באינטרנט שיש מספר חבילות. הדרישות העיקריות שלנו הם:
א. תמיכה בוולידציות (סטטיות ודינאמיות - כלומר ולידציה שיורדת לב BL ומחלחלת בחזרה ל UI)
ב. שירותים ל Message Box, Save files, Open Files וכו'
ג. פתיחה של חלון אחד מתוך חלון אחר (נווגציה).
כל התגובות
-
יום שני 30 אפריל 2012 07:51מנחה דיון
הי,
א. למה זה קשור לתשתית MVVM? אני לא חושב שכדאי לקשור את שני הנושאים, ואדרבה, אם אתה מכיר תשתית שעושה גם את זה אז לא הייתי ממליץ על כך. תשתיות טובות באות *בחלקים* כך שאפשר להשתמש רק במה שצריכים ולא מעבר. (זו אגב אחת הסיבות שאני לא אוהב את Caliburn - היא מחליטה יותר מדי עבורך לטעמי).
בהקשר הזה, לפי דעתי MvvmLight הכי פשוטה וקלה ובה אני כמעט תמיד משתמש.
בערך ב10% מהפרוייקטים בהם אני נמצא אני מממש את פריזם, שהיא הרבה יותר כבדה, אבל לפעמים צריך אותה.ב. שירותים מהסוג הזה אני מציע למממש *לבד*. זה סה"כ לא מורכב במיוחד, ואפשר לראות כיוון בפוסט שלי על הנושא - איך פותחים MessageBox ע"י Behaviors ב MVVM.
הסיבה שלפי דעתי עדיף לממש פתרונות כאלו לבד היא שכל תשתית, מתוחכמת ככל שתהיה, לא תפתור כל סיטואציה אפשרית. עדיף להבין איך לפתור את זה בעצמך (כשאגב, Behaviors ועקרון Always Look Up מהוים תמיד את הכיוון הכללי) וכך אפשר לפתור כל בעייה. עדיף ללמוד לדוג מאשר שיתנו לך דג - והתחושה שלי היא שתשתיות שעושות הכל עבורך בעיקר עושות את זה.
כמובן שאם תרצה להתיעץ איך לפתור בעייה ספציפית ב MVVM - אשמח לעזור.ג. מדובר על פתיחת חלון ממש? או שינוי החלון הנוכחי?
פתיחת חלון ממש אפשר לממש בדומה ל (ב) ומהווה עוד סיבה טובה למה עדיף לממש את (ב) בעצמך. שים לב כי מבחינת UX העולם הולך לכיוון אחר כבר כמה שנים טובות - עדיף כמה שפחות לפתוח חלונות חדשים, כש MDI ננטש לחלוטין, וחלונות 8 בכלל הולך למקום בלי חלונות יותר. יחד עם זאת אני מניח שאלו דרישות שלא בשליטתך.
במידה ומדובר על שינוי החלון הנוכחי - לפריזם יש אחלה פתרון בשביל זה- Region Manager ששווה מאוד להכיר שמממש ניווט ע"י Behaviors (או יותר נכון attached property behaviors) בצורה מאוד יפה ונקייה.- סומן כתשובה על-ידי D.O.A יום שני 30 אפריל 2012 12:52