מייקרוסופט רצתה לתת מענה לפיתוח מערכות שהן לאו דווקא פועלות על windows.
קיצורים:
CTRL+F5 – מריץ בלי debug.
F5 – מריץ עם debug.
במקום שתהיה תיקייה של references שהבעיה איתה שיש הפניות לקבצים מקומיים ואז הם לא בטוח הולכים עם הפרוייקט וגם אם כן משתנה להם הנתיב, מוסיפים תוספים דרך nuget אז נשמרת הגרסה, ואם הקבצים לא קיימים בפרוייקט הם ירדו מהשרת המתאים. כשנריץ את הפרוייקט. ואז הקוד יתקמפל בכל מקום.
אם יש DLL ארגוני שרוצם לעבוד איתו, עוטפים אותו כ-Package ושמים בשרת האירגוני.
אם יש שני פרוייקטים באותו solution, אפשר לעשות reference מאחד לשני.
פרוייקט API
פרוייקט API אומר שאנחנו מפתחים את צד ה-server, שיכול לקבל בקשות שמגיעות מ-clients ולהחזיר תשובות.
האפליקציה מתחילה בקובץ program.cs. אין לנו class כניסה.
Global Using
אנחנו רואים שאין לנו בקובץ using. צריך להבין איפה הם. יש לנו איזה קובץ global using ואז לא צריך להגדיר לכל קובץ מחדש את כל שורות ה-using שלו.
אפשר כשמשתמשים ב-class לעשות using לקובץ שלה, אבל זה מיותר. מייצרים קובץ אחד בפרוייקט, נותנים לו שם GlobalUsing.cs ועושים using לקובץ שרוצים עם global לפני. את הקבצים משאירים נקיים.
נעשה using מקומי אם יש לנו את אותו class עם משמעות שונה בשני קבצים ואנחנו רוצים להוסיף שימוש באחד מהם.
קובץ Program
קובץ Program מתחלק לשני חלקים.
חלק ראשון שקשור לקונפיגורציות וסרויסים.
החלק השני מדבר על מה שקורה לבקשת http כשהיא מגיעה לשרת שלנו. כשבקשה מגיעה מה רוצים לעשות.
במקום החלק השני נכתוב את הקוד הבא:
app.Run(async (context) => {
await context.Response.WriteAsync("Hello World");
});
app.Run();
בכתיבת app.Run אנחנו אומרים שכל בקשה שאנחנו מקבלים תגיע לרכיב הזה. כל בקשה שמגיעה מייצרת context שה-class שלו הוא HttpContext. זה class שהוא מייצג בקשה שמגיעה מה-client ל-server והאובייקט הזה הוא instance אחד שמלווה את כל התהליך מהזמן שהבקשה הגיעה לשרת עד שהתשובה תחזור ללקוח.
ה-context מכיל את ה-request ואת ה-url שלו ואת ה-body ואת ה-response ועוד.
נריץ את הפרוייקט. זה קוד לא תקין לפעולות של API, אבל נראה שזה עובד.