
ASP.NET Core Web App מגיע עם קבצי CSS, JavaScript וספריות שמתאימים לבניית אתר אינטרנט, בעוד שפרויקט Windows Forms Application מכיל קבצים שמתאימים לבניית תוכנה חלונאית (desktop).Add > New Project, ואז בוחרים את סוג הפרויקט המתאים (למשל ASP.NET Core Web App לאתר).Dependencies ולבצע Add Project Reference, ולסמן את הפרויקט הרצוי.Set as Startup Project.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Solution ב-Visual Studio» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כמה מילים על הקונספט של פרויקט. כאשר אנחנו בוויז'ואל סטודיו מדברים על פרויקט, זה נשמע שאנחנו הולכים לבנות משהו שהוא מאוד מאוד גדול, עם אולי הרבה מתכנתים, והמון המון קבצים.
זה יכול להיות נכון, אבל מבחינת וויז'ואל סטודיו, וגם מבחינת סביבות פיתוח אחרות, קודם כל כשאנחנו רוצים לפתח משהו, אנחנו צריכים לבנות את הקונספט של פרויקט.
אפילו שיש בו רק קובץ אחד ויחיד, ושאני מדפיס רק בקובץ הזה שורה אחת שמדפיסה לי הלו על המסך. זה עדיין עכשיו פרויקט או פרויקט מבחינת סביבת הפיתוח.
כל הרשימה הזאת שמופיעה פה זה פשוט טמפלייטים לפרויקטים, שמכילים סדרה ספציפית של קבצים שסביר להניח שאנחנו נצטרך עבור הפרויקטים האלה.
לדוגמה, אם אנחנו רוצים לבנות אתר אינטרנט, בואו נבחר קודם כל פה את C-Sharp, ובואו נבחר כאן. יש לנו פה וב, בואו נבחר וב אולי, והנה אנחנו רואים, asp.net core, וב-app, app זה אפליקציה, זה בעצם מקביל לאתר אינטרנט.
אם אנחנו פותחים את זה ואומרים לו next, הוא נותן לנו פה עוד כל מיני הגדרות של שם הפרויקט לדוגמה, בואו נגיד שאנחנו בונים animal website. ואני אומר לו next, משאיר את ה-default, next, ו-visual studio פותח.
תלנו איזשהו פרויקט כמובן, בואו נסתכל על solution explorer, ושימו לב, יש פה לא מעט קבצים מוכנים ששייכים לאותה מערכת של אתר אינטרנט, יש לנו פה את הקבצי צור וקבצי ג'אבה סקריפט וספריות נוספות, ממש תבנית שכנראה אני אצטרך בשביל לבנות מערכת שהיא אתר אינטרנט.
אפשר לסגור פה את ה-Welcome Page, אם אנחנו כרגע נריץ את זה בעזרת Ctrl F5, נפתח לנו האתר אינטרנט, אנחנו יכולים לראות שזה פשוט דמו של איזשהו אתר שהיה בקבצים האלה.
בואו נבצע סגירה ונחפש פרויקט אחר, נלך לכאן ונפתח משהו אחר לגמרי, בואו ננסה לפתוח, נוריד רגע את ה-Web, בואו ניקח את Windows Forms Application, זה בעצם תוכנח חלון.
בואו נניח שאנחנו בונים איזשהו משחק ומה שאנחנו רואים שנפתח לנו זה בעצם פרויקט שמכיל קבצים שמאפשרים לייצר תוכנה חלונאית אם אנחנו עכשיו מריצים את זה על ידי Ctrl F5 נפתח לנו פורם שאנחנו יכולים להגדיל אותו שהוא יתפוס לנו את כל המסך כמובן שיש פה טכניקה לפיתוח שאפשר לשים פה כל מיני רכיבים
ויזואליים על התופס אבל זה לא אתר אינטרנט, זאת תוכנה חלונית. הקבצים שמשתתפים בפרויקט הזה שייכים לפרויקט מסוג Windows Forms Application, שמאפשרים לנו לבנות תוכנה כזאת שהיא כמו חלונות.
בואו נבצע רגע Close, נחזור בחזרה, ונבין מה זה הקונספט של סולושן שמאגד בתוכו מספר פרויקטים. בואו נניח שאנחנו באמת רוצים לייצר איזושהי אפליקציה, בואו נניח...
ניקח פרויקט Windows Forms כמו מקודם, נבצע Next, ובוא נניח שאנחנו רוצים לבנות פרויקט חלונאי, שהוא המשחק, בוא נגיד, המשחק X-Sigul, נקרא באנגלית Tick-Tack-Tock.
יכול להיות שאנחנו רוצים לבנות את המשחק עצמו, שזאת היא התוכנה החלונאית שאנחנו רוצים לבנות. אנחנו גם רוצים אתר אינטרנט בשביל שנפרסם את המשחק.
איזשהו אתר אינטרנט שלנו שהמשחק יהיה מפורסם בו שיוכלו נניח להוריד אותו מהאתר ובנוסף אנחנו רוצים עוד איזה שהוא פרויקט נפרד בשביל החישובים הלוגיים של המשחק x-sigul דורש כל מיני חישובים לוגיים ואנחנו רוצים להפריד את זה למערכת נפרדת אולי אז במצב כזה מה שאנחנו רוצים אנחנו רוצים שיהיה לנו
מספר פרויקטים שונים תחת אותה מערכת לכן מה שאנחנו עושים אנחנו מורידים את play solution end project in the same directory, לא מסמנים את זה, ואז יש לנו קובץ שהוא נחשב solution, שמאגד בתוכו את כל הפרויקטים, זה פה קונטיינר כזה לפרויקטים שונים.
אנחנו תמיד נקרא לקובץ הזה, solution name, בשם של כלל המערכת, לדוגמה, tic-tac-toe-gay. הפרויקט שאנחנו פותחים כרגע, זה פרויקט Windows Forms Application, והוא...
רק ממשק המשתמש. לדוגמה, GUI או UI, כן, UI User Interface, GUI זה Graphical User Interface, אז אנחנו יכולים לקרוא לזה Tic-Tac-Toe GUI בתור השם של הפרויקט, ו-Tic-Tac-Toe Game, זה בעצם כלל המערכת.
בואו נבצע Next. אז מה שנפתח לנו עכשיו זה בעצם ממשק המשתמש. של הפרויקט. כאן המשתמש הולך לראות את המסך של ה-X-SIGUL ומתקשר בעצם עם המחשב.
עכשיו אנחנו רוצים גם לבנות את אותו אתר אינטרנט. אנחנו רואים שיש פה היררכיה מסוימת, יש פה את הסולושן שאחראי על כלל הפרויקטים ששייכים, ויש לנו פה את הפרויקט הנוכחי שכרגע פתחנו.
אם יש לי פרויקט שלא קשור למערכת הזאת, אז אני לא יצרף אותו לאותו סולושן. אני לא מצרף הכל לסולושן, את כל הפרויקטים שאני מתעסק איתם. אנחנו פותחים מערכת שיש לה ייעוד מסוים נניח להיות בשחק x-igul כל הפרויקטים שאני רוצה לפתח שקשורים למערכת הזאת יהיו תחת הסלושן אם אני רוצה מחר לבנות פרויקט של חנות חיות הוא לא
יהיה חלק מהסלושן הזה כמובן הוא יהיה סלושן נפרד, פרויקט נפרד לא קשור בכלל לזה אז אנחנו רואים את הסלושן מתחתה בפרויקט אם אני רוצה להוסיף אייטם לפרויקט כמובן מקש אם אני על הפרויקט add New Item, Class, מה שבא לי.
אם אני רוצה להוסיף פרויקט חדש, אז אני הולך לרמת ה-Solution, Add, ואז אני רואה שהמערכת אומרת לי, טוב, פה התפקיד שלך זה להוסיף פרויקטים, או פרויקט חדש, או אולי אתה רוצה לצרף פרויקט קיים.
אז אנחנו רוצים לבצע Add New Project, ועכשיו לבחור את הפרויקט הבא בתור, בוא נניח שאנחנו רוצים פרויקט מסוג Web, כי אנחנו רוצים לבנות גם אתר אינטרנט שיפרסם את המשחק שלנו.
אז זה יהיה ESP.NET. core web app זה היה אתר אינטרנט בואו נבצע next זה נקרא לו tic tac toe website create והמערכת יצרה את האתר ושימו לב שיש לנו כבר שני פרויקטים באותו סולושן בואו נניח שאנחנו רוצים להוסיף עוד רכיב או ספרייה שתחיל רק את החישובים הלוגיים
של המשחק נניח שאנחנו רוצים להפריד את זה כי יש לי פה המון קוד שקשור לחישובים לוגים, אז אני מייצר עוד פרויקט, והפעם מה שאנחנו לוקחים זה יהיה פרויקט מסוג Class Library.
Class Library זה סוג של פרויקט מעניין שאומר, תשמעו, אני לא אומר לכם בדיוק מה אתם רוצים לפתח, אני נותן לכם לפתח הכל, אבל אני לא אתר אינטרנט או Desktop Application או WinForm או לא משנה מה. יש לי רק...
קוד שמסוגל לבצע מה שבא לכם, וכל פרויקט יכול להשתמש בי. אז אנחנו יכולים לקרוא לו לדוגמה, טיק טק טו, לוגיק. זה הפעולות הלוגיות שיש באותו משחק שאנחנו בונים, בואו נבצע קריאיט, והנה יש לנו סך הכל, קלאס עבור חישובים לוגיים בלבד.
אך אגב, הקלאס לייבררי זה בקיצור נקרא DLL, Dynamic Link Library, אז אולי אנחנו רוצים... עוד איזה שהוא DLL אבל שיחיל עזרים שאנחנו יכולים להשתמש איתם בעוד הרבה פרויקטים אחרים.
הנה פה יש לי את ה Recent Projects אז אנחנו יכולים כבר לבחור Class Library. Next. ולהגיד שזה בעצם General Utilities עזרים כלליים שאני יכול להשתמש איתם במגוון פרויקטים לא רק בפרויקט הזה בוא נניח שאני רוצה איזושהי פונקציה שבודקת לי האם מכרוזת היא באמת מספר כן או לא.
האם היא באמת מספר, אז כמובן שיש קוד שמאפשר לי לעשות את הדבר הזה, אבל אולי אני רוצה לבנות פונקציה ולהשתמש איתה מעכשיו בכל הפרויקטים שבהם אני עובד.
אז אפשר לעשות איזה General Utilities כזה כללי, שזה רק DLL, אפשר להשתמש איתו בכל פרויקט, בין אם זה Web, בין אם זה WinForm, והוא מכיל לי כל מיני עזרים, Utilities עזרים, כללים שאני כנראה אצטרך בהרבה פרויקטים.
אז אני מוסיף אותו, Next, Create, ובפרויקט הבא שאני אבנה של איזשהו חנות למוצרי קוסמטיקה, אני גם יוכל לקחת את הדיאל הזה בלי לכתוב אותו, פשוט רק לצרף אותו.
אז תראו, יש לנו כבר הרבה פרויקטים תחת אותו סולושן. מעניין. מה קורה אם אני רוצה להשתמש בפרויקט מסוים מתוך פרויקט אחר?
זה שפרויקטים נמצאים תחת אותו סולוסיון עדיין לא אומר שאפשר להשתמש בהם אז בואו נלך לנגומה לג'נרל יוטיליטיז הזה ונבנה פה איזושהי קלאס, בוא נניח נקרא לה numeric alter.
נבנה פה את אותה הפונקציה שאומרת האם באמת משהו מכרוזת זה מספר כן או לא. אז נניח שאנחנו רוצים שזה יהיה גם static, יש לנו פה public static boolean, is, סליחה בוא ניקח, is int.
האם איזושהי מכרוזת, היא integer כן או לא אז יש פה איזשהו קטע קוד שאנחנו צריכים לבנות כי אין איזה פקודה כזאת שאומרת לנו את הדבר הזה לפחות אני לא מכיר אז בואו נלך ונבנה exception בעצם אנחנו לא צריכים אפילו את הobject exception אנחנו נתפולים בצורה כזאת אם משהו קרה אז אנחנו מחזירים false
אם אנחנו פה יש לנו int נקודה parse בואו ננסה to