PracticU

Data Contracts

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

Data Contracts
השיעור מציג את Data Contract ו-Data Member, אטריביוטים שמגדירים איך מחלקת מידע מועברת בין הלקוח לשרת.
בניית מחלקת המידע
1. ב-DLL של השירות מוסיפים מחלקה NumberInfo עם מאפיינים (properties) ציבוריים: Number, IsEven, IsPositive ו-IsPrime.
2. משתמשים בפרופרטיז ולא במשתנים ציבוריים, כי רק פרופרטיז נשלחים ללקוח.
3. מוסיפים הפניה ל-System.Runtime.Serialization.
האטריביוטים
1. DataContract: מעל המחלקה.
2. DataMember: מעל כל פרופרטי שרוצים לשלוח.
פרמטרים של DataMember
1. Name: השם בהודעה. אפשר לשנות אותו בצד הלקוח.
2. Namespace: מרחב השמות של הנתון.
3. Order: הסדר של השדות בהודעת ה-XML.
4. IsRequired: האם השדה חייב להופיע בהודעה.
5. EmitDefaultValue: האם לשלוח ערך ברירת מחדל כשאין ערך.
שימוש בשירות
1. מוסיפים לממשק פונקציה GetNumberInfo שמקבלת מספר ומחזירה NumberInfo.
2. במחלקת השירות ממלאים את המאפיינים: זוגיות, חיוביות, ראשוניות (בדיקה עד השורש הריבועי של המספר) והמספר עצמו.
3. בלקוח מעדכנים את ההפניה ומציגים את הערכים. למשל 17 מוצג כראשוני, ו-123 מוצג כחיובי, לא זוגי ולא ראשוני.
בלי האטריביוטים המידע נשלח בברירת מחדל, בלי שליטה על השמות והסדר.
השיעור הבא בקורס: Multiple Contracts

פרקי ההרצאה: Data Contracts

  1. 00:00

    מחלקת מידע NumberInfo ו-Data Contract

  2. 01:00

    הגדרת Properties במקום שדות

  3. 02:37

    System.Runtime.Serialization ו-DataMember

  4. 03:30

    פרמטרי Name ו-Namespace של Data Contract

תמלול ההרצאה: Data Contracts

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

  1. 00:20

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

  2. 00:35

    אז בואו נבנה לצורך הדוגמה מחלקה כזאת. נוסיף לפרויקט של ה-DLL שלנו קלאס, נגדיר שהקלאס הזאתי היא NumberInfo, כלומר אינפורמציה לגבי מספר שהקלקולטור יכול להחזיר.

  3. 00:52

    יש לנו כאן number info והוספנו מחלקה. עכשיו איזה data member אנחנו רוצים שיהיו לנו במחלקה הזאת? קודם כל נגדיר אותה כpublic ומה שקורה זה שdata member הרי זה משתנה. לדוגמה אם אני הייתי פותח פה public boolean is even משתנה שמתאר האם המספר הוא זוגי או לא.

  4. 01:22

    כלומר אם הוא true המספר הוא זוגי. אז המשתנה הזה לא היה מגיע ללקוח. מה שמגיע ללקוח זה אך ורק properties לכן אנחנו צריכים להגדיר פרופרטיז. נגדיר prop, tab, tab, boolean, is, even.

  5. 01:45

    נגדיר prop, tab, tab, boolean, is, positive. נגדיר prop, tab, tab, boolean, נגדיר משתנה שנקרא בוא נניח isPrimary, האם המשתנה של, האם המספר שאנחנו מדברים עליו זה מספר ראשוני כן או לא, ולבסוף נגדיר prop, tab, tab,

  6. 02:16

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

  7. 02:37

    נאתר אותו והוא נמצא ב-DLL שנקרא System Runtime Serialization. בואו נצרף את ה-Dלל הזה, Add Reference, נאתר אותו פה, System Runtime Serialization, נבצע אוקיי, וכעת אנחנו אמורים למצוא אותו ברשימת ה-Using.

  8. 03:02

    Using System Runtime Serialization. אוקיי, אז אם אנחנו רוצים בעצם לשלוט על המידע, לשנות אותו, כלומר על השמות של המשתנים, להגדיר כל מיני דברים בנוגע אליהם, אז אנחנו יכולים להשתמש באטריביוט Data Member.

  9. 03:22

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

  10. 03:49

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

  11. 04:19

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

  12. 04:33

    בואו נגדיר HTTP נגדיר כאן מייקלקולטור או .com/numberinfo אוקיי בנוסף יש לנו is

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

ההרצאה הקודמת: Contract Attributes

ההרצאה הבאה: Multiple Contracts

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

  • Data Driven Test - חלק 1
  • Variables and Data Types
  • הסבר על Data Warehouse
  • Send Data to Activity

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

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