
CalculatorClient.Convert.ToDouble, וקוראים לפונקציה Add. התוצאה מוצגת ב-MessageBox, ובסוף הפעולה השירות נסגר באמצעות Close().הטקסט המלא של הדקות הראשונות בהרצאה «הגדרת צרכן ל-Service» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כעת אנחנו מסוגלים ללכת ולבנות את ה-Consumer, שזו תוכנת ה-WinForm שבנינו, בשביל לצרוך את השירות. דבר ראשון, בואו נקרא לטופס שלנו Calculator Forum.
עכשיו בואו נעצב אותו. אז נגדיר את ה-UI של הטופס, בואו נבנה אותו. ניקח כאן מספר ראשון, ניקח תיבת טקסט עבור המספר הראשון, נקרא לה txt num1, נשכפל את זה כך שיהיה לנו אפשרות להכניס את המספר השני, נקרא ל-label second number, ולתיבת הטקסט, נקרא txt-num2,
נרשום פה txt-num2 ונגדיר לחצן שיראה את תוצאת החישוב שמתבצעת על ידי הסרוויס בהשראת. נקרא ללחצן הזה btn, בוא נניח add, אנחנו רוצים לבצע פה פעולה של חיבור כרגע, ויש לנו עכשיו את ה-user interface שמסוגל להשתמש בשירות שלנו.
נגדיר פה קלקולטור ונגדיר שהטופס ייפתח במרכז המסך. אוקיי, אז איך אני מתחבר לשירות?
דבר ראשון, אני צריך פעם אחת להתחבר למסמך ה-WSDL בזמן הפיתוח בכדי להביא אותו אליי ודרכו לבנות מחלקות שנחשבות כמחלקות פרוקסי ויהיו מסוגלות בזמן שהאפליקציה רצה ללכת ולהשתמש עם המחלקה האמיתית שנמצאת בשרת.
לצורך כך אנחנו צריכים לראות איפה מפורסם המסמך הזה. אז אנחנו חוזרים להוסט והמסמך הזה, ראינו שפרסמנו אותו בכתובת הזאת: HTTP/127.0.0.1, פורט 60.65 והוא נגמר ב-WSDL.
אז אני מעתיק את הכתובת הזאת, חוזר בחזרה לתוכנת הלקוח, ועכשיו אני רוצה להריץ ולהתחבר לשירות עצמו. בשביל שאני אוכל להתחבר לשירות, או יותר נכון לקובץ ה-WSDL, השירות חייב להיות באוויר פעיל בשביל לחשוף את המסמך הזה.
אז אני רואה כרגע שהקונסול הוסט שלי מושחר ולכן אם אני אריץ את התוכנית רק הוא ירוץ אז בואו נריץ אותה וכעת הקונסול רץ אז אני יכול לחזור לוויז'ואל סטודיו הרצתי את זה דרך אגב עם קונטרול F5 ולא F5 ועכשיו אני יכול ללכת לקונסיומר שלי ל-references מקש ימני ולהגדיר פה add service reference כאן נוצר לי טופס שאומר לי איפה בדיוק יושב
המסמך הזה של ה-WSDL ואנחנו יכולים להדביק את המסמך וללחוץ על go. אני רואה שהוא מאתר את המסמך, מצא לי שיש לי קונטרקט שנקרא, או יותר נכון סרוויס שנקרא קלקולטור, קונטרקט i-קלקולטור, שבו יש ארבע פונקציות.
עכשיו נקודה מאוד מאוד חשובה, זה ה-namespace. מה שקורה, הטופס הזה הולך ליצור לי מחלקות פרוקסי, שאני בתור קונסיומר הולך לעבוד עם המחלקות פרוקסי, ולא עם המחלקה האמיתית של הקלקולטור, מפני שאין לי גישה אליה.
היא גם לא יכולה להיות אצלי, היא חייבת לרוץ בשרת, כי יכול להיות שהיא משתמשת עם כל מיני משאבים שנמצאים בשרת. בגלל שהמערכת הולכת ליצור לי מחלקות אוטומטית, אז היא אומרת לי באיזה ניימספייס אתה רוצה שאני אגדיר את המחלקות האלה.
אז אנחנו כרגע נמציא איזשהו שם של ניימספייס בשביל שבתוכו יהיו המחלקות האלה, וחשוב שיהיה שם של ניימספייס הגיוני. אז בואו נקרא לזה פלקולטור דמו. עכשיו חשוב שהשמות של המרחבי שמות של הניימספייס יהיו תמיד טיפה שונים או לגמרי שונים משמות של מחלקות ושמות של אינטרפייסס אחרת זה יכול ליצור לנו צרות אם שם של ניימספייס
הוא זהה לשם של מחלקה. אוקיי, אחרי שהגדרתי את כל ההגדרות האלה אני לוחץ על אוקיי והמערכת מאתרת את קובץ ה-WSDL, מורידה אותו, בעצם אני רואה שהיא חושבת, ויוצרת לי כמה דברים בצד של ה-Consumer.
קודם כל אני רואה שהיא יצרה לי פה תיקייה של Service References ובו אני רואה את השירות שלי, Calculator Demo. בנוסף, אני רואה שהמלוכת הוסיפה לי קובץ AppConfig, ובו, אם אני אפתח אותו, אני אראה כל מיני הגדרות של איפה נמצא השירות, מה ה-Endpoint, אני יכול לראות כאן את ה-Endpoint,
Address, Binding, Contract, אוקיי, אני יכול לראות כל מיני הגדרות לגבי איפה נמצא השירות עצמו מבחינת איפה הוא באמת רץ, זה יהיה ב-Address, וכל הדברים האלה כתובים לי בקובץ AppConfig.
והקובץ הזה נבנה אוטומטית בצד של הלקוח. כל מה שנשאר לי לעשות עכשיו זה להיכנס ללחצן Add ולהשתמש עם מחלקות הפרוקסי בכדי להשתמש בשירות כשהאפליקציה רצה. אז בואו ניכנס ללחצן Add ונבנה אובייקט ממחלקת ה-Service.
והאובייקט שלנו, השם שלו תמיד יהיה שם של המחלקה, כלומר קלקולטור, עם הסיומט Client.