DCSIMG
WPF - Bah, Humbug!

Bah, Humbug!

Wear sunscreen...

שטויות

  • Join me

בלוגים שאני קורא

Browse by Tags

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