PracticU

Contract Attributes

בלי כתוביותעם כתוביות
PracticU › קורס WCF - תקשורת למתקדמים בדוט-נט › Contract Attributes
מילון מושגים:
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
סשן - פרק זמן של פעילות רציפה בין משתמש למערכת, שבו נשמר מידע על מצבו, למשל לאחר התחברות לאתר.
פרוקסי - שרת מתווך שמעביר בקשות בין לקוח ליעד, ויכול לשמש להסתרה, לסינון, למטמון או לבקרת גישה.
Namespace - מרחב שמות שמקבץ שמות של טיפוסים ורכיבים ומונע התנגשות בין שמות זהים בחלקים שונים של הקוד.
XML - שפת סימון לייצוג נתונים מובְנים בעזרת תגיות, המשמשת להחלפת מידע בין מערכות ולקובצי הגדרות.
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.

Contract Attributes
השיעור עוסק בפרמטרים של האטריביוטים ServiceContract ו-OperationContract, שמגדירים איך הקונטרקט נחשף ללקוח.
פרמטרים של ServiceContract
1. SessionMode: Allowed (מותר להשתמש בסשן), NotAllowed (לא) או Required (חובה).
2. Name: השם של הפרוקסי בצד הלקוח. בשיעור השם הוא calc, והמערכת מוסיפה לו Client.
3. ConfigurationName: השם שהקונטרקט יקבל ב-App.config.
4. Namespace: מרחב שמות ב-XML של ההודעות, בדרך כלל כתובת של החברה או המוצר, כדי למנוע התנגשויות.
5. CallbackContract: משמש לדופלקס, ולא נדון בשיעור.
פרמטרים של OperationContract
1. Name: שם הפונקציה בפרוקסי. בשיעור Add הפך ל-Addition.
2. Action ו-ReplyAction: מרחב השמות של הבקשה והתשובה.
3. AsyncPattern: קובע אם הפעולה נקראת בשיטת Begin/End.
4. IsInitiating ו-IsTerminating: קובעים אם הקריאה פותחת או מסיימת סשן.
הדגמה
אחרי שינוי השמות בשירות ובניית הקובץ מחדש, הפרוקסי נוצר עם המחלקה CalcClient והפעולה Addition. יש לעדכן את ה-Service Reference בלקוח, אחרת נוצרות שגיאות קומפילציה. לאחר העדכון הפונקציה Addition פועלת כרגיל.
האטריביוטים מאפשרים לשלוט בשמות ובמבנה של הקונטרקט, בלי לשנות את הלוגיקה.
השיעור הבא בקורס: Data Contracts

פרקי ההרצאה: Contract Attributes

  1. 00:00

    מאפייני Service Contract

  2. 00:41

    הגדרת SessionMode: Allowed, Not Allowed, Required

  3. 01:36

    שם הפרוקסי ושם ההגדרה בקובץ

  4. 02:34

    Namespace של הודעות ה-XML

  5. 03:13

    Callback Contract ודופלקס

  6. 03:50

    מאפיינים לפעולות ב-Operation Contract

תמלול ההרצאה: Contract Attributes

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

  1. 00:20

    אנחנו הולכים לראות כמה דברים בנוגע לקונטרקט. יש לנו כאן את ה-contract-i-calculator והאינטרפס. עכשיו, בקונטרקט יש לנו Service Contract כאטריביוט בכדי לחשוף החוצה את הקונטרקט עצמו.

  2. 00:38

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

  3. 00:51

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

  4. 01:09

    ואז יש לי פה שלוש אופציות. Allowed, אם נצטרך, נשתמש. Not Allowed, אני לא הולך להשתמש בסשן והוא לא מאופשר כאן.

  5. 01:19

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

  6. 01:33

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

  7. 01:48

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

  8. 01:59

    אז בעצם השם של הפרוקסי אמור להיות calc client. אפשרות נוספת זה configuration name. configuration name זה השם שאנחנו רוצים לתת בקובץ הקונפיגורציה עבור הקונטרקט הזה.

  9. 02:18

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

  10. 02:42

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

  11. 02:58

    בדרך כלל מרחבי שמות נהוגים להיות כתובות של אתרי אינטרנט, או יותר נכון כתובת של החברה שלנו, של המוצר. אז בואו נגדיר כאן http.mycalculator.com נניח שיש לנו את החברה הזאת.

  12. 03:15

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

  13. 03:35

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

  14. 03:49

    עכשיו, פרמטרים דומים אנחנו יכולים להגדיר עבור ה-Operation Contract. בואו נסתכל.

  15. 03:57

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

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

ההרצאה הקודמת: Service Throttling

ההרצאה הבאה: Data Contracts

הרצאות קשורות מקורסים אחרים

  • Attributes
  • מאפייני קונפיגורציה - Data Attributes

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

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