
הטקסט המלא של הדקות הראשונות בהרצאה «Advanced Features - Reuse Types» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הדבר הבא שאנחנו הולכים לראות בטופס של Advanced Features של Add Service Reference זה איך אנחנו מבצעים Reuse Types. קודם כל בואו ניצור לעצמנו איזשהו טייפ ב-DLL נפרד.
אז מה שנעשה, נוסיף DLL, New Project, נבחר ה-Class Library וה-DLL הזה אמור להיות DLL שמחזיק לנו כל מיני מחלקות מידע שאנחנו צריכים להשתמש איתן גם ב-Client וגם ב-Server.
אז נקרא לו Business Entities Library. עכשיו יש לנו פה קלאס אחת שנשנה אותה לשם number info וזאת מחלקה מחלקת מידע שאמורה לתת לנו מידע לגבי מספר אוקיי אז יש לנו כאן את המספר עצמו יש לנו פה משתנה בולעני שאומר is positive יש לנו משתנה בולעני שאומר is even האם הוא זוגי האם הוא מספר חיובי ובוא נניח שזה מספיק לנו כרגע אז המחלקה הזאת זאת מחלקת מידע שמספקת לנו מידע לגבי מספר.
ואנחנו רוצים להשתמש איתה בקלקולטור שלנו. אז קודם כל נצרף את המחלקה, או יותר נכון את ה-DLL Business Entities, לקלקולטור ליבררי. נלך ל-References, Add Reference, נבחר את Business Entities ונצרף אותו.
ועכשיו אנחנו יכולים לבנות פונקציה שמחזירה לנו מידע לגבי מספר. אז יש לנו פה עוד פונקציה שמחזירה Number Info. נקרא לה getNumberInfo והיא תקבל איזשהו intNumber בואו נממש את הפונקציה הזאת במחלקה כלקולטור נלחץ ctrl נקודה enter אני רואה שכבר פה למטה ונבנה אובייקט
מטיפוס numberInfo נעדכן אותו במשתנים numberInfo נקודה number שווה למספר שהתקבל numberInfo נקודה is positive שווה האם המספר שלנו יותר גדול מאפס ו-Is Even האם המספר שלנו זוגי ואז אנחנו יכולים להחזיר את ה-Number Info.
אוקיי סיימנו עם השרת ועכשיו אנחנו הולכים לעבור ללקוח אבל בוא נניח שיש מקרה מאוד מיוחד שאנחנו כותבים גם את הצד שרת וגם את הצד לקוח ויש לנו הרבה מחלקות ב-DLL Business Entities ואנחנו רוצים פשוט שהלקוח ישתמש ישירות עם ה-DLL שלנו מכל מיני סיבות אז בואו נצרף את ה-DLL Business Entities גם ללקוח.
Add Reference, Business Entities, אוקיי. ועכשיו המחלקה Number Info כבר נמצאת בצד של הלקוח. אוקיי, בואו נראה איך זה משפיע עכשיו על התוכנית כאשר אנחנו מבצעים Add Service Reference.
אז ראשית, נעתיק שוב פעם את מיקום מסמך ה-WSDL, Control-C, ניגש ל-Service Reference, Add Service Reference, נדביק, ואני כבר רואה ששכחתי להריץ את הוסט אז אני אכבה את זה שנייה אני אלך לסט הסטארטאפ פרוג'קט אני אריץ את ההוסט ההוסט כרגע רץ נחזור לסרוויס רפרנס אד סרוויס רפרנס נעשה את זה שוב פייסט גו
והוא איתר לנו עכשיו מה שאני רוצה לעשות זה כזה דבר קודם כל לרשום פה כלקולטור דמו דבר שני אני רוצה ללכת לאדוונס ולראות מה קורה עם הרי יוז טייפס הזה שנמצא כאן אז דבר ראשון אני רואה שאני יכול לבצע ריוז טייפס אין אול רפרנס אסמבלי. מה זה אומר? זה אומר שהוא לא ישכפל אוטומטית את המחלקות שהווב סרוויס או יותר נכון ה-WCF סרוויס בצד השרת משתמש איתם אם
כבר קיימות לו מחלקות כאלה ובמקרה שלנו כבר קיימת לו מחלקה שנקראת number info ולכן הוא לא ישכפל אותה קודם כל אני רוצה לראות מה יקרה אם אני כן אגיד לו לשכפל אז אם כן אני אגיד לו לשכפל וכל מה שאני אעשה אני אגיד לו ריוז טייפס אין ספסיפיק אין סליחה ספסיפייד רפרנס אסמבליז, ואני אבחר את כל האסמבליז הרגילים של המערכת.
בואו נבחר את כולם. יש לנו פה עוד שלושה לבחור. אחת, שתיים, שלוש. ושימו לב שלא בחרתי את ביזנס אנטיטיז. זאת אומרת, שאלותי לו, אל תבצע רי-יוז.
אל תבצע רי-יוז לרכיבים שנמצאים בתוך ה-Business Entities Library, זאת אומרת שאתה צריך בעצם להביא לי מהשרת את נאמבר אינפו.
בואו נבצע אוקיי, אוקיי, ונסתכל כרגע מה יש לנו בתוך הפרוקסי. אז נציג את כל הקבצים ונאתר את מחלקת הפרוקסי. הנה היא כאן, זה הכובד שלה, ואני רואה שהוא משכפל לי את המחלקה נאמבר אינפו למחלקה האחרת לגמרי, כאילו שזאת לא המחלקה שנמצאת בתוך ה-DLL
שלי, כי למעשה זאת לא המחלקה שנמצאת בתוך ה-DLL שלי, זאת מחלקה אחרת שכביכול מיוצרת אוטומטית בפרוקסי.
זה מה שהוא עושה תמיד למחלקות שמגיעות מהצד של השרת. אוקיי, עכשיו אם אנחנו נלך ונייצר איזשהו אובייקט לגבי הסרוויס ונראה איך זה מתנהג, אנחנו נראה שיש לנו כרגע שתי מחלקות.
אז יש לנו פה את האובייקט של הסרוויס,