PracticU

ממשק מותאם למובייל MVC

בלי כתוביותעם כתוביות
PracticU › קורס MVC › ממשק מותאם למובייל MVC
מילון מושגים:
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
קונטרולר - רכיב שמתווך בין הממשק לבין הלוגיקה והנתונים, מקבל בקשות ומחליט כיצד לטפל בהן (למשל בדפוס MVC).
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.
לייאאוט - ארגון וסידור הרכיבים החזותיים על המסך או בדף, כמו מיקום כפתורים, טקסט ותמונות.
תבנית - מבנה בסיסי מוכן שממנו יוצרים פריטים דומים, כמו תבנית עמוד או תבנית מסמך.
jQuery - ספריית JavaScript ותיקה שמפשטת את הגישה לרכיבי הדף, אירועים ואנימציות בדפדפן.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.

ממשק מותאם למובייל MVC
הרצאה על אתר MVC אחד שמגיש תצוגה לדסקטופ ותצוגה למובייל לפי דפדפן המשתמש, ועל הדרך לאפשר למשתמש לעבור לגרסה המלאה, או לבחור תצוגה לדפדפן מסוים.
השלבים העיקריים
1. הרחבת הקיים: מתחילים מקונטרולר ו-View רגיל לדסקטופ. יוצרים עותק של ה-View עם הסיומת Mobile באותה תיקייה, ו-MVC בוחר אותו אוטומטית לפי ה-User-Agent של הדפדפן.
2. Layout למובייל: גם התבנית (Layout) מקבלת גרסה עם סיומת Mobile. בהרצאה הוספו לה קישורי jQuery Mobile, ונבדק שהתצוגה מתחלפת כשמשנים את ה-User-Agent בכלי הפיתוח של הדפדפן.
3. הבטחת עקביות: DisplayModeProvider.Instance.RequiredConsistentDisplayMode = true מונע מצב שבו דף מוצג בגרסה אחת ו-Layout בגרסה אחרת. בלעדיו, כשחסר View למובייל, הדף מוצג בתצוגה מעורבת.
4. מעבר לגרסה המלאה: פעולה ב-Controller מקבלת את הכתובת הנוכחית, מבטלת את הדריסה של מצב התצוגה, ומפנה חזרה לאותו דף. כך מוסיפים קישור "הצג את האתר המלא" במובייל.
5. דפדפנים ספציפיים: ב-App_Start מוסיפים DefaultDisplayMode עם תנאי על מחרוזת ה-User-Agent, למשל iPhone ו-iPad, ומקבלים סיומות נפרדות לכל מכשיר.
פקודות והגדרות
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("iPhone") { ContextCondition = ... }), HttpContext.ClearOverriddenBrowser() ו-SetOverriddenBrowser(...). בכל View למובייל משתמשים באותו שם בסיסי עם הסיומת המתאימה.
שימו לב
View שאין לו גרסה למובייל יוצג בתצוגת דסקטופ גם בטלפון, לכן כדאי לשמור על אותו סט Views בשתי התצוגות. ההרצאה הציגה שמשתמשים בטלפון יכולים לבקש את גרסת הדסקטופ בעזרת הקישור שנבנה.
בסיום יודעים להגיש תצוגות שונות לאותו אתר לפי הדפדפן ולהציג מעבר בין הגרסאות.
השיעור הבא בקורס: יצירת שירות Web API
מילון מושגים:
קוד מקור - הקוד שמפתחים כותבים בשפת תכנות, לפני הידור, המגדיר את פעולת התוכנה.
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).

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


פרקי ההרצאה: ממשק מותאם למובייל MVC

  1. 00:00

    בניית Controller ו-View לדסקטופ

  2. 00:57

    הוספת Layout וצבע רקע לדסקטופ

  3. 01:52

    שתי שיטות להתאמת אתר למובייל

  4. 02:44

    יצירת View ו-Layout עם הסיומת Mobile

  5. 04:09

    החלפת User Agent ב-Developer Tools

  6. 05:05

    איך MVC בוחר View לפי User Agent

  7. 06:01

    שילוב jQuery Mobile ב-Layout המובייל

  8. 06:38

    מבנה דף מובייל ובדיקה כ-iPhone

תמלול ההרצאה: ממשק מותאם למובייל MVC

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

  1. 00:00

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

  2. 00:19

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

  3. 00:50

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

  4. 01:05

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

  5. 01:26

    נגדיר אפילו איזשהו סטייל background color light blue לרפרש. נראה שכרגע האתר שלנו נראה בצורה רגילה בדפדפן רגיל.

  6. 01:42

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

  7. 01:56

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

  8. 02:22

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

  9. 02:34

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

  10. 02:49

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

  11. 03:25

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

  12. 03:48

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

  13. 04:11

    למה בעצם אנחנו בדסטופ? אז אנחנו בדסטופ בגלל שהדפדופן עצמו מוגדר ככזה ששייך לעולם הדסטופ. אינטרנט אקספלורר 10 רגיל לגמרי. בואו נלחץ על F12, נגיע ל-Development Tools.

  14. 04:27

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

  15. 04:41

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

  16. 04:59

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

  17. 05:21

    במידה ואנחנו בדפדפן דסטופ רגיל ואנחנו גולשים ל-view index או ליתר דיוק ל-action index, בוא נניח נמצאת ב-controller home, פרויקט MVC יאתר בתיקיית home של views את ה-view index.cshtnl ואותה הוא ירנדר ללקוח.

  18. 05:42

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

  19. 05:56

    אז בואו לצורך הדוגמה נשנה את הלייאוט של מובייל לכזאת שתצליח להציג לנו גם איזשהו jQuery שמותאם למובייל.

  20. 06:08

    בואו ניכנס רגע ל-jQuery מובייל נלך ל-Downloads ונבצע הורדה של שלושת הלינקים שאנחנו צריכים להגדיר למשתמש בכדי שהוא יוכל לראות את jQuery Mobile.

  21. 06:27

    ניתן לראות את הלינקים כאן, נבצע קונטרול C, נדביק אותם ב-Layout אבל שימו לב שאנחנו נמצאים ב-Layout של ה-Mobile.

  22. 06:38

    ה-Layout הרגיל יהיה מוגדר שם כנראה jQuery רגיל. כעת נחזור ל-Index של מובייל ונגדיר פה מבנה של דף שמתאים למובייל. יש לנו דיו דאטה רול h דיו עם דאטה רול הדר דיו עם דאטה רול קונטנט ועוד אחד עם פוטר וכעת את ה-h2 הזאת נשים בהדר ואנחנו רואים בעצם שאנחנו ביצענו עכשיו איזשהו ui שמתאים למובייל ב-view

  23. 07:29

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

  24. 07:48

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

  25. 08:17

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

  26. 08:34

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

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

ההרצאה הקודמת: ממשק מותאם למובייל jQuery Mobile

ההרצאה הבאה: יצירת שירות Web API

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

  • הסבר על MVC
  • ממשק IEnumerable
  • ממשק גרפי של Git
  • הסבר על מה זה ממשק - API

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

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