PracticU

Pattern - One Way

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

Pattern - One Way
ברירת המחדל ב-WCF היא request reply: הלקוח קורא לפונקציה בשרת וממתין לסיומה, גם כשהפונקציה לא מחזירה ערך. שיטת one-way מאפשרת לקרוא לפונקציה ולהמשיך מיד, בלי לחכות לה.
איך מגדירים one-way
1. החתימה: הפונקציה חייבת להחזיר void. פונקציה שמחזירה ערך לא יכולה להיות one-way.
2. האטריביוט: מעל ההגדרה ב-interface, בתוך OperationContract, כותבים IsOneWay = true.
3. הפרוקסי: אחרי השינוי מריצים מחדש את השירות ומעדכנים את ה-Service Reference בלקוח (Update Service Reference).
מה רואים בהדגמה
הפונקציה sendFeedback מדמה עבודה ארוכה בשרת. בשיטה הרגילה ההודעה בלקוח הופיעה רק אחרי שהשרת סיים, כלומר אחרי חמש שניות. אחרי ההגדרה כ-one-way הלקוח המשיך מיד, והשרת סיים את עבודתו ברקע.
מתי משתמשים בזה
One-way מתאים לפעולות שהלקוח לא צריך לקבל מהן תשובה, כמו עדכון, מחיקה או הכנסת נתונים. כשצריך תוצאה, משתמשים בשיטה הרגילה.
השיעור הבא בקורס: Duplex - Server Side

פרקי ההרצאה: Pattern - One Way

  1. 00:00

    שיטה שנייה: One-Way

  2. 00:37

    הפונקציה sendFeedback שמחזירה Void

  3. 01:17

    הלקוח ממשיך בלי לחכות לשרת

  4. 01:51

    הגדרת isOneWay ב-OperationContract

  5. 02:27

    חובה שפונקציית OneWay תחזיר Void

תמלול ההרצאה: Pattern - One Way

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

  1. 00:19

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

  2. 00:37

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

  3. 00:49

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

  4. 01:05

    אז איך אנחנו בעצם מגדירים שיטה אחרת ובואו נסתכל על השיטה שאנחנו צריכים להגדיר שהיא one-way. שיטת one-way אומרת אנחנו קוראים לפונקציה שא' חייבת להחזיר void לדוגמה הפונקציה הזאת sendFeedback ובי"ת אנחנו לא צריכים להמתין שהפונקציה תסתיים.

  5. 01:28

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

  6. 01:41

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

  7. 01:56

    איך אנחנו מגדירים פונקציה כזאת? אז אנחנו הולכים לאינטרפייס ואנחנו רואים את ההגדרה של sendFeedback. מעל ההגדרה של sendFeedback יש לנו את ה-OperationContract שזה האטריביוט שחושף החוצה את הפונקציה sendFeedback.

  8. 02:11

    ואנחנו צריכים לפתוח פה סוגריים ולהגדיר את הפרמטר isOneWay=true ולסגור סוגריים. ברגע שעשינו את הדבר הזה אוטומטית הפכנו את הפונקציה ל-OneWay אבל פונקציה must return void אנחנו לא יכולים לעשות את הדבר הזה בפונקציה שלא מחזירה void אוקיי בואו נסתכל עכשיו איך המערכת פועלת עם הקריאה ובלי הקריאה אז בואו קודם כל נעשה את זה בלי הקריאה מה שנעשה זה נוריד את זה

  9. 02:46

    נבדוק שאכן המערכת רצה כך שגם השירות רץ וגם

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

ההרצאה הקודמת: Pattern - Request-Reply

ההרצאה הבאה: Duplex - Server Side

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

  • The Listener Pattern
  • Angular4 - Validator Pattern
  • פייטון design pattern factory
  • קליטת מידע מהמשתמש בריאקט React Two Way binding

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

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