Browse by Tags

All Tags » OOP (RSS)

Question from Tapuz .Net forum: Refactoring code for code review

שאלה: יש לי מערך של קבציםומערך של אובייקטים המכיל ערך ישן וערך חדש. אני צריכה להחליף בכל הקבצים את הערך הישן לערך החדש. אני עשיתי את זה כך / אשמח לשמוע ביקורת לכאן ולכאן או אפשרות לשיפור הביצועים. מה דעתכם? האם יש דרך לשפר? public static void Main() { //רשימה של השמות הישנים והשמות החדשים על מנת להחליף את הטקסט List < manageFiles > mf = new List < manageFiles >(); mf.Add( new manageFiles ( "replace me" , "with me" )); //רשימת הקבצים החדשה List < string > filesUrl = new List <...

Question from Tapuz .Net forum: Exposing a Read-only collection from a class

שאלה: בנינו מחלקה שמכילה כמה סוגים של Collections ואנחנו חושפים אותם החוצה ב-Properties. ה-Collections האלו הם Private למחלקה עצמה, והחוצה אנחנו רוצים לחשוף רק אפשרויות לעבור עליהם בקריאה בלבד. ההוספה והמחיקה לאוספים הפנימיים הוא תוצאה של אלגוריתמים פנימיים, למשל אנחנו רוצים שיהיה אפשר להוסיף רק דרך Add שלנו כדי שנוכל לעלות Events. הבעיה היא שב-Get של ה-Property אנחנו מחזירים Reference Type ואפשר לשנות מחוץ למחלקה את ה-Collections בלי לעבור דרך האלגורתימים. יש לזה פתרון בדוט נט? תשובה: בואו נבנה...

Question from .Net Tapuz forum: Refactoring Code-behind to Static Methods and Properties example

שאלה: יש לי את הקוד הבא ואני בטוח שיש דרך יותר טובה ונקייה לכתוב אותו, למישהו יש רעיונות? // טבלא ראשית Table MainTbl = new Table(); // הגדרות עבור טבלא MainTbl.CellPadding = 0; MainTbl.CellSpacing = 0; MainTbl.Width = Unit.Parse( "456" ) ; TableRow MainRow = new TableRow(); MainTbl.Rows.Add(MainRow); // טור קו שמאלי של טבלא ראשית TableCell MainLineLeftCell = new TableCell(); MainRow.Cells.Add(MainLineLeftCell); MainLineLeftCell.Width = Unit.Parse( "1px" ); MainLineLeftCell.Height = Unit.Parse( ...

Question from Tapuz .Net forum: How can I access controls inside Custom/User Controls if they haven't been created at Page_Load?

שאלה: יש לי User Control שמכיל DropDownList, ויש לי דף שמכיל אותו. שמתי לב שה Page_Load של המסך רץ לפני ה Page_Load של הקונטרול, לכן אני לא יכול לאתחל את הקונטרול ב Page_Load של המסך, אלא רק בשלב מאוחר יותר, למשל OnPreRender של המסך. האם הבנתי נכון, וכך עושים זאת ? תשובה: הבנת נכון את רצף האירועים. Page מבצע ראשון את כל האירועים שלו, ואז כל מיני סוגי דפים אחרים שקשורים אליו (UserControls ו-MasterPages) מריצים את האירועים שלהם. לא ברור לי מה הכוונה ב"לאתחל את הקונטרול", ה-UserControl נוצר כמו כל פקד...

Question from .Net Tapuz forum: How to build general Search screens when working with Tiers Architecture and Business Entities?

שאלה: רציתי לדעת מה הדרך הנכונה יותר מבחינת ארכיטקטורה להריץ שאילתות דינמיות במערכת מבוססת שכבות ( Business logic ו -Data access ) כלומר, אם יש ממשק משתמש בעל כמה שדות שונים וברצוני להריץ שאילתה אך ורק עם אותם שדות שמולאו מבלי להחזיק את משפט הSQL כתוב בקוד. תשובה: שאילתות Find הן אכן נושא מסובך. מסכי חיפוש כאלו באמת מאתגרים ובוחנים את הכוח של הארכיטקטורה שלנו. דבר ראשון בנושא קבלת "החלטות ארכיטקטורה נכונות" צריך לדעת מה הארכיטקטורה הנוכחית הרי נושא כמו שאילתות Find למיניהן לא תקבע לנו את הארכיטקטורה...

Question from Tapuz .Net forum: MasterPage causes CrossPagePostBack to stop working

שאלה: לא ניתן להשתמש ב - CrossPostBack בדפים שמשתמשים ב - MasterPage, כלומר אם הדף השולח הוא עם MP, הדף שנשלחים אליו הנתונים לא יזהה את הפקדים ב PreviousPage כאשר נעבוד עם this.PreviousPage.FindControl, האם מישהו מכיר פתרון לבעיה הזו תשובה: FindControl אינו מבצע חיפוש היררכי בתוך Container אלא מבצע חיפוש בן רמה אחת בלבד בתוך בניו הישירים של Container. כאשר אין MasterPage אז this.PreviousPage יבציע ל-Form שהוא ה-Container העליון בדף הכתוב. כאשר יש MasterPage אז this.PreviousPage יצביע ל-MasterPage...

Question from .Net Tapuz forum: How to change an ASP.Net MasterPage programmatically from inside the Page (The OOP way)

שאלה: לא ניתן לשתף באופן ישיר משתנים בין MasterPage והדפים שמתמשים בו(כלומר לגשת מדף X למשתנה שנמצא ב - MasterPage שלו), יש כל מיני חלטורות כאלו (לדוגמה לשתף עם Session או כל מיני דברים מסובכים), האם מישהו מכיר פתרון קל, נוח ויעיל לנושא תשובה: הבעיה הראשונה היא דווקא בעיה מאוד מעניינת ומאוד נפוצה - עבודה מול MasterPage מתוך הדף (Page) שלנו. בואו נציג דוגמה מאוד פשוטה. יש לי MasterPage שמציג ככותרת את השם של הדף הנוכחי לפי ה-SiteMapProvider שלי. במימוש הכי בסיסי, יש לי MasterPage עם Label וה-Label...

Question from .Net Forum: What's the difference between MVC and 3Tier Architecture

שאלה: מה ההבדל בין ארכיטקטורת MVC לבין ארכיטקטורת 3Tier? תשובה: 3Tier או כל ארכיטקטורת שכבות אחרת מדברת על "יש לי פרוייקט א' שתלוי בפרוייקט ב' שתלוי בפרוייקט ג'" וממשיך עד תלוי בפרוייקט X. ארכיטקטורת 3Tier אומרת שיש תלות של ה-GUI על ה-DAL שלו בתורו יש תלות על ה-BL או שיש ל-GUI תלות על ה-BL שיש לו תלות על ה-DAL. הקונספט הוא הרבה פחות קונספט לוגי של אחריות והפרדה, אלא הרבה יותר קונספט של לארגן את המחלקות עצמן בקבוצות אחריות מוכרות וידועות. למשל, ב-GUI יהיה לי רק טפסים שפונים לישויות ב-BL שבתורן כותבות...