DCSIMG
עמוד הבית| חבילות השירות שלנו| חומר חופשי| צור קשר
ארכוויז מס' 2 –במוצר קיים, האם להסב ל WPF או להמשיך פיתוח ב-Winforms ? - בלוג היועצים של מיקרוסופט ישראל

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

ארכוויז מס' 2 –במוצר קיים, האם להסב ל WPF או להמשיך פיתוח ב-Winforms ?

Alik Levin     הערה: אני שמח לארח ארכיטקט ותיק בוגר MCS, מורי ורבי, אשף קבבים וסטייקים ובין היתר סמנכ”ל פיתוח בחברת Mobideo – אייל רייסמן. אחד הדברים החשובים שלמדתי מאייל זה לדעת לקבל החלטות וליישם אותן. אייל משתף כאן אחת הדילמות שהתלבט לאחרונוה. הוא גם קיבל החלטה ויישם אותה. תהנה!

 

לאחרונה מצאתי את עצמי מתלבט בסיטואציה הבאה – יש אפליקציה די גדולה שעד היום רצה על מכשירים מבוססי Windows CE/ Windows mobile על מסכים קטנים (עד 5 אינץ'), צד הלקוח מבוסס Win app ( .Net CF ).

בתקופה האחרונה כתוצאה מצרכי שוק הלקוחות של המוצר, נדרש להוסיף למוצר יכולות deployment גם למחשבים מבוססי XP (עליו השלום אוטוטו...) עם מסכים גדולים יותר.

בעיקרון – על פניו נראה שפתרון WPF אמור לספק מענה הולם לסיטואציה בה גודל המסך אינו קבוע ומוגדר מראש באופן מובנה, ולעומתו – ב Winforms ניאלץ לקודד לוגיקת כיוונון של המסכים בכפוף למאפייני המסך (ב Runtime).

כמובן שיש עוד מס' אפשרויות, אך מסיבות שונות הן לא עלו ל Best and final ...

נשמע פשוט, לא? (אז זהו, שלא. אלא אם אתם בעולם שכולו טוב ואין לכם מגבלות זמן/כסף/סיכון...)

כאבים והתלבטויות

הכאבים הקשורים לבחירת הפתרון לצד הלקוח ה"חדש" הם:

  1. ראש ובראשונה – סיכון טכנולוגי.
    1. האם לא מסוכן מידי לקחת מערכת שרצה ביצור אצל לקוחות ולפתח צד לקוח חדש?
    2. האם לא תהיה רגרסיה באיכות המוצר כתוצאה מהכנסת טכנולוגיה חדשה?
    3. האם לא יצוצו בשלב מאוחר מידי בעיות שה roll back הטבעי שלהן היה לחזור לטכנולוגיה הישנה אך הוא כרגע יהיה יקר יותר מאשר להישאר "תקוע" איתן ולבצע מעקפים מכוערים אבל שעובדים?
    4. (כמו שאומרים בשפת העם: "כשר אבל מסריח..." ) ?
  2. איכות התוצר ללקוח:
    1. האם כתוצאה משדרוג צד הלקוח ל WPF המוצר "שווה" יותר בעיני הלקוח? (ובמילים אחרות – האם הלקוח יהיה מוכן לשלם יותר על מוצר זה מאשר על מוצר בטכנולוגיה ה"ישנה"?)
  3. המימד האישי:
    1. מה נוח לספק המוצר?
    2. מה צוותי הפיתוח מכירים?
    3. במה הם טובים?
    4. או במילים אחרות – למה לי את הצרה הזו כשאני יכול בלי?...

דרכי פתרון האפשריים

בסיכומו של דבר, מכיוון שמדובר על החיים האמיתיים, הפתרונות שעלו על הפרק הם:

  1. בשלב הראשון:
    1. לבצע את שדרוג המוצר בטכנולוגיה הקיימת (Winforms ) לתמיכה בכל הנדרש.
    2. ההשלכה – time to market גבוה , תוצר איכותי (מבוסס על ידע קיים)
  2. בשלב השני:
    1. הוגדרו רכיבים אשר להם הערך העסקי הגבוה ביותר עבור הלקוח ברגע שישודרגו ל WPF – ופיתוח שלהם תוך שילובם במסגרת המוצר הקיים (שילוב של Winforms ו WPF באותה אפליקציה).
    2. ההשלכה – העלאת ערך עסקי ללקוח בזמן מהיר על ידי הכנסת רכיבים בטכנולוגיית WPF שמאפשרים יכולות שלא היו קיימות באופן דומה ב Winforms ), ובנוסף – הקטנת הסיכון כיוון שהמימוש הוא ממוקד.

על פי התובנות והפידבקים של כל הגורמים המעורבים לאחר ביצוע סעיפים 1+2 לעיל – קבלתי החלטה על שדרוג גורף.

מה אתה היית עושה במקרה כזה?

קריאת המשך וחומר רלוונטי

הנה כמה לינקים שיסבכו אתכם עוד יותר בהחלטות כאלו...

 

תוכן התגובה

Tal Ben-Shalom כתב/ה:

אכן סוגייה קשה...

נתקלתי בסוגייה דומה אך במערכת שהיא win application, ובימים אלו, ניתן להוסיף למשוואה גם silverlight.

יש בשוק עדיין תהיות/חששות לגבי "הבגרות" של WPF.

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

# October 18, 2009 10:36 AM

בני אלגזי כתב/ה:

האם לא הכריז פה איזה קודקוד של Microsoft לפני חצי שנה בפני כל אנשי החברה בארץ שהם הולכים לנטוש את הWPF?

# October 18, 2009 8:31 PM

alikl כתב/ה:

אייל, עוד דבר שלמדתי ממך זה לעשות בן אחרי שתי בנות :)

# October 19, 2009 4:23 PM

דודו בנבו כתב/ה:

כמובן שההחלטה קשה.

יכולות השילוב של WinForms ו- WPF הוצגו כאפשרות ביניים (עזרה ראשונה), בכדי ליצור רכיבים כבר ב- WPF ולארח אותם באפליקציה קיימת.

כך בהחלט ניתן לעבור בצורה הדרגתית.

זה נחמד, אך מי שהתנסה, זה גם לא תמיד "ורוד".

אם האפליקציה באמת גדולה, אזי הבעיות יותר גדולות.

מהיכרותי את אייל, אני בטח שהוא לקח החלטה נכונה ומושכלת.

ומי אמר שזונחים את WPF ? יש עוד מישהו ששמע על זה ?

# October 19, 2009 5:44 PM

אייל כתב/ה:

אליק, מברוק !!!

# October 19, 2009 8:22 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 1 and 5 and type the answer here:


Enter the numbers above: