DCSIMG
DAAB - Data Access Application Block - חלק א' - Ohad Aston - ASP.NET Blog

Ohad Aston - ASP.NET Blog

פיתוח לאינטרנט, ASP.NET ועוד

על הבלוג

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

Try Opera today - it's free

Ohad Aston's Facebook profile

Pagerank - קידום בגוגל

website counter

Powered by TinyMCE
Add to Technorati Favorites
Add to Google

אני ב - Twitter

    הבלוגספירה

    עצומות חשובות - חתמו והשפיעו!

    פרוייקטים ששווים הצצה

    DAAB - Data Access Application Block - חלק א'

    מאמר זה יסקור בקצרה את Data Access Application Block (או בקצרה DAAB), מדוע יש צורך בכלי כזה, וכיצד להתחיל לעבוד איתו.

    קצת על ה - DAAB ולמה צריך אותו

    ה - DAAB הוא אובייקט עם מספר מתודות סטטיות שפותח ע"י מיקרוסופט ע"מ לשפר את הגישה והקוד שנדרש ע"מ לגשת למסדי נתונים באפליקציה.

    כשרוצים לגשת למסד נתונים דרך אפליקציה (דוט נטית במקרה שלנו), יש צורך לכתוב מספר שורות קוד ולעבור מספר שלבים:

    1. ליצור Connection למסד הנתונים ולפתוח אותו.
    2. ליצור אובייקטים שמטפלים בנתונים, ולמלאות אותם מהמסד.
    3. להשתמש באובייקטים ולסגור את החיבור בהתאם לסוג האובייקט שמטפל בהם (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:

    שליפת נתונים מהנה!

    תוכן התגובה

    Ohad Israeli כתב/ה:

    DAAB 2.0 מכיל באגים אשר לא כולם תוקנו ולכן יש להשתמש ב-Enterprise Library ולא ב-DAAB 2.0

    מיקרוסופט לא ממשיכה ומפתחת את DAAB אלה מעבירה לאת לאת את ה-Application Blocks השונים ל-EntLib.

    # October 26, 2006 1:36 AM
    שלח תגובה

    (שדה חובה)  

    (שדה חובה)  

    (אופציונלי)

    (שדה חובה) 

    Please add 8 and 1 and type the answer here:


    Enter the numbers above: