Browse by Tags
All Tags »
WPF (
RSS)
הפוסט של אייל ורדי (מחשבות בנושא SL), הזכיר לי נושא כאוב נוסף בתחום של Multi-Targeting. כל ארכיטקט מתחיל, יודע לדקלם את המושגים "תשתיות משותפות", "reuse" וכו'.. כמו שאייל אמר, זה לא מוגזם לצפות שפיתוח של תשתית WPFית תעבוד על SL ו/או להפך. אבל לצערי(נו), זה לא ככה. את התופעה של בעיה בתמיכה במספר פלטפורמות ניתן למצוא עוד מימי WinCE העליזים. תשתית שנכתבה ב.NET Framework לא יכולה לרוץ על WinCE. יש לקמפל את הקוד באמצעות הCompact Framework (כפרויקט ייעודי) על-מנת שירוץ. מצד שני, להפך זה עובד (ברוב המקרים...
אז מה היה לנו בפוסט הקודם? למדנו שבעידן הCider (הIDE לWPF) השתנתה השיטה של עבודה עם Designers עבור Controls, ובכלל זה- Custom Designers שאנחנו כ"כ אוהבים. הקדמה - מה היה לנו בWinForms? בWinForms היינו יכולים לייצר לפקד שלנו (נניח ששמו CoolControl) מחלקת-עזר ששמה נניח CoolControlDesigner. המימוש? CoolControlDesigner יורש את ControlDesigner, ועושה מה שבא לו (בין היתר - דורס את PostFilterProperties). דוגמת קוד בWinforms: public class MyButtonDesigner : System.Windows.Forms.Design.ControlDesigner { public...
הבעיה: אחרי ההצלחה על הלפטופ, התקנתי על מחשב במשרד את הבטא 1 של VS2008 (לא ניסיתי עדיין את בילד הVPC החדש..). מיד אחרי שיצרתי פרויקט חדש, קיבלתי את הודעת השגיאה הגסה הזאת: ובשביל גוגל: Value 'Window1.xaml' cannot be assigned to property 'StartupUri'. Invalid URI: The hostname could not be parsed. הפתרון: לא משהו גאוני.. פשוט פתחתי את App.xaml ושיניתי את הStartupUri למיקום המוחלט של התיקיה, במקרה שלי: (כתבתי את הפוסט הזה היות ולא מצאתי תיעוד לבעיה בגוגל. כמו-כן, ניסיתי להתקין על מחשב נוסף שהמסמכים...
בהמשך לפוסט הקודם שלי בנושא (ולא שכחתי שאני עדיין חייב פוסט נוסף שיסקור את הBreaking Changes בין 2003 ל2005..), בבחינת הBreaking Changes בין 2005 ל2008, גיליתי משהו מעניין - אחת מהבעיות העיקריות של ארגונים במעבר מ2003 ל2005, הייתה חוסר היכולת להמשיך לעבוד עם הFramework הקודם. מי שבחר לעבור ב2005, לא יכל להמשיך לפתח פרויקטים תחת CLR 1.1 או 1.0. ב2008 הדבר נפתר ע"י מנגנון הMulti-Targeting (מופיע כCombo קטן בעת יצירת פרויקט). כך למעשה, מי שבוחר לעבור ל2008 - יכול להמשיך לפתח בCLR 2.0/3.0 מחד, ולהנות...
נכחתי היום בהרצאה של תומר שמם על WPF. ראשית, אחלה הרצאה. סקירה יפה של WPF, XAML ויכולותיו. ממליץ בחום. בתחילת ההרצאה, תומר דיבר על כך שאפליקציות WPF, בניגוד לאפליקציות WinForm - אינן מאפשרות עבודה עם כלי UI Spy למניהם, דבר שמקשה על מפתחי UI ומפתחי בדיקות אוטומטיות. לפני כחצי שנה נתקלתי בבעיה הזאת כאשר הייתי צריך לעקוב אחר הRouted Events של אפליקציה של לקוח. במסגרת חיפוש קצר בגוגלטרנט, מצאתי את הכלי הOpen Sourceי Snoop (של פיט בלויס ), שבעצם מאפשר צפיה בכל עץ האובייקטים של הWPF, בRoutedEvents, כמובן...
ואחרי שצחקנו, נעבור לחלק האומנותי - איך לקבוע האם הפקד שיצרנו רץ בDesigner כרגע, או באפליקציה רגילה. כל תחום הDesigner בWPF לא מזכיר את מה שהיה קודם לכן עבור WinForm. הבעיה שלי התחילה בפעם הראשונה שייצרתי פקד בWPF. הפקד אמור היה לשמש אנשי UI בExpression Blend, ז"א - הוא היה צריך להיות מאוד מאוד פשוט. כמה שפחות Properties שזמינים לעריכה וכמה שיותר דברים שהוא ידע לעשות אוטומטית (כמו Docking בתוך Panel וכו'). השלב הראשון בעבודה היה כמובן - לזהות מתי אני בDesigner כדי שאוכל לספק התנהגויות שונות (כמו...