PracticU

הגדרת צרכן ל-Service

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

הגדרת צרכן ל-Service
השיעור מראה איך צרכן WinForms מתחבר לשירות שעולה בהוסט הקונסול ומשתמש בפונקציה שלו.
בניית הטופס
הטופס כולל שתי תיבות טקסט, txtNum1 ו-txtNum2, עם כותרות, וכפתור btnAdd שמציג את תוצאת החיבור. הטופס נפתח במרכז המסך.
חיבור לשירות
1. הרצת ההוסט: השירות חייב לרוץ, כי מסמך ה-WSDL נחשף רק כשההוסט פעיל.
2. Add Service Reference: מדביקים את כתובת ה-WSDL ולוחצים Go. המערכת מאתרת את הקונטרקט ICalculator ואת פעולותיו.
3. שם מרחב השמות: נותנים שם כמו CalculatorDemo. מרחב השמות לא צריך להיות זהה לשם של מחלקה או ממשק, כדי למנוע התנגשויות.
4. מה נוצר: תיקייה בשם Service References, קובץ App.config עם הכתובת, הביינדינג והקונטרקט, ומחלקת פרוקסי בשם CalculatorClient.
שימוש בשירות
בלחיצה על הכפתור יוצרים אובייקט מהפרוקסי, ממירים את הטקסט למספרים עם Convert.ToDouble, וקוראים לפונקציה Add. התוצאה מוצגת ב-MessageBox, ובסוף הפעולה השירות נסגר באמצעות Close().
הפעלה
מגדירים את ההוסט והצרכן כ-Startup projects ומריצים את שניהם. הצרכן מקבל את התשובה מהשירות שרץ בצד השני.
שינויים בשירות
אם מוסיפים פונקציה חדשה לשירות, היא לא תופיע אצל הלקוח עד שמעדכנים את הפרוקסי. מפעילים את השירות, ובלקוח לוחצים לחיצה ימנית על ה-Service Reference ובוחרים Update Service Reference. לא כדאי לשנות חתימות של פונקציות קיימות או למחוק אותן, כי פרויקטים של לקוחות עלולים להפסיק לעבוד. הוספה של פונקציה בטוחה יותר.
הצרכן מדבר עם השירות דרך מחלקת הפרוקסי שנוצרה אוטומטית, והוא לא צריך לדעת איפה מתבצע החישוב.
השיעור הבא בקורס: יצירת Service ב-Windows

פרקי ההרצאה: הגדרת צרכן ל-Service

  1. 00:00

    בניית ממשק המשתמש של הלקוח

  2. 02:07

    חיבור ל-WSDL והרצת השירות

  3. 04:00

    שם המרחב של מחלקות הפרוקסי

  4. 05:09

    קבצי הפרוקסי ו-app.config

  5. 05:46

    יצירת אובייקט הלקוח

תמלול ההרצאה: הגדרת צרכן ל-Service

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

  1. 00:20

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

  2. 00:33

    עכשיו בואו נעצב אותו. אז נגדיר את ה-UI של הטופס, בואו נבנה אותו. ניקח כאן מספר ראשון, ניקח תיבת טקסט עבור המספר הראשון, נקרא לה txt num1, נשכפל את זה כך שיהיה לנו אפשרות להכניס את המספר השני, נקרא ל-label second number, ולתיבת הטקסט, נקרא txt-num2,

  3. 01:23

    נרשום פה txt-num2 ונגדיר לחצן שיראה את תוצאת החישוב שמתבצעת על ידי הסרוויס בהשראת. נקרא ללחצן הזה btn, בוא נניח add, אנחנו רוצים לבצע פה פעולה של חיבור כרגע, ויש לנו עכשיו את ה-user interface שמסוגל להשתמש בשירות שלנו.

  4. 01:54

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

  5. 02:07

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

  6. 02:30

    לצורך כך אנחנו צריכים לראות איפה מפורסם המסמך הזה. אז אנחנו חוזרים להוסט והמסמך הזה, ראינו שפרסמנו אותו בכתובת הזאת: HTTP/127.0.0.1, פורט 60.65 והוא נגמר ב-WSDL.

  7. 02:47

    אז אני מעתיק את הכתובת הזאת, חוזר בחזרה לתוכנת הלקוח, ועכשיו אני רוצה להריץ ולהתחבר לשירות עצמו. בשביל שאני אוכל להתחבר לשירות, או יותר נכון לקובץ ה-WSDL, השירות חייב להיות באוויר פעיל בשביל לחשוף את המסמך הזה.

  8. 03:11

    אז אני רואה כרגע שהקונסול הוסט שלי מושחר ולכן אם אני אריץ את התוכנית רק הוא ירוץ אז בואו נריץ אותה וכעת הקונסול רץ אז אני יכול לחזור לוויז'ואל סטודיו הרצתי את זה דרך אגב עם קונטרול F5 ולא F5 ועכשיו אני יכול ללכת לקונסיומר שלי ל-references מקש ימני ולהגדיר פה add service reference כאן נוצר לי טופס שאומר לי איפה בדיוק יושב

  9. 03:42

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

  10. 04:00

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

  11. 04:14

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

  12. 04:28

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

  13. 04:55

    הוא זהה לשם של מחלקה. אוקיי, אחרי שהגדרתי את כל ההגדרות האלה אני לוחץ על אוקיי והמערכת מאתרת את קובץ ה-WSDL, מורידה אותו, בעצם אני רואה שהיא חושבת, ויוצרת לי כמה דברים בצד של ה-Consumer.

  14. 05:12

    קודם כל אני רואה שהיא יצרה לי פה תיקייה של Service References ובו אני רואה את השירות שלי, Calculator Demo. בנוסף, אני רואה שהמלוכת הוסיפה לי קובץ AppConfig, ובו, אם אני אפתח אותו, אני אראה כל מיני הגדרות של איפה נמצא השירות, מה ה-Endpoint, אני יכול לראות כאן את ה-Endpoint,

  15. 05:30

    Address, Binding, Contract, אוקיי, אני יכול לראות כל מיני הגדרות לגבי איפה נמצא השירות עצמו מבחינת איפה הוא באמת רץ, זה יהיה ב-Address, וכל הדברים האלה כתובים לי בקובץ AppConfig.

  16. 05:46

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

  17. 06:05

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

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

ההרצאה הקודמת: Console Self Host

ההרצאה הבאה: יצירת Service ב-Windows

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

  • Create Service
  • Angular 4 - Service
  • מה זה Web Service
  • Service Module

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

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