Browse by Tags
All Tags »
.NET (
RSS)
מיקרוסופט משיקה אתר חדש שמרכז את כל הדוגמאות שהועלו ויועלו לMSDN. נראה לי כמו נכס שכדאי לשתף. http://code.msdn.microsoft.com
הקדמה בפוסט הקודם שלי בסדרת "טעויות של מפתחים" הסברתי את ההבדל בין הConditionalAttribute לבין #IF. את הפוסט כתבתי בעקבות בעיה שנתקלתי בה באחד הצוותים בארגון. את הפוסט הנוכחי אני כותב גם כן אחרי ביצוע מספר Code Reviews לצוותים שונים, ובעיות נפוצות שנתקלתי בהן. את הבעיות שבחרתי להעלות כאן אני מבסס על כתבה שנכתבה לפני כשנתיים בMSDN Magazine על נושא הביצועים בBCL . לפי ההודעות כאן בבלוגים, נראה כאילו עיקר העבודה של מפתחים בימנו זה התממשקות למסדי נתונים באמצעות LINQ או עיצוב אפליקציות תלת-מימדיות...
הפוסט הראשון של מיקי התפרץ לדלת פתוחה, וגרם לי להזיז את האחוריים הוירטואלים שלי ולכתוב את הפוסט הזה. מיקי, קודם כל - ברוך הבא למערכת! הפוסט הראשון שלך נראה מבטיח, ואני בטוח שגם הבאים אחריו לא יכזיבו! לעניין הMDI - לפני מספר חודשים פרויקט בארגון שלח לי קריאה דומה; רצו לאפשר לאחד הChilds להיות מעל כל האחרים. הפתרון (המהיר ביותר.. הן במימוש והן במציאתו), כמו שמיקי הזכיר - הגדרת הHost של הChild בתוך הParent נעשית ע"י SetParent. אלא שכאן ישנן כמה נקודות שחשוב לדעת: האירוח הזה הוא לא MDI. המשמעות...
היום במסגרת ייעוץ שנתתי לאחד הצוותים אצלנו, גיליתי טעות שהייתה יכולה לעלות לנו הרבה מאוד. מצאתי לנכון לשתף גם אתכם בנסיון הזה - היות ושמתי לב שאף אחד מצוות הפיתוח לא ממש היה מודע למצב. אלו מאיתנו שבאו מעידן הC, זוכרים בוודאי את הנוחות שבשימוש בDirectives.. כך לדוגמא, יכולנו לייצר מספר גרסאות ע"י שינוי הדגלים איתם קימפלנו את האפליקציה. התכונה הזו נשמרה גם בעידן ה.NET. חלק מהDirectives שהכרנו הוסרו/שונו, ואחרים התווספו. החסרון הגדול בשימוש ב#IFים בתוך האפליקציה, היה הבלאגן שזה יצר. הקוד פתאום...
אחת לתקופה אני מוצא את עצמי נקלע לויכוחים התמידיים בין גרופים של מיקרוסופט למתעבי מיקרוסופט. הויכוחים האלו קשים לי אפילו יותר מלאחרים, שכן עד לפני 6 שנים הייתי אחד מאותם אנשי לינוקס (אגב... גרוע למדי..) שבשבילם זאב סורסקי היה אליל עוד מהתקופה שPHP היה ר"ת של Personal HomePage ללקוחות נטוויז'ן (השנה הייתה 1995 אאל"ט). מצד שני, זוהי קללה שהיא גם ברכה, כי היא בהחלט עוזרת לי להעיד על עצמי שאני פחות משוחד מאחרים. כמי שגדל על Perl ושתה RegEx בהפסקות 10 בבית-ספר, השתמש בpine כתוכנת המייל הכל...
החלטתי ללכת בעקבות ג'אסטין, ולכתוב גם כאן תשובות נבחרות לשאלות בפורומים בהם אני פעיל. היום נשאלה שאלה בפורום התכנות באתר פרש – "מה אתם מעדיפים - מסד נתונים או עבודה עם קבצים?" כותב ההודעה הכריז שהוא אישית מעדיף עדיין לעבוד עם קבצים, אבל ביקש משאר הגולשים לחוות את דעתם. התקבלו שם מספר תגובות שבעקבותן המשתמש תאר את הבעיה האמיתית: "אני מתכנת כתחביב , ותמיד אהבתי להתעסק בכתיבת אלגוריתמים משלי לחיפוש , עדכון וכו' של נתונים ואילו מסדי נתונים נראו לי עבודה קלה מידי ופחות תכנותית. האמת היא שלאחרונה מתחילות...
הפוסט של אייל ורדי (מחשבות בנושא 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...