דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. .NET: ארכיטקטורה כללית

.NET: ארכיטקטורה כללית

מתוזמן נעוץ נעול הועבר ארכיון code613m
13 פוסטים 4 כותבים 978 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • C מנותק
    C מנותק
    chaim1989
    כתב ב נערך לאחרונה על ידי
    #1

    האם יש מקום בא ניתן לקרוא על ארכיטקטורה אידאלית לתוכנות מסדי נתונים אני כבר שנים מקשקש עם מאיר על collections ולפני ef על דטהסט וכד'
    יש שיטה מוגדרת איך להביא את הנתונים מהדטה בייס למשתמש לעדכן וכו'?

    פורסם במקור בפורום CODE613 ב21/06/2013 00:22 (+03:00)

    תגובה 1 תגובה אחרונה
    0
    • א מנותק
      א מנותק
      ארכיטקט
      כתב ב נערך לאחרונה על ידי
      #2

      קודם כל יש לך כאן איזה שהוא מדריך בעברית של הרב דוט נט

      שמנסה לעשות קצת סדר בנושא.
      יש מומחים שעובדים רק עם entyty fremwork וישראל אולבסקי אמר לי שהוא לא רוצה להכיר שום שיטה אחרת.
      @chaim1989

      אני כבר שנים מקשקש עם מאיר על collections ולפני ef על דטהסט וכד'
      יש שיטה מוגדרת איך להביא את הנתונים מהדטה בייס למשתמש לעדכן וכו'?

      אז זהו שהקשקושים נגמרו אתמול בערב סופית!
      בפרוייקט האחרון שלי (פרוייקט ארגון הסעות לבתי ספר), למרות שעשיתי דאטה סט, אני כמעט ולא מדבר איתו, במהלך התיכנות, הכל עשיתי עם מחלקות, ורק ככה אני מצליח להשיג 100 אחוז שליטה בחומר, תבין רק שבדטה סט יש לי 2 טבלאות בסיסיות, ואילו באוספים של המחלקות יש לי 11 אוספים של מחלקות שונות (שזה בעצם כמו טבלאות שונות) חכמות שמטפלות בדברים בדיוק כפי שאני רוצה, ועשרות שאילתות linq שעובדות אצלי בנאמנות יוצאת דופן. וכל זה אני בונה במאפיינים סטטיים מייד עם העלאת התוכנה וזה זמין לי בקלות בכל רחבי התוכנה.
      בלי להכיר היטיב את entyty אני יכול להגיד לך שזאת לא בעיה לעבוד עם דאטה סט ולממש את אריכטקטורת entyty כי אתה יכול להגדיר בבנאי של מחלקה את ה row הרלוונטי ובמאפניינים לעשות ב set עדכון של השדה הרלוונטי ב row וכך אתה יכול להנות גם מחופש בחירה בין מסדי נתונים, וגם מארכיטקטורה עם שליטה מלאה לגמרי במערכת שלך.
      עם הדטה סט, לבד אינני רואה דרך לבנות מערכות גדולות כשאתה עובד עם ה XAML מול הטבלאות ישירות, אתה יכול מקסימום לעשות רשימה של מכולת. שום דבר לא מעבר לזה..... אלא אם כן תתחיל "ללכלך" את הקוד שלך וזה יכול להחזיק מקסימום כמה ימים (כמה זמן בן אדם יכול לחיות בתוך ערימות של שחת????)
      אז אני ממליץ לך בחום לאמץ בכל לבבך את ארכיטקטורת המחלקות, אשמח לייעץ לך בכל נושא ארכיטקטוני כמיטב יכולתי.

      פורסם במקור בפורום CODE613 ב21/06/2013 09:24 (+03:00)

      אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

      תגובה 1 תגובה אחרונה
      0
      • C מנותק
        C מנותק
        chaim1989
        כתב ב נערך לאחרונה על ידי
        #3

        דבר ראשון אהבתי את החתימה,
        דבר שני אני מבין שיש כמה דרכים ולכן אני בדיוק שואל האם יש דרך "תקנית" כי גם אחרי ef שבו אני נוטה להשתמש יש כמה שלבים עד שמגיעים לתצוגה, האם יש דרך מוגדרת...אל תשכח שגם אחרי שיש לך ef ועשית משפט link שמביא לך תוצאות אתה צריך לעשות collections view source שהוא עצמו לא יכול להיטען מלינק עד מכמה שזכור לי,
        או שכמו שאתה אומר אין דרך מוגדרת אלא פשוט צריך לבנות מחלקות ולארגן את הטעינה ועדכון בconstructors....לפי הצרכים הקונקרטים של הפרויקט

        פורסם במקור בפורום CODE613 ב21/06/2013 11:11 (+03:00)

        תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          אני עובד עם DataSet & DataAdapters.

          הטכנלוגיות LinqToSql והחדשה יותר EntityFramwork, דורשות "טיפוח" והתערבות קבועה במיפוי הואטומטי. אחרת, יש בעיות איטיות משמעותיות לרוב.
          כמו"כ הDB רגיש מאוד לשינויים במידה הוא כבר מלא בנתונים.

          פורסם במקור בפורום CODE613 ב23/06/2013 13:36 (+03:00)

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          0
          • ש מנותק
            ש מנותק
            שמואל
            כתב ב נערך לאחרונה על ידי
            #5

            אני מסיים כעת בניית פרוייקט עם הרבה טבלאות ואלפי רשומות, יעיד ע"כ דוד ל.ט.
            כל החיבורים נעשו ע"י DataSet
            אני מרוצה מאוד מהתוצאות ומהירות העדכון ואני מרגיש שמאוד נוח לעבוד עם זה
            תמיד חשוב להכיר דרכים חדשות (אחרת נשאר מאחורה....) וכמובן לדעת את סדר העדיפויות
            כל מידע בעניין יעזור ויחכים את כולנו
            מה שחשוב מעבר לארכיטקטורת הבסיס הוא גם אפשרויות הגישה לנתונים כאשר מתחברים לטפסים ותצוגות / טבלאות, גם בזה ישנם מספר דרכים ובהחלט צריך לפתוח על זה אשכול נפרד

            פורסם במקור בפורום CODE613 ב24/06/2013 09:27 (+03:00)

            תגובה 1 תגובה אחרונה
            0
            • ש מנותק
              ש מנותק
              שמואל
              כתב ב נערך לאחרונה על ידי
              #6

              @ארכיטקט

              בפרוייקט האחרון שלי (פרוייקט ארגון הסעות לבתי ספר), למרות שעשיתי דאטה סט, אני כמעט ולא מדבר איתו, במהלך התיכנות, הכל עשיתי עם מחלקות, ורק ככה אני מצליח להשיג 100 אחוז שליטה בחומר, תבין רק שבדטה סט יש לי 2 טבלאות בסיסיות, ואילו באוספים של המחלקות יש לי 11 אוספים של מחלקות שונות (שזה בעצם כמו טבלאות שונות) חכמות שמטפלות בדברים בדיוק כפי שאני רוצה, ועשרות שאילתות linq שעובדות אצלי בנאמנות יוצאת דופן. וכל זה אני בונה במאפיינים סטטיים מייד עם העלאת התוכנה וזה זמין לי בקלות בכל רחבי התוכנה.
              בלי להכיר היטיב את entyty אני יכול להגיד לך שזאת לא בעיה לעבוד עם דאטה סט ולממש את אריכטקטורת entyty כי אתה יכול להגדיר בבנאי של מחלקה את ה row הרלוונטי ובמאפניינים לעשות ב set עדכון של השדה הרלוונטי ב row וכך אתה יכול להנות גם מחופש בחירה בין מסדי נתונים, וגם מארכיטקטורה עם שליטה מלאה לגמרי במערכת שלך.
              עם הדטה סט,

              אני מנסה לבנות פרוייקט בדטה סט שמקושר למחלקות כדי שאני יוכל לממש את InotifyPropertyChengede
              אני לא מסתדר עם עדכון המחלקות לדטה סט

              תוכל קצת להדריך אותי?

              פורסם במקור בפורום CODE613 ב19/12/2013 14:22 (+02:00)

              תגובה 1 תגובה אחרונה
              0
              • א מנותק
                א מנותק
                ארכיטקט
                כתב ב נערך לאחרונה על ידי
                #7

                @שמואל

                אני מנסה לבנות פרוייקט בדטה סט שמקושר למחלקות כדי שאני יוכל לממש את InotifyPropertyChengede
                אני לא מסתדר עם עדכון המחלקות לדטה סט

                תוכל קצת להדריך אותי?

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

                בברכה

                פורסם במקור בפורום CODE613 ב19/12/2013 14:58 (+02:00)

                אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                תגובה 1 תגובה אחרונה
                0
                • ש מנותק
                  ש מנותק
                  שמואל
                  כתב ב נערך לאחרונה על ידי
                  #8

                  ב"ה הצלחתי להגדיר את הנתונים ואני מציג כאן קטע
                  של הגדרת פרופרטי כפי שאני עושה
                  וב"ה הנוטיפיי עובד מצוין

                  private string _lName;
                          public string lName
                          {
                              get
                              {
                                  return _lName = row.LName;
                              }
                              set
                              {
                                  row.LName = _lName = value;
                                  if (PropertyChanged != null)
                                  {
                                      PropertyChanged(this, new PropertyChangedEventArgs("lName"));
                                  }
                              }
                          }
                  

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

                  כמו"כ אולי כל העניין הינו באמת 'בית חולים מתחת לגשר' ועדיף לעבוד עם אנטיטי

                  פורסם במקור בפורום CODE613 ב23/12/2013 12:26 (+02:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @שמואל

                    כמו"כ אולי כל העניין הינו באמת 'בית חולים מתחת לגשר' ועדיף לעבוד עם אנטיטי

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

                    יש כלים אוטומטיים שעושים אוטומטית מחלקות מכל המסד נתונים, כלומר כותבים את הקוד הזה פחות או יותר.
                    חלךק עושים רק מחלקות חלק גם מטפלים בתקשורת ובכל הDAL.
                    הנה חלק:
                    זה אונליין: http://www.pureobjects.com/dbCode.aspx
                    זה כלי קוד פתוח, כך שתוכלו לשנותו http://www.codeproject.com/Articles/8776/Automated-Class-Builder-for-Database-Tables

                    עוד כלים:
                    http://www.codeproject.com/Articles/36217/Generate-Classes-and-CRUD-Procedures
                    http://oxmlibrary.codeplex.com/ הוא יצור מתוך DataSet קיים. נשמע גם חזק.
                    http://salardbcodegenerator.codeplex.com/ שווה בדיקה עמוקה.
                    http://datatiergenerator.codeplex.com/ יוצר מחלקות קוראות וכותבות גם בצד המסד וגם באפליקציה שכל התקשורת בנוייה תוך דקות.

                    זה פיתרון פשוט ומפליא http://stackoverflow.com/a/7863480/1271037 זו שאילתת SQL על מבנה המסד

                    פורסם במקור בפורום CODE613 ב23/12/2013 13:48 (+02:00)

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    0
                    • ש מנותק
                      ש מנותק
                      שמואל
                      כתב ב נערך לאחרונה על ידי
                      #10

                      קודם כל תודה רבה
                      עברתי על הלינקים
                      מבין האפשרויות נראה לי שדרך הדטה סט כפי שעשיתי עדיין יותר קל ונוח
                      אולי אתה חולק עלי?!

                      שאלתי כעת
                      הייתי רוצה לקשר כל ליסט של רשימת הילדים ללליסט במחלקת האב
                      כפי שעשיתי בדיוק לגבי כל שורה ושורה בGet וה Set
                      עיין בקוד שהעליתי לעיל

                      פורסם במקור בפורום CODE613 ב23/12/2013 16:12 (+02:00)

                      תגובה 1 תגובה אחרונה
                      0
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        כתב ב נערך לאחרונה על ידי
                        #11

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

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

                        פורסם במקור בפורום CODE613 ב23/12/2013 17:08 (+02:00)

                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                        תגובה 1 תגובה אחרונה
                        0
                        • א מנותק
                          א מנותק
                          ארכיטקט
                          כתב ב נערך לאחרונה על ידי
                          #12

                          הדרך הכי פשוטה זה לעשות פרופרטי במחלקת הבנים שיכיל הפנייה לאובייקט האב (את ההפניה אפשר לקבוע בבנאי באופן מפורש, או על ידי שאילתה שתביא את ה ID) כאשר יש לך הפניה לאובייקט האב, ממילא יש לך הפניה לכל המאפיינים וכל השדות וכל המידע שיש בתוך האב. במקרה שלך, אתה עושה אובייקט בשם קניה, והוא מכיל מאפיין שמפנה למחלקה של לקוח, מחלקה של מוצר, וכן הלאה. כך שכשתצטרך כל מידע שהוא על הלקוח אתה פשוט פונה לאובייקט הלקוח שנמצא בתוך הקניה.
                          לעשות ליסט בתוך מחלקת לקוח שיכיל את כל האובייקטים של קניות, אני הייתי ממליץ לעשות פרופרטי שממלא את עצמו רק בעת הצורך כלומר ב get בלבד, ופשוט יוצר אובייקטים של קניות על ידי שאילתת linq (לעשות את זה בכל פעם שפותחים אובייקט לקוח, זה לכאורה בזבוז משאבים). מומלץ להשתמש באובזרוובול קולקשן (observablecollection), עי' מ"ש בזה באמסדיאן, ויש גם שכלול של זה שנקרא טרולי אובזרוובול קולקשן פעם השתמשנו בזה. זהו אובייקט קולקשן שתומך באירועים והוא בר שליטה יותר מקולקשנים אחרים. ומה שמאפשר לך למשל כשמוסיפים לו אובייקט לעשות ערכי ברירות מחדל כגון contact id שיהיה שווה ל id של הלקוח כלומר אובייקט האב וכן הלאה וכן הלאה.

                          פורסם במקור בפורום CODE613 ב25/12/2013 11:18 (+02:00)

                          אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                          תגובה 1 תגובה אחרונה
                          0
                          • ש מנותק
                            ש מנותק
                            שמואל
                            כתב ב נערך לאחרונה על ידי
                            #13

                            תודה רבה!

                            פורסם במקור בפורום CODE613 ב25/12/2013 11:27 (+02:00)

                            תגובה 1 תגובה אחרונה
                            0

                            בא תתחבר לדף היומי!
                            • התחברות

                            • אין לך חשבון עדיין? הרשמה

                            • התחברו או הירשמו כדי לחפש.
                            • פוסט ראשון
                              פוסט אחרון
                            0
                            • דף הבית
                            • קטגוריות
                            • פוסטים אחרונים
                            • משתמשים
                            • חיפוש
                            • חוקי הפורום