מסד נתונים ב NET.
-
אוסיף על כל הנאמר לעיל שבסיסי נתונים זה תחום שדורש לימוד בנפרד, ושיטת ה code first היא ממש לצנינים בעיני.
שלב הכרחי לפני כתיבת התוכנה הוא תכנון מבנה בסיס הנתונים האופטימלי, וזה דורש ידע שפשוט צריך להשקיע ולרכוש אותו.
הבנה בבסיסי נתונים זה לא nice to have, חוסר ידע והבנה יגרום כאבי ראש רבים ברגע שהנתונים יתחילו להצטבר.פורסם במקור בפורום CODE613 ב31/05/2016 19:08 (+03:00)
-
גם לי היה מאוד תמוה כל הנושא של קוד תחילה, בא הפרימוורק ומנהל לך את הדטה ביס שזה הלב של המערכת והכל באופן אוטומטי ללא מגע יד אדם?!
אבל לאחר שהתחלתי קצת ללמוד את את הנושא ראיתי שבעצם יש מעלה עצומה כאשר מנהלים מחלקות קוד, במקום להתעסק עם הדטה ביס
אבל מצד שני יש המון הוראות שאפשר לתת ל EF איך לבנות את הדטה ביס על פי המחלקות שכתבת. למשל DataAnnotations ו Code First fluent API.
כך שאפשר להנות מכל היתרונות בבת אחת.פורסם במקור בפורום CODE613 ב31/05/2016 19:22 (+03:00)
-
אוסיף על כל הנאמר לעיל שבסיסי נתונים זה תחום שדורש לימוד בנפרד, ושיטת ה code first היא ממש לצנינים בעיני.
קודם כל קח בחשבון שהרבה מתכנתים שלא "בקטע" של מסדי נתונים או בכל בארכיטקטורת תוכנה (הרי לא צריכים את התארים הופלגים הללו כשעושים סקריפט של קובץ batch וכדומה), צריכים את הDB סה"כ כקובץ לשמירת נתונים ללא רוב היתרונות שלו ומכאן שהארכיטקטורה שלו לא קירטית ועשיי העניין ממנה מאוד עומדת בעוכרי הרעיון.
קח למשל logging, בהרבה תוכנות זה פרט שולי ובלי מבנה רציני מאידך קובץ טקסט מהווה בעיה בגלל מקביליות בגישה ועוד.אבל חוץ מזה לדעתי אחרי הכרת הcode first לעומק גם DBA יאהב את הקיצור דרך הזה שמקים את הארכיטקטורה דרך עולם הOOP.
פורסם במקור בפורום CODE613 ב31/05/2016 19:27 (+03:00)
-
גם אני מצטרף לכל הנ"ל :lol:
ואוסיף רק בנימה אישית - כמובן שחשוב ללמוד על ניהול בסיסי נתונים וכדו',
אבל זה כלל לא סותר שאת הגישה אליהם - אפשר ומומלץ (לענ"ד..) לעשות ע"י אנטיטי ובמיוחד דרך הקוד-פירסט.
כיון שגם לאחר שאתה יושב וחושב נכון איך לבנות את הדטה בייס, ואלו טבלאות אתה צריך ומה הקשרים שביניהם,
אז גם אחרי שתלך ותיצור את הדטהבייס שלך (כלומר את כל הטבלאות וכו'), אתה צריך לגשת אליהם מהקוד, לא? ואז אתה יכול להשתמש באנטיטי שיצור לך מחלקות מקבילות כדי שתוכל לעבוד מולם, ושהם יעבדו מול הדטה בייס.. כך שבסוף אתה עושה עבודה כפולה..
אז האם לא יותר פשוט ישירות לכתוב את הקוד בצורה שמתאימה לדטה בייס, ולתת לו לבנות את הכל מעצמו (מה עוד שכמו שאמרו כאן אתה יכול לשלוט ולהגדיר לו בדיוק את הקשרים וכו'), כך שבמחינתך אתה עובד רק מול קוד, והאנטיטי דואג לכל העניין של יצירת הדטהבייס ועדכונו בשינויים?!פורסם במקור בפורום CODE613 ב31/05/2016 19:50 (+03:00)
-
אברהם תחשוב שאתה מקים DB ענק, וכי אתה חושב על זה שתיגש מקוד כזה או אחר? לא הרי היום כהרי עוד שנה ולא הרי אתה כהרי מתכנתים אחרים שידרשו להתממשק למסד. גם החשיבה איך לאחסן ומה ובאיזה צורה הרבה יותר קריטית וארוכת טווח מההתנהלות מול האובייקטים שיתשאלו את המסד (שהם ככלב המלקק מן הים במקרים קלאסיים של מסדי נתונים של ממש) איך הם יהיו. זה כמו מי שיבנה את ביתו מבלוקים שמתאימים לצבע שיש לו במחסן.
החשיבה שלך נכונה במקרים בהם אתה המתכנת את כל השכבות, וכל ההיקף של הפרוייקט לא גדול מידי.
פורסם במקור בפורום CODE613 ב31/05/2016 20:00 (+03:00)
-
שוב תודה רבה לכל המגיבים
אם חשבתי שאני מתחיל ב- #C לקחתי את התואר שלא בצדק כיון שרוב מהדברים לא הצלחתי להבין בדיוק
אין לי יותר מידי טבלאות וקשרי גומלין להסתבך איתם, ונראה לי שאלך על הכיוון של Entity Framwork
אני באמצע לחקור אותו בד"ר גוגלפורסם במקור בפורום CODE613 ב31/05/2016 20:01 (+03:00)
-
אגב בכל הנושא של פיתוח מסד הנתונים (מיגרציות כמו שקוראים לזה בעולם ה code first) כשיש פיתוח מאסיבי ומשמעותי, וכשמדובר במוצר שיש לו כבר גירסת ייצור, מאוד קשה להתמודד עם זה (ראיתי קורס מתקדם בנושא והוא עושה שם הרבה דברים באופן ידני ובצורה מכוערת, מתעד כל שינוי כביכול שנעשה וכו'), ובשביל זה יש כלי מיוחד שנכתב עבור כל הנושא הזה והוא נקרא "visual studio database project" אני עובד איתו כבר קרוב לשנה, ואני יכול לומר שזה נותן יכולות פיתוח מטורפות, זה כלי מדהים אתה מפתח דטה בייס בויזואל סטודיו אמיתי (עם כלים של ריפקטורינג, שינוי שם עמודה יתפוס בכל המקומות שיש רפרנס!!!). ואז אפשר לעשות דיפלוי, הנתונים נשמרים והמבנה משתנה. אני לא יודע אם כשעושים מסד נתונים מורכב אמיתי, אפשר להתמודד עם code first, בוודאי לא עם אופטימיזציות וכבר דיברו על זה כאן. והנלענ"ד כתבתי.
פורסם במקור בפורום CODE613 ב31/05/2016 22:35 (+03:00)