PracticU

הסבר על Solution
ב-Visual Studio

בלי כתוביותעם כתוביות
PracticU › קורס דוט-נט - NET Core. - עם Rest API › הסבר על Solution ב-Visual Studio
הסבר על Solution ב-Visual Studio
ההרצאה מסביר את שני המושגים המרכזיים בעבודה עם Visual Studio: פרויקט וסולושן, ומדגימה איך פרויקטים שונים משתפים ביניהם קוד.
מה זה פרויקט
פרויקט הוא תבנית (template) של קבצים שסביר להניח שיהיו דרושים לסוג מערכת מסוים - גם אם בפועל יש בו קובץ אחד ושורה אחת של קוד. לדוגמה, פרויקט מסוג ASP.NET Core Web App מגיע עם קבצי CSS, JavaScript וספריות שמתאימים לבניית אתר אינטרנט, בעוד שפרויקט Windows Forms Application מכיל קבצים שמתאימים לבניית תוכנה חלונאית (desktop).
מה זה סולושן
כאשר מערכת מורכבת ממספר פרויקטים נפרדים - למשל משחק עם ממשק משתמש (Windows Forms), אתר אינטרנט לפרסום המשחק, וספריית חישובים לוגיים נפרדת - כל הפרויקטים האלה מאוחסנים תחת קובץ אחד שנקרא Solution, שמשמש כמעין מיכל (קונטיינר) לכולם. פרויקט שלא קשור לאותה מערכת לא מצטרף לאותו סולושן אלא מקבל סולושן נפרד משלו.
השלבים העיקריים
1. הוספת פרויקט נוסף לסולושן: עושים קליק ימני על הסולושן ובוחרים Add > New Project, ואז בוחרים את סוג הפרויקט המתאים (למשל ASP.NET Core Web App לאתר).
2. פרויקט מסוג Class Library: זהו סוג מיוחד של פרויקט (מכונה גם DLL) שלא מיועד לסוג אפליקציה מסוים, אלא מכיל קוד כללי (למשל פונקציות עזר) שאפשר להשתמש בו ממספר פרויקטים אחרים.
3. קישור בין פרויקטים: כדי שפרויקט אחד (למשל ממשק המשתמש) יוכל להשתמש בקוד מפרויקט אחר (כמו ה-Class Library), צריך לגשת ל-Dependencies ולבצע Add Project Reference, ולסמן את הפרויקט הרצוי.
4. קביעת פרויקט ההפעלה (Startup Project): כשיש כמה פרויקטים באותו סולושן, צריך לקבוע איזה מהם ירוץ בלחיצת Ctrl+F5 - עושים זאת בקליק ימני על הפרויקט הרצוי ובחירת Set as Startup Project.
שימו לב
היות לפרויקטים באותו סולושן עדיין לא אומר שהם "מכירים" זה את זה אוטומטית - חובה להוסיף הפניה (reference) מפורשת בין הפרויקטים כדי להשתמש בקוד המשותף.
בסיום ההרצאה מבינים איך לבנות מערכת רב-פרויקטית, לשתף קוד בין חלקיה ולשלוט באיזה פרויקט רץ בכל פעם.
השיעור הבא בקורס: מערכת NuGet התקנת ספריות

פרקי ההרצאה: הסבר על Solution ב-Visual Studio

  1. 00:00

    הקונספט של פרויקט

  2. 00:37

    טמפלייטים ואתר ASP.NET Core

  3. 02:11

    פרויקט Windows Forms

  4. 03:07

    קונספט ה-Solution לריבוי פרויקטים

  5. 05:32

    היררכיית Solution ופרויקטים

  6. 06:42

    הוספת פרויקט אתר אינטרנט

  7. 07:53

    פרויקט Class Library כ-DLL

  8. 09:42

    בניית פונקציה ב-Class Library

תמלול ההרצאה: הסבר על Solution ב-Visual Studio

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

  1. 00:02

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

  2. 00:17

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

  3. 00:28

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

  4. 00:42

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

  5. 00:52

    לדוגמה, אם אנחנו רוצים לבנות אתר אינטרנט, בואו נבחר קודם כל פה את C-Sharp, ובואו נבחר כאן. יש לנו פה וב, בואו נבחר וב אולי, והנה אנחנו רואים, asp.net core, וב-app, app זה אפליקציה, זה בעצם מקביל לאתר אינטרנט.

  6. 01:13

    אם אנחנו פותחים את זה ואומרים לו next, הוא נותן לנו פה עוד כל מיני הגדרות של שם הפרויקט לדוגמה, בואו נגיד שאנחנו בונים animal website. ואני אומר לו next, משאיר את ה-default, next, ו-visual studio פותח.

  7. 01:31

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

  8. 01:55

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

  9. 02:09

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

  10. 02:25

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

  11. 02:52

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

  12. 03:07

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

  13. 03:23

    ניקח פרויקט Windows Forms כמו מקודם, נבצע Next, ובוא נניח שאנחנו רוצים לבנות פרויקט חלונאי, שהוא המשחק, בוא נגיד, המשחק X-Sigul, נקרא באנגלית Tick-Tack-Tock.

  14. 03:41

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

  15. 03:53

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

  16. 04:14

    מספר פרויקטים שונים תחת אותה מערכת לכן מה שאנחנו עושים אנחנו מורידים את play solution end project in the same directory, לא מסמנים את זה, ואז יש לנו קובץ שהוא נחשב solution, שמאגד בתוכו את כל הפרויקטים, זה פה קונטיינר כזה לפרויקטים שונים.

  17. 04:36

    אנחנו תמיד נקרא לקובץ הזה, solution name, בשם של כלל המערכת, לדוגמה, tic-tac-toe-gay. הפרויקט שאנחנו פותחים כרגע, זה פרויקט Windows Forms Application, והוא...

  18. 04:51

    רק ממשק המשתמש. לדוגמה, GUI או UI, כן, UI User Interface, GUI זה Graphical User Interface, אז אנחנו יכולים לקרוא לזה Tic-Tac-Toe GUI בתור השם של הפרויקט, ו-Tic-Tac-Toe Game, זה בעצם כלל המערכת.

  19. 05:14

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

  20. 05:27

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

  21. 05:40

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

  22. 06:05

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

  23. 06:22

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

  24. 06:34

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

  25. 06:46

    אז זה יהיה ESP.NET. core web app זה היה אתר אינטרנט בואו נבצע next זה נקרא לו tic tac toe website create והמערכת יצרה את האתר ושימו לב שיש לנו כבר שני פרויקטים באותו סולושן בואו נניח שאנחנו רוצים להוסיף עוד רכיב או ספרייה שתחיל רק את החישובים הלוגיים

  26. 07:15

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

  27. 07:30

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

  28. 07:48

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

  29. 08:09

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

  30. 08:25

    הנה פה יש לי את ה Recent Projects אז אנחנו יכולים כבר לבחור Class Library. Next. ולהגיד שזה בעצם General Utilities עזרים כלליים שאני יכול להשתמש איתם במגוון פרויקטים לא רק בפרויקט הזה בוא נניח שאני רוצה איזושהי פונקציה שבודקת לי האם מכרוזת היא באמת מספר כן או לא.

  31. 08:49

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

  32. 09:00

    אז אפשר לעשות איזה General Utilities כזה כללי, שזה רק DLL, אפשר להשתמש איתו בכל פרויקט, בין אם זה Web, בין אם זה WinForm, והוא מכיל לי כל מיני עזרים, Utilities עזרים, כללים שאני כנראה אצטרך בהרבה פרויקטים.

  33. 09:15

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

  34. 09:29

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

  35. 09:42

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

  36. 09:59

    נבנה פה את אותה הפונקציה שאומרת האם באמת משהו מכרוזת זה מספר כן או לא. אז נניח שאנחנו רוצים שזה יהיה גם static, יש לנו פה public static boolean, is, סליחה בוא ניקח, is int.

  37. 10:19

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

  38. 10:42

    אם אנחנו פה יש לנו int נקודה parse בואו ננסה to

ההרצאה הקודמת: עבודה עם פרויקט Console - דוט נט NET Core.

ההרצאה הבאה: מערכת NuGet - התקנת ספריות

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

  • הגדרות של Visual Studio
  • Docker & Visual Studio
  • התקנה של Visual Studio
  • יצירת פרויקט ב-Visual Studio

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

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