Validation Application Block with Strippers - Validation not using VAB
סדרת לומדים Validation Application Block עם חשפניות
1. קדם דבר: למה צריך וולידציה? (או: "קופים. פשוט קופים."), פורסם ב-26.6.2007
2. חלק ראשון: הפתרון הקיים והמצוי ב-Winforms, Console ו-ASP.Net (או: "איך קוראים לך ובת כמה את?"), פורסם ב-8.7.2007
3. חלק שני: שימוש ישיר ב-Validatorים של VAB (או: "איך לגרום לקוד יחסית קריא להפוך להיות ארוך ומעיק"), פורסם ב-9.7.2007
4. חלק שלישי: הכנסת נתוני הוולידטורים לתוך מחלקות (או: "ממלכתי עבור וולידטור ג'נארי"), יפורסם ב-11.7.2007
5. חלק רביעי: אינטגרציה בסיסית עם ה-GUI ו-וולידציה מתוך קבצי קונפיוגרציה (או: "קצת יותר Drag&Drop, קצת פחות קוד"), יפורסם ב-15.7.2007
6. המשך יבוא.
חלק ראשון: הפתרון הקיים והמצוי ב-Winforms, Console ו-ASP.Net (או: "איך קוראים לך ובת כמה את?")
נניח שאנחנו מנהלים מועדון חשפנות.
יש לנו אפליקציה שהיא אפליקציית Console, או אפליקציית WinForms או אפילו אפליקציית ASP.Net.
נפתח Solution ריק שיכיל באמת את שלושת ה-GUIים האלו:
אנחנו רוצים עכשיו כמטרת על "לקלוט חשפנית חדשה". נרצה לקלוט שם חשפנית ואת הגיל שלה.
בפרוייקט Winforms ניצור טופס חדש בשם NewStripper עם שתי Labels, שתי Textboxs וכפתור.
בפרוייקט ASP.Net ניצור טופס NewStripper.aspx זהה:
ובפרוייקט Console נכתוב את הקוד הבא:
נקבע שני כללים למערכות שלנו:
1. חובה להזין שם חשפנית
2. גיל החשפנית חייב להיות גדול מ-18
אם כללים אלו מופרים נרצה להציג על כך הודעה למשתמש.
נתחיל מה-Console.
אם שם החשפנית ריק נרצה להציג הודעה למשתמש:
אם גיל החשפנית הוא לא מספר (למשל אם הוכנסה המילה "eightenn" ולא 18) נרצה הודעה מתאימה למשתמש, ואם הגיל קטן מ-18 נרצה להציג הודעה למשתמש.
קודם טיפלנו בהמרה ממחרוזת (הקלט של המשתמש) ל-int, ואך כך בדקנו את גיל החשפנית. כמובן שהדפסנו הודעות מתאימות.
נלך לאפליקציית Winforms שלנו ונכתוב קוד מקביל שבמקום להדפיס ל-Console דואג להוסיף הודעות שגיאה ל-Label שהכנו מראש.
ל-Label נקרא lblErrors וצבע הטקסט בו יהיה אדום. בלחיצה כל הכפתור נדאג לבצע את כל הבדיקות שלנו.
ובהרצה זה יראה ככה:
נכתוב את אותו קוד בדיוק כמו ב-Winforms בלחיצה על כפתור בדף ה-ASP.Net שלנו.
בהרצת ה-ASP.Net זה יראה כך:
זה נראה לי כמו קוד שסביר להניח שיחזור על עצמו.
בדיקה של מחרוזת ריקה? טווח של מספרים? זה משהו יום-יומי ונפוץ לחלוטין!
למה שכל פעם נחזור ונכתוב אותו קוד שוב ושוב? בשביל משימות כאלו מיקרוסופט באו ואמרו ניצור לכם Applicaiton Blocks שמיועדים לטפל במשימות שחוזרות על עצמן.
משימה אחת כזו היא באמת Validation, בדיקת קלט מהמשתמש.