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

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

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

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

מתוזמן נעוץ נעול הועבר ארכיון code613m
13 פוסטים 4 כותבים 978 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום