DCSIMG
April 2012 - Posts - בלוג MSDN ישראל

אנחנו בפייסבוק

April 2012 - Posts

פורסם בתאריך 29/04/2012 18:09 על ידי Eran Sharvit

Back to Basics: מבוא לטכנולוגית ענן ו- Windows Azureמושג הענן ובמיוחד הענן של מיקרוסופט – Azure, שגור בשיחות שלנו כאילו היה כאן מאז ומעולם. בדיוק בגלל זה חשבנו שזה בדיוק הזמן לתת קצת סקירת רקע מקיפה למי שרק עכשיו הצטרף לחגיגה ואפילו לאלה שכבר מכירים, אולי להזכיר כמה מושגי יסוד ואולי אף לתת נקודת מבט שונה.

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

כאשר אנחנו אומרים מחשוב ענן, הכוונה היא לשירות כלשהו הניתן על ידי מערכת שנמצאת אי-שם ברשת מבלי שאנו נצטרך לדאוג לאיכן וכיצד אנו מקבלים את השרות. כיום ניתן לקבל שירותי ענן החל משירותים תשתיתיים (IaaS – Infrastructure as a Service), כגון, שרתים, שירותי אחסון ושירותי רשת, דרך שירותי פלטפורמה (PaaS – Platform as a Service), שמוסיפים שירותי מערכת הפעלה ושירותי תוכנה תשתיתיים ועד שירותי תוכנה (SaaS – Software as a Service) שמציעים חבילות תוכנה ללקוחות שרוצים לחסוך ברשיונות ושירותי מחשוב, כמו למשל שירותי Office365 של מייקרוסופט.

Back to Basics: מבוא לטכנולוגית ענן ו- Windows Azure

בתמונה: Azure Data Centers ברחבי הגלובוס

נהוג לחלק היום את שרותי הענן לשני חלקים עיקריים, ענן פרטי וענן ציבורי. בענן הפרטי אנחנו משתמשים בפתרונות וירטואליזציה אשר רצים על שרתים שלנו בחברה או בעגה המקצועית – On Premise ואילו הענן הציבורי מספק את שרותיו לכלל הציבור ונמצא אי שם ב... ענן! טוב, למי שבכל זאת מתעקש, הענן של מיקרוסופט מורכב מאשכולות שרתים אשר פרוסים ב-6 Data Centers המפוזרים ברחבי הגלובוס

במאמר הזה נתמקד ביכולות של Windows Azure, הענן הציבורי של מיקרוסופט שמספק פתרונות PaaS ו- IaaS.

יתרונות שירותי מחשוב ענן

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

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

 

שירותי Windows Azure של חברת מיקרוסופט

Windows Azure הוכרזה ע"י מיקרוסופט בשלהי 2008. Windows Azure מאפשרת למשתמשים ניהול יעיל ונוח, של ההבטים השונים במחשוב ענן, כפי שהוזכרו בתחילת המאמר. סביבת Windows Azure מורכבת משלושה חלקים עיקריים: Windows Azure SQL Azure ושירותים נוספים (בעבר נקרא AppFabric). 

Windows Azure – הבסיס לשירותי הענן של מייקרוסופט. פלטפורמת Windows Azure מספקת את יכולות התשתית החומרתית והאפליקטבית של שירותי הענן. בעזרת Windows Azure, נוכל לאחסן ולנהל את השירותים בהם הארגון משתמש. כמו כן, Windows Azure מספקת את שירותי האחסנה עבור מידע שאנו, כמשתמשים נרצה לשמור (NoSQL) וכן מספקת שירות הודעות אסינכרוני דרכו ניתן לתקשר בין השירותים השונים.

SQL Azure – זהו למעשה שירות SQL Server עבור הענן, כאשר השרת המאחסן את הנתונים, נמצא בענן, ומשמש כמחסן נתונים עבור האפליקציות השונות.

שירותים נוספים (בעבר נקראו AppFabric) – פלטפורמת Windows Azure מספקת שירותים המאפשרים קישוריות של אפליקציות שונות בסביבת הענן. בין השירותים הללו נכללים שירות קישוריות בין שירותי ענן שונים (On-Premise ושירותים אשר נמצאים אי שם ב"ענן") בעזרת ה-Service Bus אשר מהווה ערוץ תקשורת בטוח ונוח בין השירותים השונים, מנגנון Cache מתוחכם אשר תורם לשיפור ביצועים בסביבת הענן, ע"י שמירת המידע בזכרון וע"י כך חוסך את הצורך לאחזר מידע משירותי האחסון השונים והאיטיים יותר. כמו כן, שירות Access control מטפל באימות והרשאה של קריאות לשירותים השונים.

 

 

פלטפורמת Windows Azure

Roles

אפליקציות הרצות ב- Windows Azure, נקראות "Roles", כאשר ההבחנה העיקרית היא בין Worker Role לבין Web Role. ה- Worker הוא Role כללי, בד"כ נשתמש בו לאפליקציות, שצריכות לרוץ לאורך זמן ולבצע משימות שונות לאורך זמן. Windows Azure מאתחל את ה-Worker Role והוא ימשיך לרוץ עד שיעצרו אותו. Web Role הוא מעין מקרה פרטי של Worker Role, כאשר שירות ה-IIS רץ עליו כברירת מחדל. Web Role יכול להריץ אפליקציות Web למיניהן, כגון אתרים (סטטיים ודינאמיים), Web Services, PHP וכדומה. התקשורת של העולם עם אפליקציות הענן נעשות דרך סטנדרטי תקשורת סטנדרטיים כמו TCP ו- HTTP, כאשר החיבור אל ה-Role הוא דרך נקודת קצה (endpoint) שניתנת להגדרה, למשל Port 80 עבור דפי Web. ב- Windows Azure החיבורים אל נקודות הקצה, עוברים דרך מערכת איזון עומסים (load balancing) באופן אוטומטי.

מי שמנהל את כל המשאבים הרבים שצורכים ה-Role-ים השונים ושאר שירותי המערכת, הוא מנגנון הנקרא Fabric Controller או בקיצור FC. ה- FC דואג לנתר את השירותים השונים ולוודא שהמערכת נמצאת במצב תקין. במקרה ואחד מהשירותים מפסיק להתנהל בצורה תקינה, ה- FC הוא זה שידאג לאתחול השירות מחדש ולוודא שלקוחות הקצה מקבלים מערכת יציבה ומהימנה.

אחסון נתונים

ב-Windows Azure יש מספר דרכים לשמור נתונים החל מתורים (Queues) , שמשמשים בעיקר להעברת מידע בין ה-Role-ים השונים וכלה ב- SQL Azure שהוא למעשה שירות מסד נתונים לכל דבר והוא חיצוני לפלטפורמה. שלושת שירותי האחסון העיקריים בפלטפורמת Azure הם: Queues, Tables ו- Blobs.

Queues

תורים משמשים פחות כמקום אחסון ויותר כאמצעי להעברת מידע והודעות בין ה- Web Role לבין ה- Worker Role. התורים הם אסינכרוניים ומוגבלים לגודל של 64KB להודעה. המידע בתור יישמר עד אשר ניתן הוראה למחוק את ההודעה. כמו כן, אם ה- Role שאמור לקרוא את ההודעה "נופל" ולא מצליח לקרוא אותה, ניתן יהיה לקרוא את המידע באמצעות Role אחר. הפנייה לתור היא שמית כאשר השם שניתן חייב להיות באותיות קטנות (Lower Case), באורך של בין 3 לבין 63 תווים אלפאנומריים ('-' יכול להפריד בין תווים אלו, אך לא ניתן להתחיל ולסיים בו).

Tables

הטבלאות משמשות כמקום אחסון סקלבילי ומובנה, אשר מקושר לחשבון האחסון של הלקוח. טבלאות אלה הן טבלאות לא רלציוניות וללא סכמה (כמו פתרונות NoSQL מוכרים) וככאלה הן מסוגלות לשמור בתוכן מידע מסוגים שונים וכל תא יכול לאחסן סוג מידע אחר, כגון String או int וכיו'ב. טבלאות יכולות להכיל מילארדי שורות ו- טרהבטים של מידע. כל תא אחסון יהיה בעל מאפייני המערכת הבאים: PartitionKey, RowKey ו- LastUpdate שהוא מאפיין מערכת וערכו ניתן ע"י הפלטפורמה. PartitionKey ו- RowKey משמשים לזיהוי חד ערכי של המידע.

ניתן להוסיף מאפיינים נוספים (עד 255 במספר) כאשר סוג המאפיין יכול להיות אחד מסוגי הבסיס הבאים: String, binary, bool, DateTime, GUID, int, int64 ו- double. המאפיינים נשמרים ע"י Azure בצורה של זוג <name, typed value>.

ה- PartitionKey משמש עבור Windows Azure על מנת לנטר את המידע הנשמר בכדי שנוכל להגדיל את מקום האחסון במקרה הצורך. Windows Azure משתמש ב- PartitionKey גם כדי לקבץ נתונים בעלי אותו PartitionKey תחת אותה טבלה, לכן כדאי להשתמש ב-PartitionKey שיהיה ברור ונהיר לשימוש. RowKey הוא המזהה החד ערכי של המידע בתוך ה-Partition ולכן כאשר נרצה לשלוף מידע מסויים, נעביר ל- Azure צירוף <PartitionKey, RowKey> ונקבל ערך יחיד עבור צירוף זה. מאחר ו- Azure שומרת מידע בעל אותו PartitionKey תחת אותה טבלה, ניתן לבצע פעולות טרנזקטיביות על מידע בעל אותו PartitionKey ופעולות אלה יחשבו אטומיות גם מבחינת התשלום עבור השירות.

בלוב - BLOB

Blob – Binary Large Object – בלוב-ים הם הדרך של Windows Azure לשמור מידע בעל נפח גדול בענן. בבלוב אנו נשמור תמונות, סרטונים, קבצים שונים וכל מידע שדורש מקום ויכולת גישה נוחה אליו. ניתן לגשת לבלוב דרך ה-URL:

http(s)://<שם חשבון האחסון>.blob.core.windows.net/<שם ספרייה>/<שם בלוב>

לכל בלוב וספרייה ניתן להוסיף גם מידע שיתאר את התוכן (MetaData) של הבלוב/ספרייה. מידע זה ישמר במערך של שם/ערך עבור כל בלוב וספרייה.

הבלובים מחולקים לשתי תת קטגוריות – בלוקים ודפים.

בלוב מסוג בלוק (Block Blob)

כל בלוב כזה, יכול להכיל נפח אחסון עד 200GB, אשר יאוחסן בבלוקים של 4MB והבלוקים יאוחסנו לפי הסדר הנתון. כלומר, נניח ויש לנו מידע בגודל של 10GB ונרצה לשמור אותו בבלוב, אנו נחלק את המידע לבלוקים של 4MB וכאשר נעלה את המידע לבלוב, כל בלוק יקבל מספר סידורי וכך נשמור על סדר הבלוקים, על מנת שנוכל לאחזר את המידע. בלוב כזה, מתאים לשמירת וידאו עבור סטרימינג, תמונות ומסמכים. בזכות החלוקה לחלקים קטנים של 4MB ובזכות השמירה על הסדר, במקרה של שגיאה בהעלאה של המידע, ניתן לתקן את המידע ע"י העלאת הבלוק הסורר בלבד. כמו-כן, בזכות החלוקה והשמירה על הסדר, ניתן גם להעלות מספר בלוקים במקביל ובכך לקבל ביצועים טובים יותר. לאחר שהעלנו את המידע לבלוב, יש לבצע Commit, על מנת שהמידע יישמר ויהיה נגיש. לפני ביצוע ה- Commit, ניתן להוסיף, למחוק ולשנות בלוקים שונים מאחר ורק לאחר ה-Commit הם יהיו מסודרים לפי הסדר ושמורים במערכת.

בלוק מסוג דף (Page Blob)

בלוק זה, מטרתו לתמוך בגישה אקראית (Random Access) אל המידע, והוא מוגבל בגודל של 1TB. בלוב זה, מורכב ממערך של דפים (Pages) כאשר כל דף הוא בגודל של 512 בתים, ולכן גודל הבלוב יהיה כפולה של 512. קריאה מבלוב זה תעשה ע"י פניה לדף כלשהו בתוך תווך הדפים של הבלוב. כתיבה לבלוב זה, אינה דורשת ביצוע Commit ולכן כל דבר שנעלה לבלוב, יכתב מיידית אליו ויישמר בענן.

כונן Windows Azure

כונן Windows Azure (Windows Azure Drive), הוא מקרה פרטי של Page Blob. זהו Page Blob, אשר הפורמט שלו הוא NTFS. זהו למעשה כונן קשיח וירטואלי, כאשר כל מידע שנכתב אליו, נשמר מיידית בענן ומגובה ע"י המערכת. המנגנון של כונן Windows Azure מאפשר כתיבה ע"י Role אחד בזמן נתון, אך קריאה ניתנת לביצוע ע"י מספר Role-ים בו זמנית.

SQL Azure

SQL Azure הוא שירות מסד נתונים רלציוני, המאפשר לשמור נתונים בטבלאות, להריץ Stored Procedures, לבצע אינדקסים, ליצור Views ולבצע כמעט כל מה שאפשר לעשות עם SQL Server רגיל, כאשר השוני הוא בד"כ ברמה האדמיניסטרטיבית (טבלה שמשווה את שני השרתים ניתן למצוא כאן). ניתן לקנות גדלים שונים של אחסון כאשר הגודל המינימלי הוא 100MB והגודל המקסימלי הוא 150GB.

שליטה ובקרה

השליטה והבקרה בשירותי ה- Azure נעשית בעזרת ה- Windows Azure Management Service, שמספקים כלים ו- API לשליטה בחשבון ה- Azure שלכם. פלטפורמת Windows Azure מספקת ממשקים לכל השירותים שהיא מספקת. ממשקים אלה מגיעים מרמת סביבת הפיתוח – ממשק עבור סביבת .Net ו- Visual Studio וכלה בממשק RESTful המאפשר לכל סביבה תומכת לתקשר עם הענן.

סיכום

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

יש לכם שאלות בנושאי הענן? כנסו לפורום Azure שלנו בעברית המוקדש לנושאי הענן השונים, ותהנו מעצות ועזרה של מומחי הקהילה השונים

 

Back to Basics: מבוא לטכנולוגית ענן ו- Windows Azureהפוסט נכתב ע”י אהרון אצ’ין, ממייסדי חברת CodeValue. אהרון הינו יועץ בכיר לטכנולוגית מיקרוסופט ומומחה בתחום של Windows Azure.

CodeValue  מובילה במתן מענה ובפיתוח פתרונות תוכנה למגוון חברות ומציעה מגוון רחב של שירותים מקצועיים ושירותי ייעוץ. החברה מתמחה ומתמקדת במספר נושאים מרכזיים העומדים היום בקדמת הטכנולוגיות של עולם התוכנה:
Cloud Computing, Mobile, UX, Microsoft Technologies, ALM and TFS

פורסם בתאריך 27/04/2012 18:13 על ידי Eran Sharvit

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

בפוסט זה נתמקד באחד מן הכלים המייעלים ומשפרים את העבודה הציוותית: כלי לניהול המשוב הנקרא Feedback Client.

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

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

בגרסת TFS 11, מתן משוב ובקשה למשוב הם חלק ממתודולוגית העבודה:

תבניות הפרויקט ב- TFS 11 מכילות Work items לניהול ומעקב אחר Feedback Request/Response.

השימוש במערכת ניהול המשוב מורכב מ-2 חלקים:

  • ממשק ה- Web Access שבאמצעותו ניתן ליזום בקשה ל- Feedback.
  • יישום ה- Feedback Client המאפשר למלא את המשוב.

 

שלב ראשון – יצירת בקשה למשוב

בשלב ראשון, נפתח בקשה למשוב. ניכנס לממשק ה- Web החדש ונבחר ב- Request Feedback:


feedback management using tfs 11

 

מייד ייפתח חלון להזנת הבקשה. בתוך חלון זה נראה טופס המחולק ל- 3 סעיפים:

  • מי מחברי הצוות מוזמן לספק משוב
  • איך ניתן לגשת לאפליקציה עליה מעוניינים במשוב
  • נקודות מרכזיות להתמקדות במשוב

feedback management using tfs 11

 

ניתן לבחור Preview שיאפשר לנו ולראות כיצד תיראה הבקשה הנשלחת במייל:

feedback management using tfs 11

בסיום, נלחץ על Send והבקשה לפידבק תשלח.

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

 

שלב שני – מילוי המשוב

המייל אשר נשלח עם הבקשה למשוב, מכיל לינק להפעלת ה- Feedback Client.

מסך ה- Start ינחה אותנו בהפעלת האפליקציה עליה ניתן את המשוב.

feedback management using tfs 11

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

feedback management using tfs 11

שליחת המשוב (עם אפשרות לתצוגה מקדימה)

feedback management using tfs 11

כאמור, עם השליחה, כבר נוצר Work item מסוג Feedback Response עם פרטי המשוב.

 feedback management using tfs 11

סיכום


תהליך בקשת ומתן משובים מנוהל מעתה ב- TFS 11  כחלק אינטגרלי ממחזור החיים של פיתוח האפליקציה:

  • המשובים מנוהלים ומתועדים באמצעות מנגנון המשוב ובאמצעות  Work items Feedback הנכללים ב-  Process Templates החדשים.
  • ממשק ה- web החדש מאפשר ליזום בקשות למשוב
  • נוסף כלי חדש – ה- Feedback Client, המאפשר ביצוע המשוב ותיעודו.

 

יש לכם שאלות נוספות בנושא ALM או TFS? הכנסו לפורום החדש שלנו בעברית ומיטב מומחי הקהילה יישמחו לעזור לכם!

feedback management using tfs 11הפוסט נכתב ע"י דן מורגנשטרן, יועץ בכיר בקבוצת סלע וארכיטקט ALM, מוביל הטמעות ALM מבוססי TFS, ובעל ניסיון עשיר בפיתוח ובניהול צוותי פיתוח.

פורסם בתאריך 27/04/2012 17:08 על ידי Guy Burstein

חנות האפליקציות Windows 8 מגיעה לישראלבשבוע שעבר הכרזנו בבלוג של Windows Store על הרחבת השווקים של חנות האפליקציות. בעדכון הקרוב של Windows 8, הצפוי בשבוע הראשון של יוני הקרוב, יצטרפו 33 שווקים שונים בהם מפתחים יוכלו למכור אפליקציות ובינהם ישראל!

כרגע בגרסת Windows 8 Cosumer Preview חנות האפליקציות כוללת 5 שווקים שבהן מפתחים יכולים למכור אפליקציות: צרפת, גרמניה, הודו, יפן, ארה”ב וסין. כמו כן ישנה הגדרה של “שאר העולם” המיועדת לכל השווקים שבהן חנות האפליקציות איננה פעילה עדיין.

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

הזדמנות למפתחים

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

רוצים ללמוד איך לאפיין ולעצב חווית משתמש ל- Windows 8?
הגיעו ליום העיון הפתוח המתקיים אצלנו בשיתוף עם חברת netcraft
עדכון: מצטערים, אך כל הכרטיסים אזלו. בקרוב נכריז על תאריך נוסף.

רוצים ללמוד כיצד לפתח אפליקציות מטרו ל- WIndows 8 ?
הזדרזו והרשמו ליום העיון הפתוח המתקיים אצלנו בנושא.

פורסם בתאריך 23/04/2012 15:45 על ידי Eran Sharvit

כיועץ ומפתח שכמעט ולא נמצא במשרד אלא מסתובב בין לקוחות, העבודה מול TFS Source Control הפכה להיות הרבה יותר נוחה באמצעות קונספט ה- Local Workspaces שהוצג ב- VS 11. במאמר זה נספר כיצד.

הורידו והתנסו ללא תשלום בגרסה החדשה של Visual Studio 11 Beta

אחת הבעיות הגדולות של המשתמשים ב- Visual Studio 2010 ובעיקר המתחילים שבהם, היא הבנת נושא ה- Workspace וצורת העבודה עם Workspace. אז לפני שנסביר מהו Local Workspace, בואו ניישר קו ונבין את מושג ה- Workspace.

מה זה Workspace

Workspace הוא סט שמכיל את כל המיפויים בין הנתיב של קובץ/ספריה בשרת לבין קובץ/ספריה בדיסק המקומי. כל Workspace משוייך למשתמש TFS מסויים והוא יכול להכיל מספר רב של מיפויים.
בצילום המסך הבא אנו רואים שישנן 3 מיפויים שונים של נתיבים מהשרת למחשב המקומי:

Workspace 2010

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

עוד מימיו הראשונים של מוצר ה-TFS ב- 2005,  התקבלה החלטה לנהל בצורה מרכזית את ה- Workspaces  על שרת ה- TFS ולא על המחשבים המקומיים, בין היתר מטעמי איטיות הרשתות ועוד. מי שמתעניין בהיסטוריה יכול להרחיב ידיעות בפוסט המצוין של Brian Harry בנושא.

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

לדוגמא, התרחיש הבא:

על המכונה המקומית יש לי קבצים המקושרים ל-  TFS Source Control:

Source Control Explorer 2010

 

ניגש למערכת הקבצים ונמחק את הקבצים:

Delete from file system

 

כעת נקח גרסה עדכנית מהשרת (Get Latest). שימו לב להודעה – כל הקבצים מעודכנים..

local files are up to date

 

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

התיקיה ריקה!.. אותה תיקייה שה- TFS אמר לפני רגע שהיא מעודכנת.

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

 

אז מה חדש ב- VS 11 בנושא Workspace?

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

ההגדרה מתבצעת דרך ממשק הניהול הרגיל של Worksapce:

Local worspaces vs 2011

באותו מסך ניתן גם להגדיר מה יהיה ה- timestamp של הקבצים: Current - Get Time או Check In Time

vs  11 file timestamp

 

איך משפיע השינוי על העבודה היומיומית

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

כיצד זה נראה בפועל?

נדאג שחלון Pending Changes לא יכיל כל שינוי המחכה ל- Check In.
כעת נפתח את התיקיה המקומית ונוסיף קובץ שלא דרך Visual Studio, אלא דרך ה- Windows Explorer:

add file

 

שימו לב כי נמצא שינוי  בחלון הPending Changes, אולם תחת קטגוריה של Excluded Changes. כלומר, השינוי המקומי זוהה. עם זאת, לא כל שינוי מקומי באמת צריך להכנס ל- Source Control. אם נרצה להוסיף את השינוי לשרת,  ניתן ללחוץ על הקישור Detected Changes:

detected changes

 

כעת ניתן ללחוץ Promote ולהעביר את השינוי ל- Included Changes

promote

כאשר מדובר בשינוי בקובץ שכבר קיים ב- Source Control, גם אם נערוך אותו לדוגמא בNotepad

edit in notepad

השינוי יזוהה ויכלל אוטומטית ב- Included Changes:

vs 11 auton promotion

 

עבודה בOffline

אחד מהיתרונות הגדולים במעבר ל- Local Workspaces הוא היכולת המשופרת של עבודה במצב לא מקוון,Offline. אמנם ב- Visual Studio 2010 הייתה תמיכה בעבודה במצב לא מקוון,  אולם תמיכה זאת לא היתה אופטימלית.

vs 2010 go onlineמי לא זוכר את הIcon הקטן והמתחבא (כאן הוא מופיע בהגדלה Smile)

שלא לדבר על ההודעות המרגיזות בכל פעם שניסית לבצע Check Out ללא חיבור לשרת..

 

 

 

ב- Visual Studio 11 נקבל פעם אחת את ההודעה המוכרת הזאת על מנת ליידע אותנו שאנו עובדים במצב אופליין: 

tfs offline error

VS יעבור אוטומטית למצב אופליין ומנקודה זאת תוכלו לעבוד כרגיל ולבצע Check Out ללא הפרעה.
כל שינוי שנבצע הן בסביבת Visual Studio או בכל עורך שהוא ישירות ממערכת הקבצים, ייקלט וייכנס אוטמטית לרשימת ה- Pending Changes.

הדבר היחיד שלא נוכל לבצע הוא פעולות המחייבות ישירות שרת כגון Check In:

כאשר נחזור למקום בעל חיבור לרשת, Refresh קטן וניתן לבצע Check In כרגיל.

אז מי אמר שאי אפשר לקחת עבודה לחופש/ים כי אין רשת?..

הורידו והתנסו ללא תשלום בגרסה החדשה של Visual Studio 11 Beta

 

BaruchFrei

הפוסט נכתב ע"י ברוך פריי, ארכיטקט ALM בכיר בקבוצת סלע המייעץ לחברות רבות בתעשייה ובתעשייה הביטחונית בפרויקטי הטמעה של שרת TFS בתחומי הפיתוח והבדיקות. בין יתר ההתמחויות ברוך מתמחה בתכנון ופיתוח כלי מעטפת על בסיס פלטפורמת ALM של מייקרוסופט, וכן בפתרונות Automated Build מתקדמים למערכות מבוזרות הכוללים פריסה ובדיקות. אם יש לכם שאלות נוספות בנושא ALM, אתם מוזמנים לבקר אותנו בפורום ALM.

פורסם בתאריך 18/04/2012 17:52 על ידי Eran Sharvit

images_thumb_2[1]בכל רבעון כאשר אנו מכריזים על ה- MVP’s החדשים, עולות הרבה שאלות בקהילות מומחי המחשוב והמפתחים כגון מה זה הפרס, מי מקבל אותו ואיך. בפוסט זה ננסה לענות על שאלות אלו ואחרות.

אודות תוכנית מיקרוסופט MVP

מתוך האתר הרשמי של תוכנית MVP: “תוכנית Microsoft most valuable professional או בקיצור MVP,  מכירה ומוקירה מובילי קהילה טכנולוגיים יוצאי דופן מרחבי העולם אשר משתפים בהתנדבות את הידע המעמיק והניסיון המעשי שלהם בטכנולוגיות מיקרוסופט

כל רבעון מיקרוסופטי (יולי, אוקטובר, ינואר, אפריל), מספר מצומצם של מובילי קהילה אשר היו מועמדים לתואר מקבלים את פרס ה- MVP עבור תרומתם בשנה החולפת לקהילה הטכנית של מיקרוסופט. כל MVP צריך לעבור תהליך מועמדות או nomination process, כאשר הבקשה למועמדות יכולה להגיע מכל אחד. קבלה למועמדות ל- MVP כמובן אינה מבטיחה את קבלת ה- MVP. על מנת לקבל את הפרס, נדרשת עמידה בתהליך סינון קפדני.

התהליך הצפוי למועמד לתוכנית MVP

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

לאחר קבלת הבקשה ומילוי הטפסים המתאימים, מתחיל למעשה תהליך ההתמודדות  או ה- nomination process המדובר. באתר הרשמי יש מידע אשר מסביר על התהליך הצפוי למועמדים להיות MVP’s:
על מנת להיות MVP, נדרש מהמועמד לעבור תהליך סינון קפדני. פאנל הבוחנים מורכב מהצוות האחראי על תוכנית ה- MVP, מאנשי מיקרוסופט מקומיים מאותו איזור גיאוגרפי של המועמד וכן מצוות המוצר הרלוונטי במיקרוסופט. הפאנל בוחן את הידע הטכני של המועמד בתחום הרלוונטי כמו גם את תרומתו לקהילה, בין אם זה תרומה בפעילות אונליין (בלוג, פורומים וכו’) או פעילות אופליין (הרצאות, ספרים וכו’).

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

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

קיבלתי MVP! מה עכשיו?

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

הנה תמונה של תעודת ההוקרה אשר הוענקה ל- MVP בשנת 2012 (גביע משמאל, תעודה מימין):

 

ישנן כמה נקודות שאולי דורשות הבהרה:

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

קראו עוד שאלות נוספות בנושא MVP כאן.

מה אני מקבל בתור MVP?

כאמור, פרס ה- MVP נועד להכיר בתרומתכם המתמשכת והמשמעותית לקהילה הטכנולוגית ולהוקיר את פועלכם. הפרס אינו פרס כספי ובדרך כלל האנשים אשר מקבלים אותו פועלים מתוך תשוקה פנימית לשיתוף ידע וניסיון ולא למען הטבה כזאת או אחרת. עם זאת, בתור MVP’s אתם זכאים להטבות מסויימות שנועדו להוקיר את פועלכם, הטבות כגון מנוי MSDN המאפשר הורדת כל תוכנות מיקרוסופט ללא הגבלה, כניסה לאירועים סגורים, פניות בעדיפות גבוהה למוקדי השירות ועוד הטבות שיאפשרו לכם להמשיך ולתרום לקהילה בנושאי טכנולוגיות מיקרוסופט. כמו כן ה- MVP’s שלנו הם מובילי קהילה משמעותיים ומהווים במקרים רבים שופר לקהילות הטכנולוגיות השונות ואנו מייחסים לקולם משקל רב בסוגיות שונות.

רוצים להתחיל להיות פעילים בקהילה? בקרו בפורומים שלנו למפתחים או למומחי המחשוב או השתתפו במגוון האירועים שאנו מקיימים למפתחים.

פורסם בתאריך 02/04/2012 17:08 על ידי Eran Sharvit

WP7 logoהעדכון לגרסת ערכת הפיתוח מכיל מספר עדכונים ומציג שתי יכולות חשובות: פיתוח אפליקציות למכשירים החדשים עם 256 MB זכרון ויכולות פיתוח אפליקציות WP7 בסביבת Windows 8.

הורידו את העדכון מכאן

 

אז מה מכיל העדכון?

עדכון 7.1.1 הוא עדכון הכולל בעיקר את היכולות שהוזכרו מעלה:

  • ממשק Visual Studio יוכל כעת להציג מספר אמולטורים של מכשיר מובייל, מה שיאפשר לכם לדמות ריצת אפליקציה על המכשירים החדשים של 256MB.
  • גרסת המכשיר של ה- 512MB עודכנה לגרסת build 8773.
  • עדכון ל- Microsoft Advertising SDK שהיתה בעבר זמינה רק כהורדה נפרדת.
  • תמיכה של ה- IntelliSense בציון גרסת המכשיר אליו אתם מייעדים את האפקליקציה בקובץ ה- manifest שלכם.
  • האמולטור כעת תומך בכל השפות שמערכת ההפעלה 7.1 תומכת.

העדכון שוקל קצת פחות מ- 300MB, כיוון שהוא כולל 2 Virtual OS Images: של מכשיר ה- 512MB ושל מכשיר ה- 256MB.

לאחר העדכון תוכלו מייד לראות ב- Visual Studio את התמיכה במכשירים החדשים:

WP7_SDK_1

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

פיתוח באמצעות WPSDK 7.1.1 על Windows 8

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

אך שימו לב:

  • תמיכה רשמית ב- WPSDK ו- Windows 8 תהיה רק מגרסת ה- Windows 8 RTM.
  • אם הפעלתם את Hyper-V, תצפו לירידת ביצועים מבחינת ה- SDK.

עם זאת, זה עובד ובהחלט ניתן לפתח על Windows 8 גם כש- VIsual Studio 11 Beta מותקן.

פיתוח אפליקציות WP למכשירי Low Cost

לפני כשבוע הרחבנו את ה- MarketPlace ל- 23 מדינות נוספות. צעד זה במקביל עם יכולות הפיתוח החדשות למכשירי low cost, פותח לכם, מפתחי האפליקציות הזדמנות עסקית וגידול של 60% בנתח השוק של לקוחות אופציונליים מכל העולם. אז למי שכבר יש אפליקציה באוויר, כדאי שייכנס ל- App Hub ויגדיר את המדינות החדשות שהוא מאפשר להפיץ בהן את האפליקציה..

הורידו את העדכון מכאן

יש לכם שאלות בנושאי פיתוח ל- Windows Phone? מיטב מומחי הקהילה ישמחו לעזור לכם בפורום העברי של מפתחי Windows Phone!

פורסם בתאריך 01/04/2012 13:17 על ידי Eran Sharvit

VS11-Beta_h_rgbבין שלל החידושים של גרסת VS 11 Beta ששוחררה לאחרונה, הוצגה יכולת חשובה בעבודה עם נתונים: Strongly Typed Data Controls. במאמר זה נזכיר את "תבניות" הנתונים הללו ואת השיטה הנוכחית לביצוע Data Binding, נחקור את האתגרים שאנו נתקלים בהם כיום ונראה כיצד באמצעות VS 11 Beta ניתן להתמודד עם האתגרים האלה, לשפר גם את הפרודוקטיביות ואף להינות מביצועים טובים יותר.

הורידו והתנסו ללא תשלום בגרסה החדשה של Visual Studio 11 Beta

 

Data Binding – המצב כיום

כל מפתח WebForms מכיר את ה"תבניות" (Templates) שקיימות מהגרסה הראשונה של ASP.NET. תבניות אלו מאפשרות לנו לשנות את ה-markup המיוצר על ידי קונטרולים התומכים בהן, כגון GridView או Repeater, בהתאם לנתונים שאליהם הקונטרול מקושר (bound). על מנת לבצע את הקישור משתמשים במתודות עזר ()Eval עבור קישור חד-כיווני, ו- ()Bind עבור קישור דו-כיווני. שתי המתודות מקבלות בתור פרמטר מחרוזת שחייבת להיות זהה לשם המאפיין אליו נרצה לבצע את הקישור:

<asp:GridView runat="server" ID="lateBoundGrid" AutoGenerateColumns="false" >
    <Columns>
        <asp:TemplateField HeaderText="Id">
            <ItemTemplate>
                <span><%# Eval("Id") %></span>
                      
           
</ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Title">
                <ItemTemplate>
                    <asp:TextBox runat="server" Text='<%# Bind("Title") %>' Id="title"/>
                       
               
</ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Author">
                <ItemTemplate>
                    <asp:TextBox runat="server" Text='<%# Bind("Author") %>' Id="author"/>
                       
               
</ItemTemplate>
        </asp:TemplateField>
        </Columns
>
</
asp:GridView
>

 

בזמן ריצה, יתבצע שימוש ב-Reflection כדי "להזריק" את ערכי המאפיינים מתוך האובייקטים המקושרים לתוך ה-markup. להלן הקוד (בצורה מפושטת), שיווצר מאחורי הקלעים כדי לבצע קישור של שדה Title ל- TextBox בשם title:

if ((this.Page.GetDataItem() != null))
{
  title.Text = Convert.ToString(
this.Eval("Title"), CultureInfo.CurrentCulture);
}

נזכור כי הקישור מוגדר בעזרת מחרוזות המיצגות את שמות המאפיינים. כלומר, אנו משתמשים ב-Late Bound Expressions, מה שמספק לנו מספר אתגרים:

  • חוסר בטחון בזמן קידוד – המחרוזות המוקלדות אינן נבדקות לא בזמן פיתוח ולא בזמן קומפילציה, כך שבמידה וטעינו, את השגיאה נקבל רק בזמן ריצה. 
  • מחסור ב-Intellisense – חייבים להקליד את שמות המאפיינים במדויק באופן ידני – אין עזרה של Visual Studio.
  • רגישות לשינויים – שינוי בשם מאפיין לא יגרום לשום התראה בזמן פיתוח וקומפילציה – את השגיאה נגלה רק בזמן ריצה (בשאיפה בבדיקות).
  • השפעה על ביצועים – בשל שימוש ב-Reflection. למרות שמנגנון ה-Binding עושה שימוש ב-Caching של מאפיינים, וחיפוש המאפיין מתבצע רק פעם אחת על כל פעולת ה-DataBind, עדיין קיימת השפעה על ביצועיי הדפים (עוד על כך בהמשך המאמר).

 

הפתרון – Strongly Typed Data Controls

גרסת ASP.NET 4.5 המותקנת עם VS 11 Beta, מציגה את Strongly Typed Data Controls בתבניות, המאפשר הגדרת טיפוס האובייקט המקושר באמצעות מאפיין חדש: ItemType.

מאפיין זה קיים בכל קונטרול שיורש מתוך System.Web.UI.WebControls.DataBoundControl (כגון: GridView, FormView, CheckBoxList, DropDownList, ListBox ואחרים), וכן ב-Repeater שלא יורש מהנ"ל. כאשר מוגדר ה-ItemType, אנו יכולים להשתמש בביטוי Item ולקבל השלמה אוטומאטית (Intellisense) ב- VS 11 Beta:

עבודה עם נתונים ב- Visual Studio 11 Beta: כיצד להשתמש ב- Strongly Typed Data Controls

 

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

מכיוון שכעת אנחנו עובדים Strongly Typed כל הקוד נבדק הן בזמן הקידוד והן בזמן הקומפילציה, וכך נקבל התראה אם משהו לא תקין מיד עם הופעת התקלה:

עבודה עם נתונים ב- Visual Studio 11 Beta: כיצד להשתמש ב- Strongly Typed Data Controls

הביטוי Item מאפשר לנו קישור חד-כיווני. על מנת לבצע קישור דו-כיווני, עלינו להשתמש בביטוי BindItem, שגם הוא מספק לנו Intellisense מלא. להלן הדוגמא שהצגתי קודם אך הפעם עם שימוש ב-Strongly Typed Data Controls:

<asp:GridView runat="server" ID="stronglyBoundGrid" 
AutoGenerateColumns="false" ItemType="BookStore.Book" >
    <Columns>
        <asp:TemplateField HeaderText="Id">
            <ItemTemplate>
                <span><%# Item.Id %></span>
                      
           
</ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Title">
                <ItemTemplate>
                    <asp:TextBox runat="server" Text='<%# BindItem.Title %>' Id="title"/>
                       
               
</ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Author">
                <ItemTemplate>
                    <asp:TextBox runat="server" Text='<%# BindItem.Author %>' Id="author"/>
                       
               
</ItemTemplate>
        </asp:TemplateField>
    </Columns
>
</
asp:GridView
>

ומה לגבי הביצועים? בשימוש ב-Item, כלומר בקישור חד-כיווני, שהוא השימוש הנפוץ ביותר, אין שימוש ב-Reflection. מנוע ה-ASP.NET יתרגם את הקישור לקוד הדומה לקוד הבא:

Item = ((BookStore.Book)(Container.DataItem));           

target.SetDataBoundString(0, Convert.ToString(Item.Id, CultureInfo.CurrentCulture));

מהניסיונות שביצעתי*, הפעלת ()DataBind תוך שימוש ב-Item עורכת כמחצית מהזמן בהשוואה לשימוש
ב- ()Eval
. לצערי, כאשר משתמשים בקישור דו-כיווני, המנגנון נשאר זהה לשימוש ב-()Bind, כך שלא מרוויחים בביצועים, אך עדיין מקבלים השלמה אוטומאטית.

 

* הנתונים הנ"ל הן תוצאות של ניסויים שלי בלבד ואינם נתונים רשמיים. בניסויים אחרים ובתסריטים אחרים התוצאה עשויה להיות שונה.

 

הורידו והתנסו ללא תשלום בגרסה החדשה של Visual Studio 11 Beta

 

Strongly Typed Data Controls ב- Visual Studio 11הפוסט נכתב ע"י ולאד אזארכין ,מהנדס תמיכת Premier למפתחים (PFE), וכן מוביל טכנולוגי בתחום פיתוח Web ב-EMEA. בין יתר ההתמחויות, ולאד הוא מומחה בתחום ביצועים, ניטור, health, ו-troubleshooting של מערכות Web. בעבר ולאד היה יועץ פיתוח תוכנה, שימש בתפקידי ניהול טכנולוגי בכירים, הציג בכנסים וניהל קבוצת משתמשים.