none
האם כדאי לפתח בWPF, ב2017?

    שאלה

  • הי,
     אני מתכנתת C# בVS2012, אין לי הכרות עם WPF כלל.  
    אני עומדת עכשיו לפתח תוכנה מאוד כבדה ורצינית שיש לה מסכים עמוסים ומלאים(מאוד!), שמיועדת למספר מצומצם (5-7) של משתמשים. בגלל האמור לעיל ובגלל קוצר זמן החלטנו שאפתח אותה בWIN.
    כעת אני תוהה על WPF, בגלל העומס של המסכים יתכן ויהיה נחמד ההקפדה על הויזואליות שלהם: שיהיה אפשרויות גלילה והתאמת דומה יותר לWEB.

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

    שנית, מודלים וקלאסים מהמערכת שלי כעת ישמשו אותי בעוד שנה ליצירת מערכת נוספת של  מסכים דומים אבל שונים שמיועדים למשתמשים רבים(80-100). לכן יתכן שנרצה לפתח אותם בטכנולוגית WEB. אם אני מקפידה על חלוקה מוחלטת לשכבות. האם זה יהיה אפשרי לקחת את שכבת הDL והBL ולפתח להם WI של WEB? יש בעיות צפויות שאני עלולה להיתקל בהם? 

    אגב בגלל שהDB שלנו הוא ORACLE, אז אני לא משתמשת ב EF

    השאלה שלי היא, האם כיום ב2017 ממליצים להשתמש בWPF? האם הטכנולוגיה הוכיחה את עצמה לאורך השנים, האם היא לא מערימה צרור בעיות אחרות? האם יש טכנולוגיה חדישה אחרת, טובה יותר שמחליפה אותה?

    יום חמישי 29 יוני 2017 08:49

כל התגובות

  • היי,

    אין שום מניעה לפתח ב WPF או בטכנולוגיה יותר שינה כמו Windows Forms

    הטכנולוכיה לא תקבעה את טיב התוצאה אלא האופן בו האפליקציה תתוכנן מבחינת ארכיטקטורה והדרך בה היא תפותח

    * לדעתי האישית יש ייתרונות רבות בפיתוח WEB גם עבור פתוחי יששומי WIN - מתאים למערכות הפעלה win 8 והלאה אבל פיתוח WEB מאפשר גם עבודה עם הדפדפן.

    אני ממליץ לתכנן א הפיתוח בצורה מבוססת שכבות כך ששכבת ה GUI נעזרת בשכבת API וכך מתאפשר בקלות לפתח מערכות GUI שונות למערכות הפעלה שונות


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום ראשון 02 יולי 2017 20:46
    מנחה דיון
  • אני מתעניית בשאלה זו כיוון שאני רוצה לפתח מערכת WPF MVVM ולהעביר אותה אח"כ ל WEB

    האם את המתכוון לחלוקה כמו MVVM ?

    מה הכוונה שכבת API 

    יום רביעי 26 יולי 2017 05:20
  • את הארכיטקטורה של האפליקציה אנחנו מחלקים (אם רוצים) לשכבות וירטואליות של "תתי-שירותים"

    למשל אם את מכירה את הארכיטקטורה של MVC הרי שמדובר על חלוקה לשלוש שכבות:
    Model–view–controller

    כל שכבה באפליקציה אחראית על פעולות שונות לחלוטין וכל שכבה יכולה להיות מפותחת על ידי צוותים ונים לחלוטין שלא ראו אף פעם את השכבות האחרות.

    המילה שכבה נובעת מכך שיש סדר כלשהו לחלקים השונים שביחד נותנים את השירות שאנחנו קואים לו "אפליקציה". בדרך כלל יהיהלנו את שכבת הבסיס שכולל את מסד הנתונים ובחלק העליון ביותר יהיה לנו את השכבה של ה GUI בו פועל המשתמש

    עתה נחזור למילה API

    API = Application program interface

    נניח שיש לנו אפליקציה שצריכה לרוץ על מערכות הפעלה שונות. שכבת ה GUI של הלקוח חייבת להיות שונה מכיוון שכל מערכת הפעלה עובדת עם קוד שונה, אבל ניתן לפתח את שכבות הבסיס כשירות שיינתן לשכבות העליונות. נניח שיש לנו אפליקצצית שירות שרצה בשרת ויודעת לקבל שאילתה מאפליקציית לקוח ולהחזיר את התוצאה. אז הממשק אליו האפליקציית ברמה העליונה פונה הוא סוג של API

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

    אני מקווה שזה מעט יותר ברור

     

    דוגמאות למערכות API של פייסבוק ניתן לראות בקישור למפתחים:
    https://developers.facebook.com/
    כל אלו הם שירותים שמקשרים ביןהמערכת בשכבה התחתונה (פייסובק) לבין המערכת בשכבה העליונה (האפליקציה שאת מפתחת ועושה שירות בפייסבוק). 


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום חמישי 27 יולי 2017 03:16
    מנחה דיון