PracticU

3 Levels Behaviors

בלי כתוביותעם כתוביות
PracticU › קורס WCF - תקשורת למתקדמים בדוט-נט › 3 Levels Behaviors
מילון מושגים:
שירות - תוכנה שרצה ברקע ומספקת פונקציונליות לרכיבים אחרים, לרוב ללא ממשק משתמש, ומופעלת אוטומטית עם המערכת.
Endpoint - נקודת קצה שאליה פונים ב-API, המזוהה בכתובת ומטפלת בסוג מסוים של בקשות. גם מכשיר קצה ברשת.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.
חריגה - מצב שגיאה שמתרחש בזמן ריצת התוכנית ומפסיק את המהלך הרגיל, אלא אם הקוד תופס ומטפל בו.
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
מאפיין - תכונה שמצמידים לרכיב ומתארת אותו או את התנהגותו, למשל מאפיין של תגית HTML או שדה באובייקט.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.

3 Levels Behaviors
השיעור מסביר את שלוש רמות ההתנהגויות (Behaviors) ב-WCF: ברמת השירות, ברמת ה-Endpoint וברמת הפעולה הבודדת.
רמת השירות (Service Behavior)
ההתנהגות חלה על כל השירות. שתי דוגמאות:
1. Service Metadata: מפעיל את מסמך ה-WSDL ומגדיר את כתובתו.
2. Service Debug, Include Exception Details In Faults: ברירת המחדל היא false. לכן כשיש חריגה בשרת, הלקוח מקבל רק הודעה כללית.
הדגמה
בפעולת Divide מוסיפים בדיקה: אם המספר השני הוא 0, השרת זורק חריגה עם ההודעה You can't divide by zero.
1. בלי ההגדרה, הלקוח מקבל הודעה כללית על שגיאה פנימית בשרת, בלי פרטים.
2. אחרי הפעלת Include Exception Details In Faults ב-Service Debug, הלקוח רואה את הודעת החריגה המקורית.
3. אפשר להפעיל את ההגדרה גם באטריביוט מעל המחלקה, אבל השיעור ממליץ להעדיף את קובץ הקונפיגורציה.
רמת ה-Endpoint (Endpoint Behavior)
ההתנהגות חלה על endpoint אחד בלבד. בשיעור מוגדר Data Contract Serializer עם MaxItemsInObjectGraph = 100, כלומר מספר האובייקטים המקסימלי שניתן לשלוח בתוך אובייקט אחד. ההתנהגות נקשרת ל-Endpoint באמצעות השם ב-Behavior Configuration.
רמת הפעולה (Operation Behavior)
ההתנהגות חלה על פונקציה אחת, ומוגדרת רק בקוד, באמצעות אטריביוט OperationBehavior מעל הפונקציה. בשיעור הוזכרו AutoDisposeParameters ו-ReleaseInstanceMode.
כל רמה מגדירה התנהגות לחלק אחר של השירות: השירות כולו, endpoint מסוים, או פונקציה אחת.
השיעור הבא בקורס: Service Throttling

פרקי ההרצאה: 3 Levels Behaviors

  1. 00:00

    שלוש רמות של Behaviors

  2. 00:57

    Service Behavior ו-Service Metadata

  3. 01:50

    התנהגות Service Debug

  4. 03:02

    זריקת חריגה מהשרת בחלוקה ב-0

  5. 04:16

    כפתור חלוקה בלקוח לבדיקה

תמלול ההרצאה: 3 Levels Behaviors

הטקסט המלא של הדקות הראשונות בהרצאה «3 Levels Behaviors» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:19

    הדבר הבא שאנחנו הולכים לראות נקרא Behaviors, כלומר התנהגויות. ישנם שלושה מקומות שאנחנו יכולים להגדיר התנהגות.

  2. 00:29

    בואו נראה אותם. המקום הראשון הוא Service Behavior, זאת אומרת שזו התנהגות ברמת כל הסרוויס. אז בואו עוד פעם נחזור ל-App Config של הסרוויס, נדליק לפני זה את WCF Service Configuration Editor, נחבר אותו מייד כשהוא קופץ, נחזור ל-app-config של ה-host ונדליק אותו מפה.

  3. 00:57

    עכשיו אנחנו רוצים לראות מה זאת אומרת התנהגות לגבי כל ה-service. אנחנו יכולים ללכת ל-advanced ולראות שיש לנו פה service behavior, behaviors יותר נכון, ואנחנו הגדרנו התנהגות אחת ויחידה.

  4. 01:13

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

  5. 01:25

    בפרוויס מטא דאטה עשינו את זה תכלס כמעט כל פעם שבנינו פרוויס וזה הגדיר שמסמך ה-WSDL שלנו הוא באוויר על ידי זה שהגדרנו true וזאת הכתובת שלו, יכלנו להגדיר שהוא נמצא לדוגמה על HTTPS, כלומר Secured, ויכלנו להגדיר כל מיני הגדרות נוספות בקשר לסרוויס מטא דאטה.

  6. 01:47

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

  7. 02:01

    אז בואו נראה לדוגמה התנהגות שנקראת Service Debug. נדליק אותה וניכנס אליה בשביל לבצע קונפיגורציות בה. דרך אגב אנחנו יכולים לעשות פה Up או Down רק בכדי שזה יהיה בקובץ ה-App Config בסדר שאנחנו רוצים שיהיה, חוץ מזה אין לזה ממש חשיבות.

  8. 02:26

    אז אנחנו לוחצים על Service Debug ויש פה כל מיני הגדרות בנוגע ל-Debug. ואנחנו, מעניין אותנו כרגע ההגדרה הזאתי. Include exception details detail in faults.

  9. 02:40

    Fault זה שגיאה שקיימת בצד של השרת. אוקיי? אז, by default ההתנהגות הזאת היא false. זאת אומרת שלא מתבצע ה-include של exception detail במצב של חריגות מהשרת.

  10. 02:54

    אוקיי, בואו נראה מה זה אומר. נשאיר רגע את ה-false, לא נשמור שום שינויים, ונייצר חריגה בצד של השרת. בואו נלך לדוגמה ל-divide ונגיד דבר כזה.

  11. 03:11

    במידה ו-num2 הוא 0, אז אנחנו זורקים חריגה משלנו שנקראת new divide by 0 exception, נמצאת ב-using system, ופשוט מאוד נגיד לו אסור לחלק ב-0, כי דאבל דרך אגב יכול לבצע חלוקה ב-0 כאשר הוא מחזיק איזשהו ביטוי שנקרא אינסוף חיובי או אינסוף שלילי.

  12. 03:51

    פוזיטיב אינפיניטי או נגטיב אינפיניטי. אבל בואו נניח שאנחנו לא מאשרים את זה כרגע במחשבון שלנו, אז אנחנו כרגע זרקנו פה איזושהי חריגה, ובואו נניח אפילו ניתן פה you can't divide by 0. כעת זה מה שהסרוויס עושה כאשר ישנו ניסיון לחלק ב-0, כאשר המספר השני הוא 0.

  13. 04:20

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

  14. 04:50

    בואו נקרא לו btn div ונגדיר עליו את המילה דיו ניכנס לתוך הלחצן ופשוט נעתיק

לקורס המלא: קורס WCF אונליין בדוט-נט

ההרצאה הקודמת: Configuration File - Multiple Bindings

ההרצאה הבאה: Service Throttling

קורסים נוספים במסלול

  • קורס WinForms - תוכנות רגילות בווינדוס
  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • פרויקט מעשי ב-#C - תוכנת צייר
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס תכנות מתקדם - #Advanced .NET C