Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lab-Admin Business Logic אלעד וייס מירון הורודי. ראשי פרקים רקע – מצב קיים. מטרות הפרויקט. תהליך התכנון – רעיונות לפתרונות שונים. סקירת התכן. הצגת יכולות.

Similar presentations


Presentation on theme: "Lab-Admin Business Logic אלעד וייס מירון הורודי. ראשי פרקים רקע – מצב קיים. מטרות הפרויקט. תהליך התכנון – רעיונות לפתרונות שונים. סקירת התכן. הצגת יכולות."— Presentation transcript:

1 Lab-Admin Business Logic אלעד וייס מירון הורודי

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

3 רקע מערכת Lab-Admin הקיימת מבוססת ממשק משתמש הפועל ישירות מול מסד הנתונים. היקף המערכת גדול: איתור תקלות מסורבל ומחייב חיפוש בכמות רבה של קוד. היקף המערכת גדול: איתור תקלות מסורבל ומחייב חיפוש בכמות רבה של קוד. שאילתות SQL בתוך קוד הממשק: מבנה מסד הנתונים חשוף למתכנת הממשק. שאילתות SQL בתוך קוד הממשק: מבנה מסד הנתונים חשוף למתכנת הממשק. Database GUI

4 מטרות הפרויקט הוספת מערך מחלקות חדש למערכת Lab Admin שיספק את המטרות הבאות: הוצאת הגישה למסד הנתונים מממשק המשתמש. הוצאת הגישה למסד הנתונים מממשק המשתמש. מודולאריות – קוד מסודר המפשט פעולות אחזקה ושדרוג. מודולאריות – קוד מסודר המפשט פעולות אחזקה ושדרוג. גישה למסד נתונים רק באמצעות Stored Procedures – הסתרה של מבנה מסד הנתונים ממתכנת הממשק. גישה למסד נתונים רק באמצעות Stored Procedures – הסתרה של מבנה מסד הנתונים ממתכנת הממשק. Database SPSPSPSP Business Logic GUI

5 תהליך התכנון

6 אופי האובייקטים רעיון א': יצירת אובייקטים דומים במבנה לדפי הממשק השונים. יתרון: יתרון: כל הפרטים למילוי דף ממשק באובייקט יחיד. חיסרון: חיסרון: הבאת נתונים ממסד הנתונים מסורבלת וגורמת: חוסר גמישות בשליטה על המידע הנלקח. שינוי ממשק בעייתי. חוסר גמישות בשליטה על המידע הנלקח. שינוי ממשק בעייתי. שאילתות ארוכות ומסורבלות. איתור תקלות קשה. שאילתות ארוכות ומסורבלות. איתור תקלות קשה.

7 אופי האובייקטים (המשך) רעיון ב': יצירת אובייקט עבור כל טבלת מסד נתונים אשר יש לה תפקיד במילוי מידע בממשק. יתרון: יתרון: מודולאריות רבה. ניתן להרכיב את המידע עבור דף ממשק מתוך מגוון רחב של אובייקטים. חסרונות: חסרונות: המון אובייקטים אשר לחלקם תפקיד זניח במערכת. המון אובייקטים אשר לחלקם תפקיד זניח במערכת. יותר מדי גישות למסד הנתונים. יותר מדי גישות למסד הנתונים.

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

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

10 תפעול האובייקטים (המשך) רעיון הנבחר: איגוד כל מתודות התפעול לאובייקטי תפעול. כל מתודות הטעינה באובייקט אחד, מתודות השמירה באובייקט אחר, וכן הלאה. יתרונות: יתרונות: הפרדה ברורה בין אובייקטים שתפקידם להחזיק מידע לבין אובייקטים המתפעלים את הקשר בינם לבין מסד הנתונים. ריכוז כל הפעולות מאותו אופי במקום אחד. נוחות באחזקה. כל היתרונות הנובעים מתכנון שהוא Aspect Oriented. חסרונות: חסרונות: סרבול מסוים בהוספת אובייקט חדש. נדרש עדכון של מספר אובייקטים.

11 סקירת התכן

12 מחלקות ה-Business Logic ניתן לחלק את מחלקות ה-Business Logic לשלושה סוגים עיקריים: אובייקטים בדידים (Objects) – כל אובייקט מייצג ישות/תת-ישות נפרדת כגון סטודנט, מעבדה, הרשמה... אובייקטים בדידים (Objects) – כל אובייקט מייצג ישות/תת-ישות נפרדת כגון סטודנט, מעבדה, הרשמה... קבוצות (Collections) – מחלקות המאגדות בתוכן אובייקטים רבים מאותו סוג, ומאפשרות בין השאר מילוי נוח של אובייקטי ממשק המציגים רשימות. קבוצות (Collections) – מחלקות המאגדות בתוכן אובייקטים רבים מאותו סוג, ומאפשרות בין השאר מילוי נוח של אובייקטי ממשק המציגים רשימות. אובייקטי תפעול (BL) – אובייקטים אלה מאפשרים לכותב הממשק לבצע פעולות שונות על האובייקטים הנ"ל, כגון טעינת שדות, עדכון שדות במסד הנתונים וכדומה. אובייקטי תפעול (BL) – אובייקטים אלה מאפשרים לכותב הממשק לבצע פעולות שונות על האובייקטים הנ"ל, כגון טעינת שדות, עדכון שדות במסד הנתונים וכדומה.

13 אובייקטים בדידים (Objects) EmployeeTypeFacultyFinalCheckListItemKdamLAProjectDisplayLAStudentDisplayLAStudentReportLASupervisorDisplayLASupervisorReportLabLabStudentPersonProjectProjectProposalProjectStatusProjectTypeRegistrationSeasonSemesterStudentStatusSupervisor קידומת LA משמעותה LabAdmin, כלומר זהו אובייקט שמטרתו היחידה היא להציג מידע כללי במערכת LabAdmin, בדרך-כלל ייכנס לתוך Collection ויוצג בתוך datagrid או drop-down-list.

14 קבוצות אובייקטים (Collections) EmployeeTypeCollectionFacultyCollectionFinalCheckListCollectionKdamCollectionLabCollectionLAProjectDisplayCollectionLAStudentDisplayCollectionLAStudentReportCollectionLASupervisorDisplayCollectionLASupervisorReportCollectionProjectStatusCollectionProjectTypeCollectionRegistrationCollectionSemesterCollection

15 אובייקטי תפעול BL – Base class for all Objects classes BLCollection – Base class for all collections BLCommonProceduresDB DBLoader DBLoader DBSaver DBSaver DBDeleter DBDeleter

16 דוגמת מילוי ממשק טבלת סטודנטים private void bSearch_Click(object sender, System.EventArgs e) { LoadDataGrid(); dgRegistrations.SelectedIndex = -1; } private void LoadDataGrid() { dgRegistrations.CurrentPageIndex = currentPageIndex; LAStudentDisplayCollection collection = new LAStudentDisplayCollection(this.ddlLab.SelectedValue, this.ddlSearchCriteria.SelectedValue, this.tbSearchValue.Text); DB.OpenConnection(); DB.Loader.Load(collection); DB.CloseConnection(); collection.sort(eDirection.d_Increasing, this.ddlSortCriteria.SelectedValue); dgRegistrations.DataSource = collection; dgRegistrations.DataBind(); }

17 דוגמת מילוי ממשק דף סטודנט – הדף מייצג הרשמת סטודנט בסמסטר. …. Registration registration = new Registration(tbRegistrationID.Text); DB.OpenConnection(); DB.Loader.Load(registration); DB.Loader.Load(registration.Student); DB.Loader.Load(registration.Student.Kdams); DB.Loader.Load(registration.Student.Faculty); DB.Loader.Load(registration.Semester); DB.Loader.Load(registration.ProjectType); DB.Loader.Load(registration.Lab); DB.Loader.Load(registration.Lab.Kdams); DB.Loader.Load(registration.Status); DB.CloseConnection(); בדוגמה זו תשעה אובייקטים שונים נטענו ממסד הנתונים באמצעות ה-DB.Loader, ויוצרים יחדיו את מכלול המידע הנחוץ לממשק. שלב א' : טעינת המידע ממסד הנתונים לאובייקטים

18 ddlSFaculty.SelectedValue = registration.Student.Faculty.Number; … tbSFirstNameHeb.Text = registration.Student.FirstNameHeb; tbSLastNameHeb.Text = registration.Student.LastNameHeb; tbSLoginRequest.Text = registration.Studenta.LoginRequest; tbSAcademicPoints.Text = registration.Student.AcademicPoints; tbSAddress.Text= registration.Student.Address; tbSAverage.Text= registration.Student.Average; tbSCellPhone.Text = registration.Student.CellPhone; tbSEmail.Text = registration.Student.Email; … tbGrade.Text = registration.Grade; ddlRPreference1.SelectedValue = registration.Request1; ddlRPreference2.SelectedValue = registration.Request2; ddlRPreference3.SelectedValue = registration.Request3; … foreach(Kdam k in registration.Student.Kdams) { ListItem item = lbKdams.Items.FindByValue(k.Number); if (item != null) lbKdams.Items[lbKdams.Items.IndexOf(item)].Selected = true; } שלב ב' : הצגת המידע מהאובייקטים בממשק המשתמש

19 Project החלקים שטענו 1 2 3 4 5 6 7 8 9

20 הצגת יכולות הפרויקט מוגש עם כלי להערכת ביצועים הכולל ממשק משתמש צבעוני, נוח וקל לתפעול המספק את כל הפונקציונאליות של מערכת Lab Admin הקיימת, וקצת יותר...

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


Download ppt "Lab-Admin Business Logic אלעד וייס מירון הורודי. ראשי פרקים רקע – מצב קיים. מטרות הפרויקט. תהליך התכנון – רעיונות לפתרונות שונים. סקירת התכן. הצגת יכולות."

Similar presentations


Ads by Google