PracticU

שימוש בתבניות מוכנות - Scaffold

בלי כתוביותעם כתוביות
PracticU › קורס MVC › שימוש בתבניות מוכנות - Scaffold
מילון מושגים:
תבנית - מבנה בסיסי מוכן שממנו יוצרים פריטים דומים, כמו תבנית עמוד או תבנית מסמך.
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.
Entity Framework - ספריית מיקרוסופט שממפה בין אובייקטים בקוד לבין טבלאות במסד נתונים, ומאפשרת לעבוד עם הנתונים בלי לכתוב SQL ישיר.
פריימוורק - מסגרת תוכנה שמספקת מבנה וכלים מוכנים לפיתוח יישומים, כדי לחסוך כתיבת קוד חוזר.
POST - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.
GET - שיטת HTTP לבקשת מידע מהשרת בלי לשנות אותו. הפרמטרים מועברים בדרך כלל בכתובת.
ספרייה - אוסף קוד מוכן, כמו פונקציות ומחלקות, שמפתחים משתמשים בו בתוכניותיהם במקום לכתוב הכול מחדש.

שימוש בתבניות מוכנות - Scaffold
Scaffold הוא תבנית מוכנה של MVC שבונה אוטומטית קונטרולר ו-Views עבור מודל, כך שכמעט לא צריך לכתוב קוד ב-View בעצמנו. ההרצאה מדגימה את זה על המוצרים שנבנו בעבר.
השלבים העיקריים
1. קונטרולר אוטומטי: מסירים את ה-Product Controller הישן ומוסיפים קונטרולר חדש מסוג MVC Controller with Empty Read-Write Actions, שמתחבר ל-Entity Framework.
2. העתקת הקוד הקיים: מעתיקים אל הפונקציות החדשות את ה-error handler, את החיבור לדאטה בייס ואת הקריאות לשכבת ה-Business Logic.
3. Create: ב-POST שומרים את המוצר ומפנים לפונקציית האינדקס. אם יש שגיאה מחזירים את אותו View כדי שהמשתמש יתקן. הפרמטר הוא אובייקט Product ולא FormCollection.
4. Edit: שם הפונקציה נשאר Edit, כי זה מתאים יותר ל-Entity Framework. ה-GET מביא את המידע וה-POST שומר אותו.
5. Delete: יש שתי פונקציות, אחת מציגה את אישור המחיקה והשנייה מוחקת.
6. יצירת Views: בקליק ימני על כל פונקציה בוחרים Add View ובוחרים strongly typed view עם המחלקה Product. בלי זה התבנית לא תעבוד.
7. התבניות: Index, Details, Create, Edit ו-Delete נבחרות כל אחת בתבנית המתאימה.
8. עיצוב: אפשר לשנות את הטבלה שנוצרה, להוסיף לה מסגרת, למרכז אותה או להסיר את שלושת הקישורים בכל שורה.
טעות נפוצה
המחיקה לא עבדה בהתחלה, כי טופס ה-Delete לא שלח את ה-ID של המוצר והמזהה הגיע כ-0. הפתרון היה להוסיף שדה נסתר עם ה-ProductID, ואחרי התיקון המחיקה הצליחה.
בסוף ההרצאה יש אתר עם כל הפעולות הבסיסיות על המוצרים, והלוגיקה נמצאת בספרייה נפרדת בשכבות.
השיעור הבא בקורס: ולידציה - Validation
מילון מושגים:
קוד מקור - הקוד שמפתחים כותבים בשפת תכנות, לפני הידור, המגדיר את פעולת התוכנה.
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).

להורדת קוד מקור של כל הדוגמאות בקורס MVC – לחץ כאן


פרקי ההרצאה: שימוש בתבניות מוכנות - Scaffold

  1. 00:00

    מה זה Scaffold ב-MVC

  2. 00:39

    ה-Controller שכתבנו בעצמנו

  3. 01:20

    שינוי שם ה-Controller הקיים

  4. 01:54

    Controller עם Read Write Actions

  5. 02:47

    ניקוי הקוד שנוצר

  6. 03:23

    העתקת הקוד הקיים לפונקציות

תמלול ההרצאה: שימוש בתבניות מוכנות - Scaffold

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

  1. 00:01

    הדבר הבא שאנחנו הולכים לראות, זה איך להשתמש בטמפלייט של MVC ליצירת כל ה-Views שמקודם עבדנו איתם. הטמפלייט הזה נקרא Scaffold, Scaffold באנגלית זה פיגום או שלד, שמאפשר לנו לבנות אוטומטית את כל ה-Views שאנחנו בנינו, בלי שנצטרך לכתוב פחות או יותר שורת קוד אחת בתוך ה-View,

  2. 00:22

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

  3. 00:44

    שיש לנו פה Product Controller, ואנחנו פשוט בנינו את כל הפונקציות האלה בעצמנו. בתוך כל פונקציה יש לנו כמובן את הגישה ל-Database וביצוע הפעולות.

  4. 00:55

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

  5. 01:14

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

  6. 01:35

    אז שינינו את הדבר הזה ואנחנו הולכים להוסיף קונטרולר חדש שנקרא product controller. כעת אנחנו רואים שיש לנו פה טמפלייט scaffolding options template יש לנו כאן אפשרות להשתמש ב-empty mvc קונטרולר שזה מה שהשתמשנו תמיד ואז mvc נתנה לנו קונטרולר שיש בו רק פונקציית אינדקס אחת ריקה.

  7. 02:01

    אנחנו יכולים לבחור פה כמה דברים נוספים אנחנו יכולים לבחור ש-MVC תייצר לנו את הקונטרולר הזה שיש בו כבר Read-Write Actions ולומר לנו שהיא הולכת להתחבר עבורנו ל-Entity Framework.

  8. 02:14

    בגלל שכבר יש לנו Entity Framework אז אנחנו לא צריכים להתחבר אליה אלא לבצע MVC Controller with Empty Read-Write Actions וזה אומר שכל הפונקציות של ה-Read-Write ושל ה-Delete הולכות להיות אוטומטית בתוך הקונטרולר.

  9. 02:29

    יש לנו כאן עוד טמפלייטים שנגיע אליהם בהמשך של API, אנחנו נראה את זה בסרטונים בהמשך. אז יש לנו פה mvc controller with empty read-write actions, בואו נעשה לו add ואוטומטית אנחנו נראה את כל הפונקציות שאנחנו כתבנו אותן בעצמנו מוכנות וריקות לשימוש ובכל מקום שאנחנו צריכים להשלים מידע יש לנו כאן את השורה שאומרת לנו בואו

  10. 02:52

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

  11. 03:16

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

  12. 03:34

    לדוגמה, יש לנו כאן את ה-error handler שהגדרנו מעל ה-controller, נגדיר אותו, יש לנו כאן את הפגישה לדאטאבייס, נשים אותה כאן, כאן אנחנו צריכים להגדיר את המרחב שמות המתאים, וגם כאן להגדיר את ה-Business Logic.

  13. 03:56

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

לקורס המלא: קורס MVC אונליין בעברית

ההרצאה הקודמת: שימוש במודל השכבות - N-Tiers

ההרצאה הבאה: ולידציה - Validation

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

  • שימוש ב-useEffect - חלק 1
  • שימוש ב-ModelState
  • בדיקות מקרי שימוש
  • שימוש בנתונים מ-CSV

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

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