DCSIMG
January 2007 - Posts - שחר.נט

שחר.נט

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

ספרים מומלצים

January 2007 - Posts

הכנס הגיע לסיומו

Microsoft Developer Academy 2007 הגיע לסיומו המוצלח. אני מאד נהנתי, אני מקווה שגם אתם, בייוד אלה שהיו בהרצאה שלי, נהנו. אני אשמח לשמוע את דעתכם. הנה וידאו קצר של ליאור צורף שממחיש את האווירה שהייתה באירוע. אני מאמין שתוך זמן לא רב גם יעלו ההקלטות של האירוע, ואז ניתן יהיה לראות את ההרצאה במלואה.

 

חמישה דברים שלא ידעתם עליי

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

  1. אני מתנדב בספארי. כן, בתור מחוייבות אישית, אני מתנדב כעוזר מדריך בחוגי הספארי לילדים.
    זה אחרי שבשנים האחרונות אני מתנדב שם כל חופש גדול כעוזר מדריך בקייטנות של הספארי. אם אתם תוהים מה המאורע הנחמד האחרון, זה שביום שני הזה, האכלתי את דובה'לה, הזכר אצל הג'יראפות המרושתות. הוא אכל וליקי לי את היד, וגם נתן לי ללטף אותו.
  2. המוזיקה האהובה עליי, היא מוזיקה ישראלית משנות ה-60 ותחילת שנות ה-70. יש שירים שאני אוהב מתקופות יותר מאוחרות. מוזיקה לועזית, זה בעיקר שירים ממחזות שמר מוכרים.
  3. אני נפגשתי עם ביל גייטס כשהוא היה בישראל. כלומר, בהחלט יכול להיות שאלה מכן שמכירים אותי באופן אישי יודעים את זה, אבל לא נראה לי שהגולשים המזדמנים.
  4. קפצתי כתה, מה שאומר שכיום אני בכתה י' (במקום ט'). אני מתכנן לנצל את השנה הפנוייה ללמוד באוניברסיטה.
  5. אני סובל לעיתים מפרפקציוניסטיות-יתר, שגורמת לי לפעמים להיות לחוץ מאד לפני אירועים שחשובים לי (ע"ע MS Developers Academy 2007).
  6. אני מאד אוהב לקרוא.

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

Vista Ultimate - מרגישים את האולטימייט

קיבלתי הודעה על עדכונים. מנגנון העדכונים המקיף של Vista Ultimate החל בפעולתו הברוכה. ראשית, הוא התחיל לזהות עדכונים מכל האפליקציות, ומציג לי להתקין גם את Service Pack 1 ל Visual Studio. הוא גם מציע לי שורת עדכונים לויסטה, שפות חדשות ומשחק חדש במסגרת ה Ultimate Extras. ויסטה, סופית, יצא לדרך.

העדכונים, למי שתהה, נוגעים לענייני Hi-Def Volume, תיקון מנגנון האנטי-פישינג, עבודה עם לוח שנה יפני ושימוש בחיפוש מתקדם במחשבים שפועלים בלי לוח שנה גרגוריאני.

עניין של שלושה ימים - MS Developers Academy

ב31 בינואר, להזכירכם, אני אעביר הרצאה ב Microsoft Developers Academy בסינמה סיטי. ההרצאה, בנושא פיתוח Windows Vista Gadgets. עוד פרטים פה.

משתתפי מסלול A, אני מרצה בשעה 10:15 באולם מספר 8. משתתפי מסלול B, אני מרצה בשעה 12:30 באולם מספר 17. אתם מוזמנים להגיע להרצאה, ולהכיר את הגאדג'טים ולצאת עם ידע המספיק לפיתוח גאדג'טים מתקדמים המשתלבים עם אפליקציות אחרות, עם מערכת ההפעלה ומנצלים את טווח הפעולה של הגאדג'טים.

נתראה. 

איפה נשמרות ההגדרות של הגאדג'טים?

גאדג'טים יכולים לכתוב, באמצעות Gadgets Object Model רשומות של הגדרות, עם הפונקציה System.Gadget.Settings.write שמקבלת key ו value.
כתיבת ההגדרות, מאפשרת לשמור נתונים של הגאדג'ט ששורדים restart של המחשב, הפעלה והדלקה של Windows Sidebar - הכל, פרט לסגירת הגאדג'ט עצמו והוספה מחדש שלו (שיוצר מופע חדש של הגאדג'ט, עם סט הגדרות חדש).

מדי פעם שואלים אותי איפה ההגדרות הללו מאוכסנות, והתשובה פשוטה מאד - קבצי ini ישנים וטובים. דבר ראשון, צריך להפריד בין  נתונים per user ובין נתונין per computer. גאדג'טים של המשתמש, נשמרים ונפרסים לתוך התיקייה הזאת:

%userprofile%\AppData\Local\Microsoft\Windows Sidebar

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } בנתיב הזה, שמשתנה לפי המשתמש, נשמרים הנתונים של המשתמש בכל מה שקשור לגאדג'טיםבנתנב הזה מתחבא גם קובץ בשם Settings.ini שמכיל הגדרות של ה sidebar וגם מקטעים שמכילים הגדרות של הגאדג'טים של המשתמש. שם תמצאו את כל ההגדרות, בתוך קובץ ini שהוא למעשה קובץ טקסט של הגדרות משתנים.

אם אתם רוצים לעשות קצת tweaking לסיידבאר, אז זה אפשרי ע"י שינוי הנתונים מהקובץ הזה (שמרו נתונים מקוריים לגיבוי). שימו לב ששינוינתונים של הגאדג'טים מפה, לא נכנס לתוקף מיידית אלא רק אם מוגדר לגאדג'ט תקופת התרעננות כלשהי.

הכינו ממחטות - טיזר טלנובלי במיוחד בכנס

טיזר חדש, בהשתתפותי, ל MS Developer Academy שיהיה בעוד 10 ימים שבו אני מרצה על Windows Gadgets זמין כאן. הטיזר בהשתתפותי, בהשתתפות הילה להב ותמיר חסון.

אתם מוזמנים להגיע להרצאה שלי, בעוד 10 ימים.

אני בהלם

הפעלתי עכשיו את Windows Media Encoder, ורציתי לבחור בהקלטה של Spesicif Windows במסך. מסתבר, שהוא תופס את כל אחד מהגאדג'טים שיש לי בסיידבאר כ Window שונה, ולא את כל הסיידבאר בתור גוף אחד, אם בכלל. וזה מדהים. זה לא אמור להיות, טכנית, ככה. ולכן מעניין אותי מאיפה זה נובע.

שבוע טוב.

מדריך להשמשת Visual Studio ב5 צעדים והדברים הנחוצים למחשב פיתוח

מזל טוב. התקנתם את Visual Studio. עומדת בפניכם סביבת פיתוח מוצלחת מאד, אבל עם פוטנציאל לא מנוצל, לפחות בינתיים. אחרי ההתקנה, רוב מה שהיא יודעת לעשות מתמקד ב .NET Framework 2, וחבל, אפשר להרחיב את זה.
היות שלמיקרוסופט אין אף מדריך שמסביר שלב אחר שלב לאחר תהליך ההתקנה את סדר ההתקדמות, והיות שלא קיים קובץ אחד שמתקין הכל, המדריך הזה מהווה חלופה להסבר על השמשת Visual Studio.

צעד ראשון - עדכן!
מאז שיצא Visual Studio 2005, יצאה לו גם חבילת שירות, Service Pack 1 שאותה רצוי להתקין (לפנות קצת זמן להתקנה). השינויים חשובים מאד, וגם חוסכים פאטצ'ים אחרים שאנשים נהגו להתקין. ניתן להוריד מכאן. העדכון משמש לגרסאות ה Standart, Professional, Team System. משתמשי אקספרס מוזמנים לעדכן מכאן.

משתמש Vista
אחרי התקנת SP1, עליכם להוריד את העדכון הזה ולשמור אותו למחשב. כדי להריץ, עשו קליק ימני על הקובץ ובחרו ב Run as Administrator.

צעד שני - תוריד .NET Framework 3
עכשוי, הגיע הזמן להתחבר לטכנולוגיה החדשה, הדור הבא של פיתוח ב .net ולהוריד את סביבת הריצה של .net framework 3.0 מכאן (ניתן ורצוי להוריד את כל המערכת וניתנת בתחתית הדף אפשרות בחירה בין ארכיטקטורת מעבד).

משתמש Vista
Windows Vista מגיע עם .NET Framework 3.0 "מהקופסא". השלב הנוכחי לא רלוונטי בשבילך.

בונוס (נחוץ לעיתים) - הורידו את הSDK
אם אתם מעוניינים בדוגמאות קוד, הדגמות ודוקיומנטציה (וגם קצת כלים שעוזרים בנושא) עבור פיתוח Windows Application עם .NET Framework 3, אתם מוזמנים להוריד את Windows SDK for Windows Vista (מטעה, עובד גם בXP) מכאן.

צעד שלישי - תתחיל לשחק בגרפיקה ובתקשורת
כדי לשחק בWPF (מנוע הגרפיקה החדש) ובWCF (מנוע התקשורת החדש) ולפתח בנוחות, אתם יכולים להוריד את November CTP של התוסף של WPF ו WCF ל Visual Studio 2005 מכאן.

צעד רביעי - תתחילו לשחק בלגו
בשביל לפתח אפליקציות עם Workflow, תורידו את התוסף הזה ל Visual Studio שמאפשר פיתוח אפליקציות Workflow מכאן.

צעד חמישי - התחל לפתח
ברכותיי! בחמישה צעדים גמרת את השמשת Visual Studio והסבת המחשב שלך למחשב פיתוח שתומך בכל הטכנולוגיות החדשות. אתה מוזמן להתחיל לפתח, לקרוא מאמרים בMSDN, לקרוא מאמרים אחרים בבלוג הזה ולהשתמש באתרי עזר אחרים.

בהצלחה.

עצור, תוכנית התקנה לפניך!

בהמשך לדברים שכתבתי על UAC ו Windows Vista, נשאלתי לגבי תוככנית התקנה. תוכניות התקנה, הרי מטרתן לכתוב ערכים ל Registry, לשים דברים בתיקוית ה System, לרשום רכיבי COM ורכיבים אחרים וליצור מקום לאפליקציה ב Program Files.

Windows Vista יכול לזהות תוכנית התקנה, וחלק ממטרתו, כפי שהגדירו מפתחי המוצר - "שום התקנה לא תבוצע כל עוד המשתמש לא מודע לכך, ואישר שהוא מודע לכך", לכן, Vista מזהה את תוכנית ההתקנה ומציג התרעה למשתמש.

כמפתחים, אנחנו צריכים לוודא ש Windows Vista יזהה שאנחנו תוכנית התקנה, ויריץ את ההתקנה עם ההרשאות המתאימות (לא תמיד הרשאות Administrator, אבל הרשאות רחבות יותר). יש מספר פרמטרים לפיהם Windows Vista מזהה שעומדת לפניו תוכנית התקנה, אולם הרשימה הזאת תקפה רק אם מתקיימים הדברים הבאים:

32 bit - כל מה שידובר עכשיו, פשוט לא קיים במערכות 64 ביט.
יש UAC מופעל- אחרת, מראש, אין טעם בכל מה שמוזכר פה.
לא הוזכר requestExecutionLevel - בפוסט שלי על עבודה עם הרשאות בויסטה דרך קוד, הזכרתי והדגמתי איך יוצרים קובץ Application Manifest שמכיל פרטיםש Windows Vista זקוק להם לצורך הקצת התוכנה, אחד מהם זה requestExecutionLevel, שמכיל את רמת ההרשאות המינימלית שהאפליקציה זקוקה לה כדי לרוץ. במידה ואין את רמת ההרשאות הזאת ואפשר "לעלות" אליה (יש למשתמש הרשאה פוטנציאלית לזה), הדבר יתבצע. במידה ואין, התוכנית לא תרוץ.
רצוי שלכל אפליקציה יהיה כזה, ובמידה שכן, תוכנית ההתקנה תעבוד כאפליקציה רגילה מה שמעניק לנו כמפתחים יותר ביטחון. מה שיוזכר בהמשך, מיועד למקרה שלא הוגדר הדבר הזה, ועדיין יש צורך בהרשאות. בכל אופן, תמיד רצוי לצרף קובץ Application Manifest כפי שכבר הוסבר.

במידה והדברים שהזכרתי קודם אינם מתקיימים (32 ביט, יש UAC, לא הוזכר requestExecutionLevel), ויסטה תזהה את תוכנית ההתקנה באמצעים הבאים:

סוג הקובץ
במידה וזוהה שזה קובץ אפשרי להתקנה, ייבדקו הדברים הבאים.

שם הקובץ
ויסטה תבדוק את שם הקובץ, ובמידה שהוא מכיל מילים הקשורות להתקנה ייupdate", "install" וכדומה, היא תשקול את האפשרות שמדובר בתוכנית התקנה.

יש פרטים..
Vista תבדוק א מילות המפתח של הקובץ ושל הקבצים הנלווים ותנסה לנתח אותם כדי לזהות האם יש תוכנית התקנה.

במידה וזוהתה תוכנית התקנה, תוצג למשתמש תיבה מיוחדת שתשאל אותו האם הוא מעוניים בפעילות ההתקנה. התיבה הזאת תוצג אם האפשרות User Account Control: Detect application installations and prompt for elevatio מסומנת (כברירת מחדל - כן).

בהצלחה.

הדגמת וידאו - יצירת Template ב Visual Studio

אתמול בערב פתאום התחשק לי לעשות הדגמת וידאו. חשבתי שאין הדבר מזיק, אז הורדתי Windows Media Encoder. בגלל שלא ממש היה לי נושא, עשיתי הסבר וידאו איך מייצאים Template ב Visual Studio, על בסיס הפוסט שכתבתי לאחרונה.

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

שימוש ב Pre/Post build commands

ישנה אפשרות חביבה מאד ב Visual Studio שנקראת Pre-build event command-line ו Post-build event command-line. כדי לגשת לזה, פשוט כנסו למאפייני הפרוייקט, ובחרו ב Build Events -

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

הפקודות שאפשר להכניס הן כמעט בלתי מוגבלות, ויכולות לחסוך הרבה עבודה. נניח שיש קובץ שצריך מיד לאחר הקימפול להעביר אותו מתיקייה מסויימת לתיקייה שנוצרת עם התוצר (Bin\Debug למשל), במקום שנעשה ידנית copy-paste, פשווט נכניס פעם אחת את הפקודה.

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

הפקודות שמוכנסות לשם, אלה פקודות DOS, כומר פקודות שבמקרה אחר היינו יכולים להריץ אותם מתוך חלון שורת-הפקודה. בשביל הנוחות, אני ממליץ להכניס את כל הפקודות שאתם רוצים (ואני לא הולך ללמד פה פקודות DOS) לתוך קובץ BAT, ופשוט להכניס פקודה של להריץ את זה. הנה למשל דוגמא לפקודה שתעתיק את כל התוצר הסופי לתיקייה ב My Documents ששמה זהה לשם הפרוייקט:

copy $(TargetPath) C:\$(ProjectName)

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } הקוד הזה, יבצע העתקה של האסמבלי של הפרוייקט לתיקייה בכונן C הנושאת את שם הפרוייקט. אפשר, כמובן, לא לשים את הפקודה ישירות, אלא רק לכתוב נתיב לקובץ BAT שיכיל את הפקודה או סדרת פקודות (מומלץ להשתמש בקובץ BAT כשיש יותר מפקודה אחת).

אם תסתכלו בפקודה שהבאתי, תראו כמה ביטויים שמתחילים ב$. מדובר למעשה במקרואים. איזשהם משתנים שמפנים לאיזשהו ערך שיכול לשמש אותנו בכתיבת הפקודה. תוכלו למצוא כמה מקרואים אם תלחצו על כפתור ה Edit של ה Command ותפתחו את ה Macros:


מרגע שמכירים את הכלי הזה, מתחילים ליצור אוטומציות לכל מיני דברים שרגילים לעשות ידנית עד שכמעט שלא חושבים עליהם. לא פעם, זה יכול להיות כלי חוסך-זמן.

בהצלחה.

במה אני משתמש כדי לפתח גאדג'טים

בחירת סביבת פיתוח, כמעט תמיד, זאת שאלה קשה. במיוחד כשיש בחירה, ולא מדובר בדבר טריוויאלי. אם תשאלו מפתחים שונים "באיזו סביבת פיתוח אתם משתמשים כדי לפתח אפליקציות ב .NET?", התשובה של כולם (אולי חוץ מבודדים) תהיה Visual Studio. וזה ברור, כי Visual Studio הוא כלי שמיועד לזה, ושעושה את העבודה מצויין, ומשווק ע"י החברה שהביאה את .net, והוא ברירת המחדל כשמדברים על פיתוח .net.

בכל מה שקשור לפיתוח גאדג'טים, פיתוח ב Visual Studio אינו מובן מאליו. יש עוד הרבה אפשרויות טובות. היות שגאדג'טים זה HTML ושפת סקריפטינג (בד"כ JavaScript), כל עורך שמאפשר פיתוח נוח בהם, הוא מתחרה טוב לתפקיד. ואם הוא גם מאפשר איזשהו אינטיליסנס - אדרבה.

למרות זה, אני משתמש ב Visual Studio, וההמלצה שלי לכולם להשתמש בו. Visual Studio, מכיל הרבה כלים מאד שימושיים למפתחי גאדג'טים. חץ מהמובן מאליו - צביעת מילים שמורות, התרעה מיידית בעת שגיאה, אינטיליסנס (לא משהו, אבל בסדר) ודברים בסגנון זה, יש ל Visual Studio עוד כמה דברים  מועילים - אפשר לעבוד בצורה של Solution עם כמה Projects, לא פעם זה מתגלה ממש כדבר נוח. גם סביבת העבודה היא סביבה שאני מאד רגיל אליה, ולכן היא מאד נוחה לי.
אבל, במקרה הזה של פיתוח גאדג'טים, ההמלצה שלי למי ששואל - פתחו בכלי שאתם מכירים הכי טוב.

צרו Template

אם אתם עובדים עפ הרבה פרוייקטים שהמשותף לכולם זה מבנה תיקיות וקבצים קבוע, יכול להיות שיהיה לכם נוח יותר ליצור Template, כמו אלה שמגיעים עם Visual Studio עצמו. הפעולות - פשוטות מאד. ה Template שתיצרו, מרפוייקט קיים, יכלול את כל הקבצים ומבנה התיקיות, וגם את כל הרפרנסים שהוספתם.

תחילה, אחרי שנכנסתם לפרוייקט, לכו ל File->Export as Template:

אתם יכולים לבחור ב Project Template או ב Item Template. הראשון, יהיה תבנית בהוספת פרוייקט חדש. השני, זה תבנית של קובץ ספיציפי.

Project Template
במידה ויש ב Solution יותר מרפוייקט אחד, בחרו  בפרוייקט המבוקש מתוך הרשימה המסומנת:

במסך הבא, אתם יכולים לתת שם לתבנית, לתת לה אייקון, ולכתוב לה תיאור

בלחיצה על Finish תיווצר התבנית ותתווסף לרשימת התבניות בVS, אם הגדרתם כך.
שימו לב, שהתבנית מורכבת מקובץ ZIP עם קובץ הגדרת התבנית בתוכו.

Item Template
אחרי הבחיה ב Item Template, פשוט תבחרו ממה תיווצר התבנית:

תגדירו איזה רפרנסים מהרפרנסים של הפרוייקט ייכללו:

בשלב הבא, תידרשו להגדיר את הגדרות התבנית ולסיים את הפעולה:

בהצלחה.

ניהול Environment Variables

ב Windows Vista (לא סגור על עצמי אם זה היה בXP. בכל זאת אני בויסטה כבר חצי-שנה) יש אפשרות נחמדה. לא בטוח עד כמה שימושית למשתמש רגיל, אבל חוסכת קצת עבודת שורת-פקודה. מדובר על אפשרות לצפות ולנהל את "משתני הסביבה". "משתני הסביבה" הללו קיימים מימי DOS, ומדובר למעשה בשם של משתנה שמשוייך אליו ערך. למשל, שם של משתנה בשם OS שמכיל את שם מערכת הפעלה, כך לגבי תיקיות מסויימות וכו'.

לפעמים תוכניות התקנה צריכות את זה, לפעמים אנחנו צריכים את זה בשביל הנוחות. עכשיו, בויסטה, גם נוח לנהל את זה.

כנסו לפרופיל שלכם ב User Accounts - תיכנסו לתפריט Start ושם לחצו על סמל המשתמש שלכם.

אתם רק צריכים ללחוץ על האפשרות המודגשת אצלכם.
במסך שנפתח, אתם יכולים לערוך/להסיר/ להוסיף משתני מערכת שספיציפיים למשתמש שלכם (בתיבה למעלה), ואם אתם תחת המשתמש Administrator הראשי, או לחלופין שהכל מורץ כ Administrator - תוכלו לבצע פעולות גם לגבגי משתני מערכת גלובליים של המערכת (תקף לכל המשתמשים).

 בתמונה, אני לא מריץ כ Administrator אז האפשרויות של ניהול למערכת אפורות.

בהצלחה.

איך ויסטה קורא לעכבר?

חיברתי עכבר USB למחשב, וויסטה, כצפוי, תוך שבריר שנייה זיהה אותו. הוא הודיע לי כמובן על הזיהוי של העכבר.
מסתבר, שמבחינת ויסטה, הוא לא זיהה את זה בתור Pointing Device או Mouse Device, אלא בתור Human Interface Device. מעניינת הטרמינולוגיה שבחרו במיקרוסופט - שם מאד רחב שמכיל בתוכו הרבה דברים. למעשה, גםאם אני מחבר מיקרופון USB אמור להופיע זיהוי דומה. שם מאד כללי בחרו שם לעכבר.

More Posts Next page »