מאמר זה יסקור בקצרה את Data Access Application Block (או בקצרה DAAB), מדוע יש צורך בכלי כזה, וכיצד להתחיל לעבוד איתו.
קצת על ה - DAAB ולמה צריך אותו
ה - DAAB הוא אובייקט עם מספר מתודות סטטיות שפותח ע"י מיקרוסופט ע"מ לשפר את הגישה והקוד שנדרש ע"מ לגשת למסדי נתונים באפליקציה.
כשרוצים לגשת למסד נתונים דרך אפליקציה (דוט נטית במקרה שלנו), יש צורך לכתוב מספר שורות קוד ולעבור מספר שלבים:
- ליצור Connection למסד הנתונים ולפתוח אותו.
- ליצור אובייקטים שמטפלים בנתונים, ולמלאות אותם מהמסד.
- להשתמש באובייקטים ולסגור את החיבור בהתאם לסוג האובייקט שמטפל בהם (Connected כמו DataReader, או Disconnected כמו DataSet)
לצורך העניין, הנה המחשה של קוד פשוט הפונה למסד נתונים ושולף רשומות מתוך טבלה מסויימת ל - SqlDataReader:
// Create Connection
String ConnectionString = "Data Source= ... ";
SqlConnection objConnection = new SqlConnection(ConnectionString);
objConnection.Open();
// Create Command
SqlCommand objCommand = new SqlCommand ("spSelectAll", objConnection);
objCommand.CommandType = CommandType.StoredProcedure;
// Create and fill DataReader
SqlDataReader drdRows = objCommand.ExecuteReader();
// *** Some data manipulation comes here ***
// Close Connection
objConnection.Close();
בספירה מהירה הגענו לשש(!) שורות של קוד, רק בכדי לגשת למידע וכל זה בלי שימוש במידע וכל החלטורות הנוספות כמו טיפול בשגיאות וגו'.
בקצרה, אפשר לומר שמדובר פה על הרבה בירוקרטיה והרבה קוד שחוזר על עצמו בשביל פעולה שלכאורה צריכה להיות פשוטה. בשביל המקרה הזה, מיקרוסופט הביאה לנו את ה - DAAB
השימוש ב - DAAB
בטח כשאתם קוראים את המאמר הזה, אתם חושבים לעצמכם "אוי לא! ללמוד עוד כלי, אין לי כוח לכל המאמרים האלו!". האמת היא, שהכלי הזה מאוד פשוט ונוח לשימוש, ולוקח בדיוק 20 שניות ללמוד אותו, רק צריך להסתכל על הקוד הבא, שמבצע את אותה הפעולה כמו הקוד הקודם.
לפני זה כמובן, רצוי להוריד את הכלי, ניתן להוריד אותו מכאן.
ולהלן הקוד:
// Create and fill DataReader
String ConnectionString = "Data Source= ... ";
SqlDataReader drdRows = SqlHelper.ExecuteReader(ConnectionString,
CommandType.StoredProcedure, "spSelectAll");
כפי שניתן לראות בבירור, מדובר בהרבה פחות קוד, והמנעות מקוד חוזר. האובייקט דואג לטפל ב - Connection, לפתוח ולמלא את הנתונים, לסגור את החיבור עד סוף השימוש (אפילו) ב - DataReader שהוא אובייקט הפועל מול מסד הנתונים ולא בצורה מנותקת.
הסוף
כמובן, שזהו הבסיס לשימוש בכלי, ויש בו עוד פיצ'רים רבים, ויש עוד מה לשנות בו ע"מ לעבוד בצורה נוחה יותר. כל זה ועוד בסדרת מאמרים שתבוא על האובייקט הנפלא הזה, שמיקרוסופט ממשיכה לשפר ולעדכן.
להורדת DAAB:
שליפת נתונים מהנה!