
ConnectionStrings (ברבים, כי יכולים להיות כמה דאטהבייסים), ובתוכו מפתח בשם הדאטהבייס (למשל Bookstore) עם מחרוזת ההתחברות..) מציינת שהדאטהבייס נמצא על אותו מחשב שבו רץ ה-REST API, ו-\SQLExpress מציין את גרסת SQL Server Express. אחריהם מופיע שם הדאטהבייס עצמו (Bookstore), ו-Trusted Connection עם Trust Server Certificate מציינים חיבור דרך הרשאות מערכת ההפעלה, בלי שם משתמש וסיסמה נפרדים.AppConfig) עם שדה מסוג IConfigurationRoot (שמייצג את כל תוכן קובץ ההגדרות).ConfigurationBuilder, מוסיפה אליו את קובץ ה-JSON (AddJsonFile) עם שם הקובץ המלא, ומבצעת Build (שימוש בדגם Builder Design Pattern).AppSettings.GetConnectionString("Bookstore") - כך אפשר לגשת למחרוזת מכל מקום בקוד בלי לקרוא את הקובץ בכל פעם מחדש.AppConfig.Configure() כדי לטעון את ההגדרות פעם אחת בהפעלת התוכנה.!) שמופיעים בקוד אומרים ל-C# שהמתכנת בטוח שהערך לא יהיה null, אף על פי שהמערכת לא יכולה להוכיח זאת מראש - כמו שנלמד בהקשר של route parameters בהרצאות קודמות.הטקסט המלא של הדקות הראשונות בהרצאה «יצירת מחרוזת התחברות למסד הנתונים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הפרויקט שאנחנו בונים ניגש לדטאבייס, אז הדבר הראשון שנרצה לבצע זה להגדיר את ה-connection string של הדטאבייס, שוב אני מזכיר אם לא ראיתם עדיין את המודול על דטאבייסים ו-SQL וגישה לדטאבייס ופעולות על הדטאבייס, חשוב שתעצרו ותראו קודם כל את הקורס ההוא, כי אנחנו הרי לא הולכים ללמד הכל מחדש, מה שאנחנו נרצה לבצע
זה לבנות את ה-connection string, שזאת המחוזת, שמאפשרת להתחבר לדטאבייס, ואנחנו בונים אותה ב-appsettings.json, שכבר קיים לנו פה כחלק מפרויקט rest API, בואו ניגש לכאן, ונבנה לנו איזה שהוא אובייקט חדש, והאובייקט הזה נקרא connection strings, ברבים, וזה בעצם אובייקט בקובץ ה-json, ובתוך ה-connection strings
ברבים, אנחנו רוצים, איזה שהוא שם שקשור לדטאבייס שלנו, בגלל שהדטאבייס שלנו נקרא בוקסטור, אז אני אקרא לזה בוקסטור בצורה כזאת, והוא יכיל את ה-Connection String, מכרוז את ההתחבות לדטאבייס.
אז יש לה מספר חלקים, קודם כל, איפה הדטאבייס נמצא? ברשת שאנחנו עובדים עליה. יכול להיות שהוא נמצא במחשב אחר, שיש למחשב הזה איזשהו שם, או טוב את ה-IP אדרס, אבל בגלל שהדטאבייס נמצא במחשב הנוכחי, איפה שהשרת בעצם רץ, איפה שהRST API רץ, אז אני כותב נקודה.
זה אומר, חפש את הדטאבייס במחשב הזה, מה נוכחי, איפה שהמערכת כרגע רצה. אם הדטאבייס הוא מסוג SQL Express, וזה בעצם הסוג שיש לנו, זאת הגרסה החינמית, אנחנו צריכים להוסיף כאן, backslash, backslash, SQL Express.
נקודה פסיק מעביר אותי לפרמטר הבא, איך אני רוצה שהדטאבייס ייקרא, או לאיזה דטאבייס להתחבר? הדטאבייס יהיה בוקסור. הדבר הבא, האם אני רוצה שיהיה לי שם משתמש וסיסמה לדטאבייס?
user id שווה, איזשהו שם משתמש, ו-password שווה איזושהי סיסמה. אנחנו כרגע לא נתעסק עם user name ו-password, אז נגיד לו תקשיב, בוא תיגש לדטאבייס דרך מערכת ההפעלה.
אם ליוזר יש גישה למערכת ההפעלה, אז התוכנה, אם לתוכנה בעצם יש גישה למערכת ההפעלה, אז היא יכולה לגשת לדטאבייס. זה נקרא...
Trusted Connection, והדבר הבא זה Trust Server Certificate, בצורה כזאת, ויש לנו כרגע את ההגדרה המלאה של ה-Connection String, אנחנו לא מתעסקים כרגע עם תעודה דיגיטלית, אנחנו אומרים לו זה בסדר, וה-Connection String מוכנה בקובץ הזה, Up Settings.
אנחנו רוצים שהתוכנה שאנחנו בונים כרגע, פעם אחת ויחידה, כשהתוכנה עולה, תיגש לקובץ ה-up settings, תשלוף את ה-connection string ותחזיק אותה באיזשהו משתנה, כי אני לא רוצה בכל מקום שאני צריך את ה-connection string להתחיל לקרוא את הקובץ הזה אנחנו רוצים לעשות את זה פעם אחת ואז כמובן המערכת
תשתמש במשתנה הזה שמחזיק את ה-connection string בשביל להתחבר לדטאבייס אנחנו רוצים לבנות באזור של ה-utils מחלקה, בואו נצרף class, תן נקראת up-config application configuration...
בואו נפטר רגע מה-extra namespace, ונשים נקודה פסיק. המחלקה הזאת היא מחלקה שמוגדרת כ-static, וזה אומר שכל מה שנמצא בתוך המחלקה חייב להיות static, ואני לא צריך אובייקט בשביל לגשת למאפיינים הסטטיים.
והדבר הראשון שאנחנו נרצה, זה אובייקט מסוג iConfigurationRoot. אני אקרא לו underlineAppSettings, הוא רוצה שמיד אני אכניס את תוך ערך, אני אגיד שהערך שיש בו הוא נל כרגע, עם סימן קריאה.
אז בואו נבין רגע מה זה. App Settings זה משתנה שיכול להכיל את מה שיש בקובץ, ה-App Settings. הסוג שלו זה Configuration Root. זה אומר שהוא מכיל את כלל הקובץ.
Root זה אומר כלל הקובץ. למה הכנסנו בתוכו נל סימן קריאה? ראינו את זה כבר. C Sharp אומרת, אתה חייב להחזיק. בתוכו איזשהו ערך, אוקיי?
אני יודע שאני כבר הולך להכניס בתוכו ערך, אז אני אומר שהוא נל, אבל הוא אומר לי, תקשיב, הוא לא יכול לקבל נל, אז אני שם לו סימן קריאה, והוא אומר לו, זה בסדר, אני כבר הולך להכניס בתוכו ערך אמיתי. אוקיי?
אם הייתי רוצה שהוא היה מכיל נל, הייתי שם סימן שאלה, אבל אני בין כה הולך להכניס בתוכו ערך, אז שמתי סימן קריאה. הדבר הבא שאנחנו בונים, זה public static void config.
זאת בעצם פונקציה, קונפיקציה שאנחנו רוצים לקרוא לה פעם אחת, שהיא בעצם ניגשת לקובץ הזה, שואבת ממנו את המידע, ושמה אותו בתוך. מה שאנחנו רוצים לעשות זה לפנות למשתנה, App Settings, ולהכניס את התכון New Configuration Builder.
זה אובייקט שמאפשר לבנות דברים, אנחנו בעצם קוראים ל-add json file, ונותנים לו את השם המלא של ה-json הזה. בואו נסמן, Ctrl-C, Ctrl-V, לאחר מכן אנחנו אומרים לו, הגדרתי את כל מה שצריך, בילד.
אנחנו יכולים להבצע את זה במספר פקודות, קודם כל תיקח את האובייקט, תשמור ומשתנה, ואז תיקח את זה ותשמור ומשתנה, ואז תעשה בילד, אבל זה מיותר.
זה נקרא builder design pattern. זה בעצם הצו שאנחנו מגדירים כל מיני הגדרות, אני רוצה את הקובץ הזה, אולי בהמשך יהיה עוד קבצים שאני רוצה להביא, ופשוט תבנה לי