PracticU

Control Inheritance - הורשת פקדים

בלי כתוביותעם כתוביות
PracticU › קורס ASP.NET › Control Inheritance - הורשת פקדים
מילון מושגים:
ירושה - מנגנון בתכנות מונחה עצמים שבו מחלקה יורשת תכונות ופעולות ממחלקת אב, ויכולה להרחיב אותן.
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.
אתר אינטרנט - אוסף של דפים ומשאבים מקושרים המתארחים תחת כתובת אחת ומוגשים דרך דפדפן.
ספרייה - אוסף קוד מוכן, כמו פונקציות ומחלקות, שמפתחים משתמשים בו בתוכניותיהם במקום לכתוב הכול מחדש.
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.

Control Inheritance - הורשת פקדים
בשיעור הזה בונים רכיב משלנו על בסיס רכיב קיים, בעזרת הורשה. במקום לבנות דרופדאון מאפס, יורשים את DropDownList ומוסיפים לו יכולת שנשמרת ברכיב.
בניית ה-DLL
בונים פתרון עם שני פרויקטים: אתר אינטרנט ופרויקט Class Library. הספרייה מפיקה קובץ DLL, שאינו רץ לבד אלא נצרך על ידי אתר. מוסיפים לפרויקט הפנייה (reference) ל-System.Web, כי היא מכילה רכיבי רשת של ASP.NET.
המחלקה נקראה ChooseItemDropDownList והיורשת ממחלקת DropDownList. דורסים את המתודה OnPreRender שרצה שנייה לפני הרנדור. בתוכה קוראים קודם לגרסה המקורית (base.OnPreRender), ואז מוסיפים לתחילת הרשימה פריט עם הטקסט "בחר אחד מהבאים" והערך 0.
שימוש ברכיב באתר
- מוסיפים הפנייה ל-DLL לתיקיית Bin של האתר.
- בדף מוסיפים הפנייה (Register) עם שלושה נתונים: שם האסמבלי, שם הנמספייס (שזהה לשם ה-DLL בדמו) ושם הקידומת (TagPrefix). לאחר מכן משתמשים ברכיב כמו בכל רכיב ASP.NET, עם תגית בעלת הקידומת.
הגדרה אחת לכל האתר
במקום להוסיף Register בכל דף, אפשר להגדיר את הרכיב פעם אחת ב-web.config, תחת system.web, pages ו-controls. שם מוגדרים האסמבלי, הנמספייס והקידומת. מאז כל הדפים מכירים את הרכיב.
שימו לב
המרצה מציין שבפועל הרכיב מציג בתוך ה-HTML את הפריט הראשון שהוסף, ואפשר לבדוק זאת בתצוגת המקור של הדף.
בקצרה: יורשים רכיב קיים, דורסים את המתודה הנכונה, קוראים ל-base, ומגדירים את הרכיב פעם אחת ב-web.config.
השיעור הבא בקורס: User Controls

פרקי ההרצאה: Control Inheritance - הורשת פקדים

  1. 00:00

    הרחבת פקד קיים בהורשה

  2. 00:58

    יצירת Solution ואתר

  3. 02:16

    הוספת פרויקט DLL

  4. 04:28

    הוספת reference ל-System.Web

  5. 05:06

    דוגמת ה-DropDownList

  6. 06:43

    פריט ברירת מחדל ראשון

  7. 08:23

    הורשה מ-DropDownList

  8. 09:54

    דריסת פונקציה עם override

תמלול ההרצאה: Control Inheritance - הורשת פקדים

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

  1. 00:00

    אוקיי, אז בשיעור היום אנחנו הולכים לראות איך אנחנו יורשים פקד מוכן ובונים אותו משלנו. מה זאת אומרת? אנחנו ראינו שישנם כל מיני פקדי צד שרת של sp.net.

  2. 00:13

    פקד זה סך הכל רכיב גרפי שאנחנו יכולים להשתמש איתו, כמו תיבת טקסט, כמו לחצן, כמו drop-down list.

  3. 00:21

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

  4. 00:33

    אם אנחנו רוצים פקד דומה מאוד לפקד קיים, אבל שיש בו קצת יותר דברים, אבל אנחנו לא צריכים לבנות הכל מההתחלה, אנחנו יכולים לקחת את אחד הפקדים המוכנים ולהרחיב לו את היכולות על ידי כלי תכנותי שנקרא הורשה.

  5. 00:50

    זה הדבר הראשון שאנחנו הולכים לראות ואיך אנחנו פותחים את הפרויקטים המתאימים בשביל זה. קודם כל אנחנו הולכים לפייל ומגדירים New Website.

  6. 01:06

    בואו ניקח sp.net ונשמור אותו על הדסק-טופ. כאן יש לנו את הפרויקט של האתר אינטרנט שלנו.

  7. 01:41

    אנחנו יכולים להוסיף לו דף ראשון, נקרא לו הום-פייג', ויש לנו פה את האתר שלנו, אנחנו יכולים לראות שהאתר רץ.

  8. 02:12

    מעולה. עכשיו אנחנו צריכים להוסיף עוד פרויקט לסולושן. מה ההבדל בין פרויקט לבין סולושן? פרויקט מאפשר לנו לפתח מוצר אחד, לדוגמה אתר אינטרנט, לדוגמה תוכנת הרצה רגילה שהיא לא אתר אינטרנט.

  9. 02:35

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

  10. 02:54

    מכה שימנה על הסולושן Add New Project. פרויקט שאנחנו בוחרים נקרא Class Library. פרויקט Class Library מייצר לנו קובץ עם סיומת DLL. נקרא גם קובץ DLL. קובץ DLL זה סך הכל קובץ שמחזיק בתוכו רכיבים ולא מסוגל לרוץ בעצמו, אלא אתר אחר או תוכנה אחרת

  11. 03:20

    צורכים את הרכיבים שבתוכו. אז בואו נפתח את ה-DLL, גם כן נשים אותו בדסטופ, ונקרא לו My Control Library. בתוך ה-Dלל הזה אנחנו רואים שיש לנו קובץ שנקרא Class1.cs, קובץ C-Sharp רגיל שמתאר קלאס.

  12. 03:58

    קלאס, אפשר להגיד שזה רכיב חדש שאנחנו בונים. בשביל לבנות את הרכיב שאנחנו רוצים לבנות, בואו נוסיף קודם כל עוד dll לפרויקט dll שלנו על ידי מקשי מניאל רפרנסס לבחירה ב-add reference וה-dll שאנחנו רוצים להוסיף נמצא בתיקייה בכרטיסייה .NET והוא נקרא system.web.

  13. 04:37

    הרפרנס הזה שאנחנו מוסיפים מכיל בתוכו רכיבים שקשורים לעולם ה-Web. אני רואה שאני יכול לראות כאן את ה-reference שהוספתי לפרויקט ה-DLL שלנו.

  14. 04:55

    אוקיי, אז בואו נחשוב איזה רכיב אנחנו הולכים לבנות שירחיב את רכיבי ה-Web הקיימים. אז בואו נחזור רגע לאתר וננסה לראות איזה רכיב אנחנו יכולים להוסיף לו יכולות.

  15. 05:13

    אנחנו מכירים את הרכיב ASP.2 drop-down list. ניתן לו ID, ניתן לו run את שווה server, ואנחנו יכולים להוסיף אליו פריטים.

  16. 05:48

    בואו נניח שאנחנו מוסיפים זכר ונקבה. נריץ את האתר, יש לנו drop-down list, כלומר רכיב Select ב-HTML שמכיל זכר ונקבה, אבל אני רואה שאוטומטית ברגע שהרכיב הזה עלה, הפריט שנקרא זכר והפריט הראשון שקיים לי.

  17. 06:31

    יש לפעמים ברכיבים כאלה פריטים שהפריט הראשון בהם זה לא באמת פריט, אלא זה פריט שאומר למשתמש לבחור אחד מהפריטים הבאים.

  18. 06:43

    אנחנו רוצים בדיוק דבר כזה לבצע אצלנו אבל אני לא רוצה בכל פעם שאני משתמש בדרופ דאון ליסט ללכת ולהוסיף את הפריט הראשון כפריט כזה כלומר אני לא רוצה ללכת ולהוסיף דבר כזה חר אחד מהבאים אם בוא נניח איזשהו value 0 אם אני אעשה את הדבר הזה זה כמובן יעבוד בואו נסתכל חר אחד מהבאים ואני יכול לבחור זכר או נקבה זה כמובן יעבוד אבל זה והצריך ממני לכתוב את זה

  19. 07:25

    שוב ושוב בכל drop-down list שאני משתמש בו. אני רוצה שה-drop-down list ידע אוטומטית לעשות את זה. ה-drop-down list הסטנדרטי שנקרא ASP.2 drop-down list כמובן לא יודע לבצע את הדבר הזה, ולכן אני צריך לבנות drop-down list משלי ולהרחיב לו את היכולות כך

  20. 07:46

    שתהיה לו יכולת אוטומטית שהוא מוסיף את הדבר הזה כפריט ראשון בכל פעם. ולכן אם אני רוצה שזה יהיה לי אוטומטית, אני אשתמש עם הדרופ דאון ליסט שלי ולא עם הדרופ דאון ליסט של המערכת.

  21. 07:59

    אוקיי, אז אחרי שאנחנו יודעים איך עושים את זה, בואו נעשה את זה. נשנה רק את הכיוון ל-RTL.

  22. 08:20

    ואנחנו חוזרים לקובץ ה-DLL שלנו. אנחנו הולכים למחלקה או לקלאס שכתובה כאן. בואו קודם כל נשנה את השם של הקלאס ל-Choose Item Dropdown List.

  23. 08:45

    השאלה שנשאלת כרגע זה האם המערכת רוצה שאני אשנה גם את השם של הקלאס בקובץ כך שיהיה זהה לשם הקובץ ובדרך כלל נהוג לבצע yes וכעת יש לי קובץ c-sharp שהשם שלו זה choose item drop-down list ובתוכו יש קלאס שנקראת choose item drop-down list אנחנו רוצים להרחיב את היכולות של drop-down list הקיימת ולכן

  24. 09:10

    אנחנו צריכים לבצע פעולה שנקראת הורשה או inheritance ולרשת בצורה כזאת עם נקודותיים את drop-down list כעת גם הקלאס שאנחנו בנינו היא גם כן drop-down list זהה לגמרי לדרופ דאון ליסט אבל ההבדל היחידי זה שאני יכול להוסיף עליה עוד דברים אוקיי איזה דברים אנחנו רוצים להוסיף אז ישנה פונקציה שניתן להגיע אליה על ידי כתיבת override שזה בעברית

  25. 09:56

    דריסה אני רוצה לדרוס פונקציה קיימת שנקראת

לקורס המלא: קורס ASP.NET אונליין

ההרצאה הקודמת: Master Page

ההרצאה הבאה: User Controls

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

  • הורשה - Inheritance
  • הורשה בג'אווה - inheritance
  • Application Control - צ'ק פוינט - חלק 1
  • מחלקות ירושה - Classes Inheritance

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

  • קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט
  • קורס דוט-נט - NET Core. - עם Rest API
  • קורס MVC
  • קורס Git ו-GitHub עם Visual Studio