1 / 21

Lab-Admin Business Logic

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

astrid
Download Presentation

Lab-Admin Business Logic

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lab-AdminBusiness Logic אלעד וייס מירון הורודי

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

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

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

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

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

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

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

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

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

  11. סקירת התכן

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

  13. אובייקטים בדידים (Objects) • Project • ProjectProposal • ProjectStatus • ProjectType • Registration • Season • Semester • StudentStatus • Supervisor • EmployeeType • Faculty • FinalCheckListItem • Kdam • LAProjectDisplay • LAStudentDisplay • LAStudentReport • LASupervisorDisplay • LASupervisorReport • Lab • LabStudent • Person קידומת LA משמעותה LabAdmin, כלומר זהו אובייקט שמטרתו היחידה היא להציג מידע כללי במערכת LabAdmin, בדרך-כלל ייכנס לתוך Collection ויוצג בתוך datagrid או drop-down-list.

  14. קבוצות אובייקטים (Collections) • ProjectStatusCollection • ProjectTypeCollection • RegistrationCollection • SemesterCollection • EmployeeTypeCollection • FacultyCollection • FinalCheckListCollection • KdamCollection • LabCollection • LAProjectDisplayCollection • LAStudentDisplayCollection • LAStudentReportCollection • LASupervisorDisplayCollection • LASupervisorReportCollection

  15. אובייקטי תפעול • BL – Base class for all Objects classes • BLCollection – Base class for all collections • BLCommonProcedures • DB • DBLoader • DBSaver • 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. 2 4 9 1 3 8 6 7 5 Project החלקים שטענו

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

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

More Related