PracticU

הסבר על MVC

בלי כתוביותעם כתוביות
PracticU › קורס אנגולר 4 עם Angular - WebAPI › הסבר על MVC
מילון מושגים:
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).
.NET - פלטפורמת פיתוח של מיקרוסופט להרצת יישומים בשפות כמו C#, הכוללת ספריות וסביבת ריצה משותפות.
פריימוורק - מסגרת תוכנה שמספקת מבנה וכלים מוכנים לפיתוח יישומים, כדי לחסוך כתיבת קוד חוזר.
Entity Framework - ספריית מיקרוסופט שממפה בין אובייקטים בקוד לבין טבלאות במסד נתונים, ומאפשרת לעבוד עם הנתונים בלי לכתוב SQL ישיר.
API - ממשק תכנותי שמגדיר כיצד תוכנה אחת פונה לאחרת ומחליפה איתה נתונים ופעולות.
SQL Server - מערכת ניהול מסדי נתונים יחסיים של מיקרוסופט, הנשלטת בשפת T-SQL.
GET - שיטת HTTP לבקשת מידע מהשרת בלי לשנות אותו. הפרמטרים מועברים בדרך כלל בכתובת.
POST - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.

הסבר על MVC
ההרצאה מסבירה את ארכיטקטורת MVC (מודל, תצוגה ובקר) בצד השרת, ומדגימה אותה בפרויקט .NET Framework חדש. בהרצאה לא עובדים עם Angular, והמיקוד הוא בזרימה בין הלקוח לשרת.
בחירת הפלטפורמה
1. .NET Framework במקום Core: הפרויקט נבחר על בסיס .NET Framework כי הוא תומך בכלים הגרפיים של Entity Framework. ב-.NET Core אפשר לעשות את אותו הדבר, אבל רק בפקודות.
2. פרויקט ריק: לא משתמשים בדוגמאות מוכנות של Web API או MVC, כדי לבנות רק את מה שנדרש.
3. Webforms: טכנולוגיה ישנה שכבר לא נבחרת לפרויקטים חדשים, אך ארגונים רבים עדיין עובדים איתה, ולכן כדאי להכיר אותה.
שלושת החלקים
1. מודל: שכבת הנתונים. בהרצאה נוצר חיבור ל-SQL Server בעזרת Entity Framework, והוא הופך כל שורה בטבלת Products לאובייקט מסוג Product.
2. קונטרולר: הכתובת שאליה הלקוח גולש. הקונטרולר מביא את הנתונים מהמודל ובוחר את התצוגה שתוחזר.
3. תצוגה (View): דף HTML עם קוד Razor שמשלב את המידע. הלקוח מקבל HTML מוכן בלבד.
GET ו-POST
1. GET: הלקוח מבקש דף, למשל טופס עריכה של מוצר. המידע מופיע בכתובת, והשרת לא שומר דבר.
2. POST: הטופס נשלח עם התוכן בגוף הבקשה, והשרת שומר את השינוי בבסיס הנתונים.
3. הפניה (302): אחרי השמירה השרת מחזיר הפניה, והדפדפן עובר לדף הראשי. בכלי הפיתוח של הדפדפן (F12) ניתן לראות את שתי הבקשות. אפשר גם לעצור את השרת בנקודת עצירה (breakpoint) ולעבור שורה אחרי שורה.
MVC לעומת Web API
1. MVC: מחזיר HTML מלא, כלומר הלוגיקה והתצוגה נמצאות באותו מקום.
2. Web API: מחזיר נתונים גולמיים בלבד, וכל לקוח, כמו Angular, אחראי על התצוגה. זה הנושא של ההרצאה הבאה.
סיכום
ההרצאה מסתיימת בסקירת סוגי הקונטרולרים: קונטרולרים מוכנים עם Entity Framework, קונטרולר ריק וקונטרולר עם פונקציות מוכנות בלי קוד. בהמשך עוברים ל-Web API.
השיעור הבא בקורס: הסבר על WebAPI

פרקי ההרצאה: הסבר על MVC

  1. 00:00

    בניית צד שרת עם Web API ו-MVC

  2. 01:04

    ההבדל בין .NET Framework ל-.NET Core

  3. 02:38

    Webforms: הטכנולוגיה הישנה

  4. 04:42

    שלושת החלקים של MVC: מודל, תצוגה ובקר

  5. 05:41

    חיבור לדאטאבייס דרך Entity Framework

  6. 06:55

    חיבור לשרת SQL ושם ה-Instance

  7. 09:18

    ייבוא טבלת Products למודל

  8. 11:22

    סוגי הקונטרולרים: MVC ו-Web API

תמלול ההרצאה: הסבר על MVC

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

  1. 00:02

    שלום לכולם בהרצאה הזאת אנחנו נבנה צד שרת נעשה Web API ב-MVC ולמעשה בהרצאה הזאת אנחנו כמעט ולא נתעסק באנגולר בפרויקט של אנגולר אלא נעשה רק את הצד של השרת אז בואו נעשה רייט קליק ונוסיף פרויקט חדש למה אני עושה את זה בפרויקט חדש ולא בפרויקט הקיים כי הפרויקט החדש יהיה על בסיס פלטפורמת .NET Framework.

  2. 00:31

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

  3. 00:55

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

  4. 01:27

    פריימוורק אז אני רוצה להתחבר לדאטאבייס בצורה הגרפית ולא רוצה לתכנת ב-C-Sharp כי המטרה שלי כרגע זה ללמוד אנגולר ולא ללמוד C-Sharp אז אני רוצה להשתמש בכלים מוכנים הגרפיים אז אני צריך פרויקט שכולל גם את הכלים הגרפיים וזה נקרא .NET Framework שמבוסס על .NET Framework כל מה שאני עושה אפשר יהיה

  5. 01:50

    לעשות ב- .NETCore אבל בלי הגרפיקה אלא רק בפקודות אז אני בוחר פה .NET Framework ונותן לזה שם WebAPI/MVC Web API ו-MVC זה שתי טכנולוגיות מאוד דומות בצד של השרת ואנחנו בדיוק הולכים לראות איך זה עובד ומה זה אומר MVC ומה זה אומר Web API ולהדגים את כל זה.

  6. 02:13

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

  7. 02:28

    אני לא רוצה דוגמה מוכנה לא ב-Web API, או ב-MVC, יש להם גם דוגמה מוכנה של סינגל פייג' אפליקיישן, שזה למעשה מה שאנחנו עושים באנגולר. זה למעשה המתחרה של האנגולר, אפשר להגיד.

  8. 02:43

    אנחנו רוצים פרויקט ריק, ולשים בפרויקט הריק רק הכנות ל-Web API ו-MVC. ואנחנו תכף בדיוק, אני אדגים לכם מה ההבדל ביניהם, ואתם תבינו בדיוק מה זה אומר.

  9. 02:58

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

  10. 03:21

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

  11. 03:31

    הדבר הזה מאוד לא יעיל מבחינת הביצועים שלו והיום כבר לא משתמשים בו. היום לא משתמשים בזה בגלל שזה לא יעיל, כולם משתמשים או ב-MVC או ב-Web API. יש לנו קורס על Web Forms שנקרא קורס ה-sp.net.

  12. 03:48

    יש עדיין הרבה ארגונים שמשתמשים בטכנולוגיה הזאת בגלל שהפרויקט כבר קיים ולא רוצים למחוק את הכל ולהתחיל את כל הכתיבה מחדש. יש לי אתר שעובד ואני צריך להוסיף לו איזה כפתור או להוריד לו איזה משהו או להוסיף לו איזה כתובית קטנה אני נאלץ להיכנס לקוד הקיים לפרויקט הקיים ב-Webforms ב-sp.net

  13. 04:10

    הקלאסי מה שנקרא לחזור אחורה בזמן ולכן חשוב מאוד שגם אותו תכירו כי לך תדע באיזה פרויקט תיתקלו בעתיד דיברנו מספיק על Webforms ועל sp.net בואו נעבור ל-MVC ו-Web API MVC ו-Web API זה מה שהולך היום בשוק ולמעשה Web API מתחיל לנצח את ה-MVC ואנחנו הולכים לראות בדיוק איך זה עובד ואני הולך להדגים לכם.

  14. 04:37

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

  15. 04:55

    M זה מודל, זה דאטאבייס, הנתונים עצמם. View זה התצוגה של המידע שיחזור ללקוח. MV ו-C זה קונטרולר, זה לאן שהלקוח גולש. במילים אחרות, לקוח גולש לקונטרולר, הקונטרולר מביא מידע מהדאטאבייס, מהמודל, ומחזיר לקליינט את ה-View, את התצוגה.

  16. 05:21

    כרגע בתוך ה-View אין לי כלום, אין לי עדיין Views. בואו נתחיל מהדאטאבייס. אנחנו נתחיל באופן כללי מ-MVC ואז נעבור ל-Web API.

  17. 05:31

    ואני מניח שאתם לא מכירים מה זה Web API ומה זה MVC ואני מסביר לכם מאפס. אז במודל אמרנו זה הדאטאבייס, זה הרעיון של MVC. MVC, מודל View Controller.

  18. 05:45

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

  19. 06:02

    Entity Framework זה כלי שיודע להתחבר לדאטאבייס ולשלוף ממנו נתונים, ולעשות מכל שורה בדאטאבייס אובייקט שאיתו C-Sharp יודעת לעבוד, אובייקט נוח לעבודה.

  20. 06:16

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

  21. 06:45

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

  22. 07:11

    שלי הוא גם יושב כאן אבל אפשרי שהוא ישב מרוחק והוא שואל אותי מה השם של השרת שימו לב עכשיו אני פותח sql management studio sql Server Management Studio ומסתכל מה השם של השרת שלי.

  23. 07:30

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

  24. 07:48

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

  25. 08:07

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

  26. 08:22

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

  27. 08:34

    של sql תראו את זה ואומר לו לאיזה דאטאבייס להתחבר שימו לב אני רואה פה את רשימת הדאטאבייסים זה אומר שהחיבור הצליח אוקיי אז יש לי פה את החיבור והוא שואל איך לשמור את החיבור הזה ב-webconfig בקובץ ההגדרות שימו לב יש פה קובץ ההגדרות והוא שומר את החיבור הזה שזה הטקסט של ה-connection string של איך

  28. 08:57

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

  29. 09:10

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

  30. 09:33

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

  31. 09:46

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

  32. 10:18

    לעשות ריבילד הוא עשה עבורי בעצם את הקלאס של פרודקס קלאס ב-c-sharp שכולל אותם שדות כמו בדאטאבייס והוא הולך להתחבר לדאטאבייס לשלוף את כל המוצרים ולהפוך אותם לאובייקטים ולעשות את זה כרשימה מקושרת שנוח לעבוד איתה אני משאיר לו את כל העבודה הזאת לקובץ של אנטיטי פריימורק.

  33. 10:39

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

  34. 10:52

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

  35. 11:07

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

  36. 11:23

    הקונטרולרים של API מתחלקים לשני סוגים, הקונטרולרים הרגילים ו-O-Data. אנחנו נראה את כל הקונטרולרים אבל לאט לאט. נתחיל מ-MVC הרגיל ונראה מה זה MVC ונבין איך הוא עובד ואחרי זה נראה מה זה Web API אז נתחיל בהדגמה ככה חיה, נעשה MVC קונטרולר

לקורס המלא: קורס אנגולר 4 אונליין עם WebAPI

ההרצאה הקודמת: התקנה של SQL עם מסד נתונים Northwind

ההרצאה הבאה: הסבר על WebAPI

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

  • ארכיטקטורה של MVC

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

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React