יום רביעי, 10 בספטמבר 2014

Visual Studio 2013 IDE - Part 2

שלום רב,

אכן זהו החלק השני של סקירת VS 2013 IDE.
על הפרק:
  • Code map.
  • Seeing function return values.
  • IntelliSense out of the way.
  • Box selection.
  • Adding labels to breakpoints.
  • Notifications.
  • Start Page.
  • CodeLens.

חסות ומתחילים.

Code map

גילוי נאות: ה feature הזה כבר נחשף בפנינו ב Update 1 של VS 2012, אז למי מאיתנו שלא עדכן - שווה להישאר.
הנה מה שנקבל לאחר לחיצה על כפתור ה code map במצב debug ומעבר על הקוד באמצעות step into F11. מעבר על הקוד באמצעות step over לא יניב תוצאות בחלון ה code map. העץ אשר מוצג מצד ימין למטה, נבנה בצורה דינמית בהתאם לכיוון הקוד שבו בחרנו ללכת.


מיקום הכפתור code map הינו ב tool bar וגם תחת Debug | Show Call Stack on Code Map. 






העץ יכול לגדול בצורה די משמעותית בהתאם לתרחיש ולכן מומלץ (ע"י קליק ימין בחלון ה Code Map) לארגן אותו מעט ע"י הסרת פונקציות פחות משמעותיות עבורנו, סימון פונקציות בצבעים, הוספת הערות ועוד. ניתן גם (שוב, ע"י קליק ימין) להגיע בצורה זריזה לתוכן הפונקציה.
אגב, חץ צהוב על גבי התרשים, מראה לנו היכן אנחנו ממוקמים מבחינת ה call stack.


החלון הנפתח כתוצאה מקליק ימין על גבי חלון ה Code Map.















ועכשיו מעבר לפרטים הקטנים, הרימו את הראש ותחשבו על התמונה הגדולה! מצליחים?
לא עוד debug לתרחיש ארוך עם שאלות כמו האם ביקרנו באזור הזה? ואם כן, איך הגענו לשם. שימושי ביותר לדעתי.
לגבי השאלה השלישית המתבקשת: כשביקרנו בפונקציה ההיא, מה היו ערכי הפרמטרים איתם הגענו אליה, קיים feature שכבר בטח מוכר לכם ואפילו אשמח להרחיב עליו בצורה מעמיקה בקרוב: IntelliTrace.

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

1. אני נאלץ להרוס מעט את החגיגה ולציין שה CodeMmap זמין רק בגרסת ה Ultimate של Visual Studio.
2. בשלב זה, ניתן לעשות את הקסם רק בשפות הבאות:
  • #C 
  • VB 
  • ++C 
  • JavaScript 

Seeing function return values

OK, אז ה Feature הבא עלה מתוך רחשי ליבם של משתמשי Visual Studio, אגב, שווה להזכיר כאן את Microsoft UserVoice (לינק), שזהו בעצם אתר בו כל אחד יכול להציע רעיון או לבקש שינוי או סתם לומר את אשר על ליבו וע"י כך מביא את אותה הארה/הערה לתשומת ליבם של אנשי מיקרוסופט, בדיוק כמו שקרה בדוגמא הבא:

שימו לב כמה פשוט וכמה תורם. בסך הכל מדובר על היכולת לצפות בצורה אוט' בערך החוזר מתוך פונקציה מבלי הצורך להכניס את הערך לתוך משתנה נוסף או כל שיטה אחרת תוך כדי debugging:

























בדוגמא כאן למעלה, תוכלו להבחין שרגע לפני היציאה מהפונקציה, התווספה לנו שורת מחץ בדמות: string.Concat returned, אשר מאפשרת לנו, ללא כל מאמץ מצידנו,  לראות את הערך המוחזר מן הפונקציה (דרך מסך Autos). אפשרות נוספת והפעם מתוך מסך ה Immediate, היא להזין את המשתנה ReturnValue$ בשורה ריקה וע"י כך לקבל את הערך המוחזר.

IntelliSense out of the way

מה היינו עושים בלי ה IntelliSense??
אבל יש גם רגעים נדירים בהם המידע המוצג (של ההשלמה האוט') לנגד עיניניו מסתיר מעט את את הקוד שבקובץ, בדיוק כמו במקרה הבא:
















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




















Box Selection

Feature נחמד שקיים כבר מ VS 2010 לדעתי, אבל רציתי בכל זאת לציין אותו.
מדובר על היכולת לסמן מידע בצורה אנכית ומרובה שורות. הסימון מתבצע באמצעות ALT וקליק שמאל על העכבר וכמובן הסימון עצמו.














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

Adding labels to breakpoints

האפשרות לתייג breakpoints כבר קיימת מ VS 2010. המידע הבא מעודכן עבור VS 2013.

לאחר שסימנו מספר breakpoints:




























קליק ימין על אחת מהן ולחיצה על Edit Labels יקפיץ חלונית להוספת תגית אשר תשוייך ל breakpoint הנבחר.


















לחיצה על ALT + CTRL + B תפתח עבורנו את מסך ה breakpoints, שם נוכל לסנן את הרשומות ע"פ תגית מסויימת, כמו בדוגמא שלהלן:









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

הלאה.

Notifications

אחד היתרונות בעבודה מקוונת ומחוברת ל Microsoft Account, היא האפשרות לקבל הודעות ועדכונים שוטפים המותאמים לחשבון שלך.
ב VS 2013 ריכזו עבורנו את כל סוגי ה Notifications במקום אחד ובחלקו העליון מצד ימין של המסך מופיע חיווי לגביהן:







לחיצה על ה Notifications Icon תיפתח עבורנו את חלונית ה Notifications.

קיימות מספר אפשרויות תצוגה לNotifications Icon:







והנה דוגמא למידע המופיע בחלונית ה Notifications:
























ניתן יהיה למצוא שם מידע על עדכונים ל VS, מידע על עדכונים ל Extensions ועוד.

Start Page

נראה שדף הפתיחה ב VS 2013 הותאם להציג מידע שימושי יותר מגרסאות קודמות וזאת בהתאם לדרישות של המשתמשים המועברות דרך אתר ה UserVoice.
המראה כעת הרבה יותר נקי ומכיל 3 עמודות מרכזיות:
  • פתיחת פרוייקטים קיימים/יצירת חדשים.
  • העשרה (What's New & Videos).
  • הודעות (עדכונים שונים, פרסום מועד הרצאות המועברות ב LIVE ועוד) .
כך זה נראה:



















CodeLens

בכמה מילים: כל המידע בלי לזוז מהספה.
במילה אחת: מבריק.

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

אז מעל לכל פונקציה ומחלקה, התווספה לנו שורה תמימה אשר טומנת בחובה הפתעות רבות.
כל שורה יכולה להציג לנו את כל ההפניוית אשר קשורות לאותה פונקציה/מחלקה, היא מציגה לנו את כל המשתמשים שביצעו שינוי ו Check In לאותה פונקציה/מחלקה, השורה הזאת גם יכולה להציג לנו את ה Changeset History ברמה של מחלקה/פונקציה, Related Bugs ובכלל את כל ה Work Items הקשורים לקובץ.



דוגמא לתצוגת ההפניות לאותה פונקציה, לחיצה על השורה ונועבר לתוכן הפונקציה הקוראת. קיימת אפשרות גם לראות את ההפניה ע"י תרשים (לינק ל Code Map).




תצוגת כל ה Work Items הקשורים (ניתן להיכנס לפירוט שלהם ע"י לחיצה על השורה המתאימה).


תצוגת Changeset History:



אם יש גם Unit Tests הקשורים לפונקציה, נקבל גם חיווי לגבי כמות ה אשר Tests בוצעו בהצלחה.
ישנה גם אפשרות להגדיר בדיוק מה נרצה לראות בשורת המידע:
Tools | Options | Text Editor | All Languages | Code Information Indicators.

בקיצור יש כאן בהחלט Feature נורא עוצמתי ומבטיח המציג כמעט את כל המידע האפשרי אודות קובץ מסוים (ברמת מחלקות ופונקציות) ובצורה די חיננית. הוא יכול להיות שימושי מאוד עבור קבוצות פיתוח אשר משלבות יכולות ALM בצורה שוטפת (אגב, פוסט בנושא ALM בהקשר של VS 2013 כבר בקנה, אז יש למה לצפות).

ה CodeLens מגיע בגרסת ה Ultimate, אז אל תתביישו לבקש את הגרסה מהמנהל/ת שלכם, תגידו לו שאתם הולכים להיות יעילים עוד יותר :-)

מקווה שעזרתי לכם להתרשם מה IDE החדש.

תודה,
יניב