
הטקסט המלא של הדקות הראשונות בהרצאה «Proxy - Add Service Reference» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו עוברים לנושא של יצירת פרוקסי. אנחנו ראינו שכאשר קונסיומר מתחבר לווב סרוויס, אז מה שהוא צריך לעשות זה מכה שימניה לרפרנסז, לבחור Add Service Reference, ואז להוסיף את המיקום של קובץ ה-WSDL לכדי להתחבר למסמך הזה, להוריד אותו, וכך נוצר לי פרוקסי.
יש עוד כל מיני דרכים ליצירת פרוקסי ואנחנו יכולים לראות אותם. אבל ראשית, בואו נבין עוד משהו לגבי היצירה הקלאסית של פרוקסי על ידי Add Service Reference.
אז מה שנעשה, נוריד כרגע את הסרוויס הקודם, נעשה לו delete, נעשה delete לאפ קונפיג, נאתר את המיקום של קובץ ה-WSDL שיושב בשרת, נעתיק אותו, וניצור מחדש פרוקסי, מקאש ימני עד סרוויס רפרנס, נדביק, נבצע גו.
ואנחנו רואים שהפרויקט שלנו לא רץ, כלומר הסרוויס לא רץ ולכן הוא לא מצא אותו. אז בואו נריץ אותו, עכשיו אנחנו נוכל לעשות את זה. שוב, מכ"ש ימני, Add Service Reference, Paste, השגיאות קומפילציה זה מאחור בגלל שמחרקנו את ה-Service, וכעת הוא אמור למצוא אותו, ואכן הוא מוצא
אותו. אוקיי, אז בואו נראה כמה דברים בקשר לזה. ראשית, יש לנו כאן את הלחצן Discover. זה אומר שאם בסולושן שלי היה Web Service שרץ על IIS וכרגע נמצא באוויר מבחינת Developer Server, ומבחינת הסולושן קיים לי איי-אס סרוויס כזה, אז דיסקאבר היה מוצא אותו.
הדבר הבא שראינו זה שיש לנו כאן את הניימספייס שאנחנו חייבים לתת לו, בואו ניתן קלקולטור דמו, בכדי שמחלקות הפרוקסי שאנחנו צריכים להשתמש איתן בצד של הקונסיומר יהיו בתוך הניימספייס הזה, שיהיה כמובן בתוך הניימספייס של כל הפרויקט של הקונסיומר שלנו.
הדבר הבא שאנחנו הולכים לראות זה לחצן Advanced. כאן יש לי עוד כל מיני אופציות להגדיר, עבור ה-Web Service שלנו, יותר נכון ה-WCF Service שלנו.
דבר ראשון, יש לנו כאן Access Level, זאת אומרת, הרי מה שהולך להיווצר כאן זה פרוקסי, זה מחלקה שאנחנו עובדים איתה בצד של ה-Consumer, וכשאנחנו משתמשים עם הפונקציות שלה, היא בעצם, הפרוקסי הזאת, מפעילה את המחלקה האמיתית שנמצאת בצד של השרת.
בגלל שאנחנו יוצרים מחלקה, יש לנו אפשרות להגדיר האם המחלקה הזאת תהיה Public או Internal. אם אנחנו כותבים פרויקט וינפורם או כל פרויקט הערצה שהוא, אז כמובן אני לא רוצה להשתמש במחלקות האלה מחוץ לפרויקט ולכן אפשר להגדיר אותם כאינטרנל, זה קצת יותר סקיורט.
אם הייתי בונה DLL שהיה משתמש ב-Web Service שלנו, או ב-WCF Service יותר נכון, אז היה כדאי להגדיר אותם כ-Public בכדי להשתמש עם המחלקות האלה מחוץ ל-DLL, אם אנחנו רוצים.
אז בואו נגדיר את זה כרגע כאינטרנל. יש לנו כאן צ'קבוקס לגבי Generate Asynchronous Operations. אם אנחנו רוצים להפעיל את הפונקציות שלנו של הסרוויס בצורה אסינכרונית יש לנו אפשרות לסמן את זה ואז המערכת יוצרת לנו פונקציות אסינכרוניות בשביל להפעיל בטרד נפרד את הפונקציות של ה-WCF סרוויס.
בהמשך אנחנו נראה איך בדיוק עושים את זה. יש לנו נתונים לגבי הדאטה טייפס. אם אנחנו משתמשים בכל מיני מחלקות משלנו שאנחנו בנינו בוא נניח מחלקה פרסון או מחלקה אמפלואי או בנק אקאונט וכולי.
אז כאשר אנחנו מחזירים את האובייקטים הללו מהסרוויס או כאשר אנחנו שולחים אותם אנחנו יכולים להגדיר כל מיני הגדרות לגבי כיצד האובייקטים האלו ישלבו בתוך המידע שמועבר מהלקוח לשרת ומהשרת ללקוח.
ואחת הדרכים זה לקחת איזשהו אובייקט מסוים ולשים אותו במקום אחר בתוך ההודעה והמקום הזה נקרא הדר או מסאג'. ואנחנו יכולים להגדיר כאן שבמידה והגדרנו בשרת במחלקות האלה, במחלקות מידע,