
הטקסט המלא של הדקות הראשונות בהרצאה «Data Contracts» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הדבר הבא בנוגע לקונטרקטס נקרא Data Contract. Data Contract זהו אטריביוט שאנחנו יכולים לשים על מחלקה שאנחנו בונים, שאנחנו רוצים אובייקט ממנה לשלוח לשירות או לקבל בחזרה.
אז בואו נבנה לצורך הדוגמה מחלקה כזאת. נוסיף לפרויקט של ה-DLL שלנו קלאס, נגדיר שהקלאס הזאתי היא NumberInfo, כלומר אינפורמציה לגבי מספר שהקלקולטור יכול להחזיר.
יש לנו כאן number info והוספנו מחלקה. עכשיו איזה data member אנחנו רוצים שיהיו לנו במחלקה הזאת? קודם כל נגדיר אותה כpublic ומה שקורה זה שdata member הרי זה משתנה. לדוגמה אם אני הייתי פותח פה public boolean is even משתנה שמתאר האם המספר הוא זוגי או לא.
כלומר אם הוא true המספר הוא זוגי. אז המשתנה הזה לא היה מגיע ללקוח. מה שמגיע ללקוח זה אך ורק properties לכן אנחנו צריכים להגדיר פרופרטיז. נגדיר prop, tab, tab, boolean, is, even.
נגדיר prop, tab, tab, boolean, is, positive. נגדיר prop, tab, tab, boolean, נגדיר משתנה שנקרא בוא נניח isPrimary, האם המשתנה של, האם המספר שאנחנו מדברים עליו זה מספר ראשוני כן או לא, ולבסוף נגדיר prop, tab, tab,
את המספר עצמו. בואו נגיד אינטג'ר number. עכשיו, בכדי שהערכים אכן יגיעו ללקוח אנחנו צריכים להגדיר עבורם איזשהו פרופרטי שנקרא data member.
נאתר אותו והוא נמצא ב-DLL שנקרא System Runtime Serialization. בואו נצרף את ה-Dלל הזה, Add Reference, נאתר אותו פה, System Runtime Serialization, נבצע אוקיי, וכעת אנחנו אמורים למצוא אותו ברשימת ה-Using.
Using System Runtime Serialization. אוקיי, אז אם אנחנו רוצים בעצם לשלוט על המידע, לשנות אותו, כלומר על השמות של המשתנים, להגדיר כל מיני דברים בנוגע אליהם, אז אנחנו יכולים להשתמש באטריביוט Data Member.
מעל למחלקה שלנו אנחנו יכולים להשתמש באטריביוט Data Contract. אוקיי, אז איזה פרמטרים הם מקבלים? קודם כל יש את הפרמטר שנקרא name, name בעצם מציין מה השם שאנחנו רוצים להגדיר עבור המחלקה הזאת בצד של ה-client, כלומר איך היא אמורה להיקרא מבחינת פרוקסי.
אז בואו נניח שהשם בצד של השרת נקרא לזה number information. בואו אפילו נשנה את השם של הקובץ CS, כי יותר נכון שהשמות יהיו זהים. וכעת אנחנו רוצים לשנות את השם הזה מבחינת הפרוקסי בצד של הלקוח לנמבר אינפו רק בכדי להציג את השינוי שהולך להתבצע.
דברים נוספים שאנחנו יכולים להגדיר זה לדוגמה ניימספייס. מה הניימספייס שאנחנו רוצים להגדיר עבור המידע כאשר הוא מגיע בהודעת ה-XML שנשלחת מהלקוח לשרת או מהשרת הלקוח.
בואו נגדיר HTTP נגדיר כאן מייקלקולטור או .com/numberinfo אוקיי בנוסף יש לנו is