PracticU

WebAPI - C-SHARP

בלי כתוביותעם כתוביות
PracticU › קורס אנגולר 4 עם Angular - WebAPI › WebAPI - C-SHARP
מילון מושגים:
Entity Framework - ספריית מיקרוסופט שממפה בין אובייקטים בקוד לבין טבלאות במסד נתונים, ומאפשרת לעבוד עם הנתונים בלי לכתוב SQL ישיר.
פריימוורק - מסגרת תוכנה שמספקת מבנה וכלים מוכנים לפיתוח יישומים, כדי לחסוך כתיבת קוד חוזר.
מודל - רכיב שמייצג את הנתונים ואת הלוגיקה העסקית באפליקציה. גם ייצוג מופשט של מערכת או תהליך.
POST - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.

WebAPI - C-SHARP
ההרצאה מסבירה כיצד השרת שומר את ההזמנה בבסיס הנתונים באמצעות Entity Framework, בעבודה עם אובייקטים ולא עם פקודות SQL.
שמירת הלקוח
1. הקונטקסט: נפתח אובייקט של הקונטקסט של המודל השני, ומתווספים לאוסף Customers הלקוח שהתקבל בבקשת ה-POST.
2. מזהה לקוח: שדה מזהה הלקוח הוא מחרוזת באורך חמישה תווים ללא ספירה אוטומטית. לכן השרת מגריל מספר ומשתמש בו כמזהה. ההרצאה מציינת שיש סיכוי קטן לכפילות, שבמקרה כזה ההזמנה לא תיקלט.
שמירת ההזמנה
1. יצירת הזמנה: נוצר אובייקט Order שמצביע על אובייקט הלקוח שנוסף. הקשר נשמר בטבלת Orders בעמודת מזהה הלקוח בלי לכתוב אותה ידנית.
2. מזהה הזמנה: השדה OrderID הוא מספור אוטומטי, והשרת מקבל אותו רק אחרי השמירה לבסיס הנתונים.
פירוט ההזמנה
1. לולאה: עוברים על כל פריט בסל הקניות, ומשייכים לכל פריט את אובייקט ההזמנה ואת הכמות שנשלחה מהלקוח.
2. הוספה: הפריטים מתווספים לאוסף הפירוט בעזרת AddRange.
3. שמירה: SaveChanges שולח את הכול לבסיס הנתונים בבת אחת, ורק אז מתעדכן מזהה ההזמנה באובייקט.
בדיקה וסיכום
בטבלאות Orders, Order Details ו-Customers נמצאו הרשומות המתאימות להזמנה. בשלב זה הכמות נקבעה זמנית ל-1 והייתה תיקון בהמשך. הקשר בין הלקוח, ההזמנה והפירוט נשמר אוטומטית דרך האובייקטים.
השיעור הבא בקורס: Bootstrap Grid

פרקי ההרצאה: WebAPI - C-SHARP

  1. 00:00

    פתיחת מודל הנתונים וקונטקסט הדאטאבייס

  2. 01:00

    הוספת לקוח חדש לאוסף Customers

  3. 02:51

    שמירת הלקוח ויצירת אובייקט הזמנה חדש

  4. 03:29

    חיבור ההזמנה לאובייקט הלקוח

  5. 04:41

    לולאת For Each לשיוך פירוטי ההזמנה

  6. 05:21

    הוספת כמות לפירוטי ההזמנה

  7. 05:57

    הוספת טווח פירוטים לטבלה Order Details

  8. 06:36

    שמירת כל השינויים לשרת SQL

תמלול ההרצאה: WebAPI - C-SHARP

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

  1. 00:02

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

  2. 00:21

    ואני צריך את הקונטקסט שלו, שקראתי לו North Entities 2 כנראה ועכשיו נעשה אובייקט חדש, נקרא לו DB2, יופי ואנחנו רוצים להתחיל לשמור את הנתונים. נתחיל לשמור את ה-client db2.customers בטבלת ה-customers.

  3. 00:42

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

  4. 01:00

    פוסט פראמס נקודה קליינט פוסט פראמס נקודה קליינט איך אני יודע איזה סוג נתונים זה תסתכלו אני לוחץ פה F12 ואני רואה שהקליינט הוא מאותו סוג קסטומר אז אין לי בעיה להוסיף אותו אז אני מוסיף אותו לאוסף רק יש משהו קטן שיש פה בעיה שהשדה של ה-ID שלו תכף אני אראה לכם הוא לא מיוצר אוטומט זאת אומרת שבקסטומרס זה משהו יחסית נדיר לדעתי

  5. 01:28

    אבל הם עשו שבקאסטמרס דיזיין, תסתכלו, השדה של איי-די שלו, שזה שדה חובה כי הוא מפתח ראשי, הוא מסוג n-car 5, כאילו 5 אותיות או מספרים, ואין לו אדנטיטי. אדנטיטי זה אומר שהוא סופר לבד 1, 2, 3, ברור שהוא לא סופר 1, 2, 3, כי זה לא מספר, זה אותיות.

  6. 01:50

    אז אני צריך להמציא איזשהו מזהה בעצמי, אחרת לא ייתן לי לעשות אותו, כי אין לי פה מזהה. אז האמת שאני לא יודע מה לעשות, איך אני מציל לו את המזהה שלו, אז בוא נעשה איזשהו רנדום, נקרא לזה RND, אובייקט של רנדום ופשוט נעשה שpost params client.customerid שווה random.next שיעשה לי איזשהו מספר שממנו מתחילים, נניח נתחיל ממספר 100 ועד מספר,

  7. 02:20

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

  8. 02:43

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

  9. 03:05

    order והוא באמת יהיה אובייקט חדש מסוג ההזמנה ובאובייקט הזה אנחנו צריכים לשייך אותו new order אנחנו צריכים לשייך אותו לcustomer שלנו זאת אומרת לשייך בין ההזמנה ללקוח אז אני אומר תקשיב ההזמנה החדשה מצביעה על אובייקט של ה-Customer הקודם, אוקיי?

  10. 03:27

    קחו ב-Identity Framework, שימו לב, עשיתי Customer. עכשיו אני עושה Order, ובתוך ה-Order יש לי פה מזהה שמחבר את זה לכאן.

  11. 03:38

    אז פה אני מחבר אותו, ואחרי זה אני אגיד ב-Order Details, אני אכניס פה את ה-Order הזה. יפה מאוד. אתם רואים, ה-Customer, זה מחובר לכאן.

  12. 03:49

    בטמלה הזאת של Orders, אם אנחנו נסתכל עליה, אורדר איידי הוא מסוג אינט שזה מספר ויש פה אדנטיטי זה אומר שהוא סופר לבד 1, 2, 3 אוטומטית אז אנחנו רק שייכנו ומוסיפים אותו לאוסף של דאטאבייס את האובייקט החדש שיצרנו לטבלת orders add new order זאת אומרת יצרנו אובייקט חדש של ההזמנה עשינו לו

  13. 04:13

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

  14. 04:24

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

  15. 04:37

    אז אנחנו רוצים לעבור על כל Order Details, כי זה List, זאת רשימה, ולעשות לולאה שעוברת על כל אחד. זה כמו לולאה רגילה של For, אבל יש לנו את ה-For each, ואנחנו אומרים ככה: עבור כל אובייקציה, לא יודע מה עבור כל הזמנה, בואו נעשה לו עבור כל x, עבור כל אובייקט.

  16. 04:58

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

  17. 05:12

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

  18. 05:26

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

  19. 05:38

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

  20. 05:51

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

  21. 06:16

    רואים יש לי כבר כאילו array ואני משייך לו את כל המערך של order details אז עברתי על המערך של order details ועבור כל אחד שייכתי לו הזמנה שייכתי לו כמות והוספתי אותו למה שקורה אצלי בדאטאבייס אבל שימו לב כל הדאטאבייס הזה קיים בזיכרון של שרת web בלבד רק כשאני עושה save

  22. 06:38

    changes זה נשלח לשרת sql רק פה save to sql ואחרי שזה נשמר בsql אני

לקורס המלא: קורס אנגולר 4 אונליין עם WebAPI

ההרצאה הקודמת: WebAPI - Post Params

ההרצאה הבאה: Bootstrap Grid

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

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React