
הטקסט המלא של הדקות הראשונות בהרצאה «שינוי מרחב השמות - Namespace» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כעת אנחנו הולכים לראות איך להגדיר בצורה נכונה את מרחב השמות שכל המערכת שלנו צריכה לעבוד איתו.
אנחנו יודעים שמרחב שמות זה בעצם מעטפת שמית, כלומר רק שם שעוטף טיפוסי נתונים כמו מחלקות, סטרקטים, אינאם, דלגייט ואינטרפייס.
זאת אומרת שזה איזשהו שם שאנחנו נותנים ועוטפים איתו מחלקה שאנחנו בונים בכדי למנוע כפילות שמות בין מחלקות בעלות אותו השם שמגיעות אלינו מפרויקטים אחרים.
כך אנחנו יכולים לבצע הפרדה בין מחלקות שאנחנו כותבים לבין מחלקות שנמצאות לדוגמה ב-DLLים אחרים ובמקרה נתנו להם את אותו השם. כאשר אנחנו פותחים פרויקט MVC אוטומטית שם המרחב שמות הזה הוא שם של הפרויקט.
כל קונטרולר שאנחנו משתמשים איתו יש לו מרחב שמות משלו שזה השם של מרחב השמות הכללי עם השם קונטרולר או כל מודל זה שם המרחב השמות הכללי עם השם מודל. כלומר יש לנו פה המון המון שמות של מרחבי שמות ש-MVC אוטומטית נותנת לנו וזה לא בהכרח מה שאנחנו רוצים.
למה חשוב לדעת איך להגדיר מראש את מרחב השמות? כי כאשר אנחנו בונים מערכת רצוי מאוד שיהיה לנו איזשהו מרחב שמות משלנו שהשם שלו לדוגמה זה שם המוצר או שם החברה שלנו ובתוכו אנחנו מגדירים את כל המחלקות שאנחנו בונים.
וחשוב לעשות את זה על ההתחלה בכדי שמחלקות חדשות שאנחנו נוסיף כל הזמן הם יהיו בעלי המרחב השמות החדש שאנחנו הגדרנו.
אז אם אנחנו הולכים ופותחים פרויקט חדש, כאן אנחנו רואים שיש שם עבור ה-Solution, כלומר הקובץ שמאגד בתוכו את כל הפרויקטים השונים שמרכיבים את המערכת כולה. וכאן יש לנו שם עבור הפרויקט MVC בלבד, לא קשור ל-DLלים אחרים שאנחנו אולי נרצה להוסיף למערכת.
אז כרגע אנחנו ניתן לפרויקט שם ואוטומטית ה-Solution יקבל את השם הזה. לדוגמה זה יהיה "Changing", ניימספייס, וזה מה שאנחנו הולכים לעשות.
חשוב מאוד להשאיר Create Directory for Solution בכדי שתיווצר תיקיית M עבור כל הפרויקטים השונים, זאתי תיקיית ה-Solution, ונבצע אוקיי.
נבחר שוב פעם ב-empty ונצרף איזושהי מחלקה בשביל לראות מה הכוונה. נלך ל-Models, נבצע Add Product, או יותר נכון Class Product, ניתן לה את השם Product, ואוטומטית אנחנו רואים שיש לנו את השם ChangingNamespace, שזה השם שנתתי לכל הפרויקט.
נקודה מודל, וזה לא מה שאנחנו רוצים, אנחנו בכלל חברה אחרת, יש לנו מוצר אחר, אנחנו רוצים שם משלנו, ואנחנו גם לא רוצים בדרך כלל שזה יהיה עם נקודה באמצע.
אז איך נכון לבצע את זה מלכתחילה? בואו כרגע נמחק את המחלקה הזאת לגמרי, כי עד ההתחלה אנחנו צריכים לעשות משהו אחר. מה שצריך לעשות זה לגשת לאפ סטארט. באפ סטארט אנחנו ניגשים לאחד מהקבצים, זה לא משנה איזה, אנחנו רואים שיש לו מרחב שמות שזה השם של הפרויקט לכן כל פעם שאנחנו נצרף מחלקה זה יהיה מרחב השמות אנחנו יכולים לראות שההגדרה איפה מרחב השמות הזה
ניתן נמצאת פה בפרופרטיז תחת דיפולט ניימספייס אוקיי אז אנחנו חוזרים לקובץ הזה שמצאנו פה באפסטארט זה לא משנה איזה ומשנים את המרחב שמות לשם שאנחנו רוצים שיהיה תקף עבור כל המחלקות שאנחנו בונים אנחנו נקרא לו עכשיו פרקטיק יו אחרי שהגדרנו את השם הזה שימו לב שתוך כדי
הקלדה יש לנו פה את הקו האדום הזה שהוא מאוד מאוד חשוב, הוא נקרא Smart Tag ומה שהוא אומר לנו זה שכדאי לנו מאוד ללחוץ על קונטרול נקודה בכדי שהוא יאפשר לבצע את השינוי עבור כל השמות בפרויקט.
לכן אני לוחץ קונטרול נקודה או קונטרול צדיק סופית אם המקלדת בעברית ואני רואה שיש לי פה Rename Changing Namespace to Practic U אני לוחץ enter ואז הוא שואל אותי שאלה מאוד חשובה האם אני רוצה שהשינוי הזה לא רק יתבצע על הקובץ הנוכחי אלא מעכשיו והלאה זה יהיה מרחב השמות הדיפולטי עבור כל מחלקה חדשה
שאנחנו נוסיף. אנחנו לוחצים על yes ואנחנו הולכים לראות שזה בעצם מה שהוא כתב לנו פה בפרופרטיז כאן בדיפולט ניימספייס.
אוקיי זה אומר שכל מחלקה שאנחנו נוסיף היא תהיה בעלת מרחב שמות פרקטיק U. אין בעיה בואו נחזור את זה אנחנו יכולים לסגור וללכת להוסיף עכשיו את המחלקה product שמקודם הוספנו נוסיף product ונראה שמרחב השמות הראשי הוא