מישהו יודע מה זה application block

  • פותח הנושא dc24
  • פורסם בתאריך

dc24

New member
מישהו יודע מה זה application block

אשמח לקבל הסבר קצר, למה זה טוב, וכזה ...
 

gilad g

New member
מעיין פלאג-אין כזה..

בדר"כ זה חבילת קוד ש-MS הוציאו כדי לעשות את החיים פשוטים יותר, ע"י חסכון בזמן במטלות היותר שכיחות, כמו גישה למסד נתונים, טיפול בחריגות, וכו'.
 

dc24

New member
Finalize vs Dispose

מישהו יכול לעשות לי סדר קצת : מה זה Dispose ומה זה Finalize, מתי אני אמור להשתמש בראשון ומתי בשני ? למשל : אני מתכנת ב-VB ויצרתי מחלקה שבה יש כמה Data Members ובפונקציה NEW אני מאתחל אותם. האם אני אמור לשחרר אותם או שה-GC יעשה את זה עבורי ? אם אני אמור לשחרר - איך ואיפה ? ב - Dispose או ב - Finalize ? האם אני אמור לקרוא להן או שהפונקציה מתבצעת אוטומטית ? תודה
 

gilad g

New member
ה-GC קורא רק ל-finalize עבורך.

אם האובייקט מממש IDisposable, תמיד תמיד לקרוא ל-Dispose בסיום העבודה איתו.
 

dc24

New member
המאמר הזה הוא על GC

לא כל כך על finalize ו-dispose.
 

bafoboy

New member
עוד בנושא..

אני צריך להוציא תאריך יצירת קובץ אז אני חייב ליצו מופע חדש של IO.FileInfo אז אני עושה כזה דבר
time = new io.fileinfo(FileName).CreateDate​
האם המופע נשאר על לסוף השיגרה ומעמיס על המערכת? זה חשוב כי זה נמצא בלולאה שמתבצת יותר מ2000 ריצות פעמיים.. בקיצור אני צריך לעשות דיספוז או מה?
 

orengolan

New member
עוד בנושא

application block הוא בתכל'ס dll שאתה עושה לו add reference מתוך הפרוייקט שלך. אתה יכול גם לעשות add reference לפרוייקט עצמו, ואז לקבל גם את הקוד, במילים אחרות כול app block הוא גם פרוייקט open source. מיקרוסופט מציעה עשרות app blocks. החשובים שבהם : Data Access Application Block Exception Management Application Block for User Interface Process Application Block for בתור דוגמא אסביר על הראשון: אתה יכול לחסוך הרבה שורות קוד בפנייה לבסיס הנתונים, אם אתה משתמש בו. תראה איך בשורת קוד אחת אתה שולף נתונים לתוך dataset:
using Microsoft.ApplicationBlocks.Data; DataSet ds = SqlHelper.ExecuteDataset( "SERVER=DataServer;DATABASE=Northwind;INTEGRATED SECURITY=sspi;", CommandType.Text, "SELECT * FROM Products");​
ב app block הזה יש 2 classes שהחשוב מבינהם הוא SqlHelper. זהו abstract class שיש בו רק static methods. אחת מהן היא זו שבקוד, והיא מחזירה dataset. הנה לינק לאתר הרלוונטי
 

orenphp

New member
נכון, אבל זה קצת יותר מזה...

application block הוא לא רק פלאג-אין (כדברי gilad) או dll(כדברי orengolan) שאנו משתמשים בו. application block הינו פיתרון(פיתרון "עד הסוף"!, תכף אסביר) לבעיה בנושא מסוים,כאשר נושאים אלו בד"כ חלק מהקשיים שאנחנו, כמתכנתים, נתקלים בהם ביום יום - איך להעלות שגיאות ולטפל בהם כנדרש, איך לבצע גישה לData Access Layer, איך לבצע קריאות א-סינכרוניות וכו'. הפיתרון שMS מציעים מגיע ב2 חלקים: 1. הקוד כשלעצמו, כאשר מביאים לנו את הפרויקט/ים + tester/example לשימוש בדבר. 2. תיעוד - למה אנחנו צריכים את הAB(application block) הזה, איך MS החליטו לממש אותו (עיצוב). אני חושב שהחלק הזה משמעותי וחשוב להבנה של "איך MS מצפים שאני אשתמש בFramework", כלומר באמצעות קריאה והבנה של התיעוד + הקוד שמצורף, ניתן לפתח את היכולת שלכם לנצל את התשתית טוב יותר ובעיקר ללמוד עיצוב ברמות הגבוהות ביותר ! לכן קראתי לAB, פיתרון "עד הסוף", כלומר מהחלק של "למה אנחנו צריכים את זה" -> עיצוב המחלקות, בחירת סוגי ישויות -> ועד המימוש אני מאוד ממליץ להוריד כמה AB-ים ולנסות לקרוא את התיעוד שלהם, לראות אם יש בהם צורך ואם כן - לקרוא את הדברים עד הסוף, לנסות להבין איך כל דבר עובד, זה יוסיף לכם ערך אדיר.
 

ekampf

New member
excpetions block כבר לא רלוונטי

מחליף אותו ה-logging application block שהוא הרבה יותר מקיף....
 
למעלה