MVVM Part 6 – more about caliburn micro FrameWork

30 בJanuary 2013

בפוסט הקודם הצגנו בצורה בסיסית את הFrameWork של Caliburn Micro ואת הדרך ליצור אפליקציה בסיסית. הייתי ממליץ בחום לעבור עליו לפני שאתם קוראים את הפוסט הנוכחי. בכל מקרה אחרי שעשינו hello world בשיטתMicro  Caliburn ונפגשנו עם המושג BootStrapprer בואו נתקדם למשהו רציני יותר. נראה מה זה IOC בשיטת Caliburn, נראה איך עושים actions, Events *הערה: נדרשת הבנה מוקדמת על data Binding, על WPF-command, ועל Events לפני שנוכל להבין מה קורה כאן. במילים אחרות במידה ויש לנו ידע בסיסי בWPF והטכניקות שלו אפשר להתקדם.. ובכן, Caliburn Micro מתגאה בקוד המשופר והקריא אל מול המצב הנתון בקלאסים של NET. או למשל בהשוואה ל MVVM-LIGHT הבסיסי שהצגתי בפוסטים הקודמים. לדוגמא הסינטקס לעדכון PropertyChanged מאפשר לשלוח דלגייט עם...
3 תגובות

Inversion Of Control – IOC

29 בJanuary 2013

IOC Design Pattern בעבר כתבתי על dependency injection ולמעשה IOC  או בשמו המלא Inversion of Control שזה נשמע כמו "היפוך שליטה" זה חלק מהעניין. איפה הבעיה: נניח שיש לי אובייקט A ויש לי אובייקט B, אובייקט B מחזיק אצלו משתנה מסוג A כפרופרטי. זה דבר מקובל שנמצא בכל ספריית קוד. הבעיה הקטנה פה היא שיתכן מצב שבו תהיה תלות מוחלטת של אובייקט B באובייקט A וזה לא טוב לנו. בשביל הדוגמא נניח שיש לי קוד שמתאר כלב. לכל כלב (חמוד) יש שדה שמתאר את הבעלים שלו. בקונסטרקטור של הכלב  אני יוצר אינסטנס של הבעלים ומאתחל את המשתנה הפנימי: public class Dog     {         private Owner _owner;         public Dog()         {             _owner...
תגובה אחת

על רקורסיה וחשיבה רקורסיבית

21 בJanuary 2013

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

WPF SelectAll on focus TextBox

20 בJanuary 2013

The problem I will Present now is a good demonstration about WPF and the way there Controls acting as default. Let say that I have textbox in my window and I want to select the all text (if exist) In case of  focus. Well, what kind of focus we got? a.      By using the auto tab Keyboard pressed what moving the auto focus one By one all the way in our controls. b.      Using something like FocusManger or directly called ControlX.focus(); In those 2 cases its fine to tell the textbox to select all inner text. c.      Another kind of focus is by using our mouse cursor  to access the Control writing field.  in this...
תגיות:
אין תגובות

Composite Design Pattern

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

MVVM part 5 – the caliburn Micro framework

5 בJanuary 2013

MVVM part 5 – the caliburn Micro framework אוקיי, הגיע הזמן לחזור למדריך שלי על MVVM. הפעם נכיר את הספרייה של Caliburn Micro שבתור התחלה נוריד מכאן, codeplex מחזיק את קוד המקור שמתעדכן מדי פעם והגרסה העדכנית שזה 1.4 נכון להיום גם כוללת תשתית תומכת לwindows phone. כל מה שיעניין אותנו במדריך מקוצר זה הDLL  הספציפי של WPF, אז ניקח אותו מ BIN\WPF\Debug ,על הדרך ניתן רפרנס גם לDLL  השני שנמצא שם שזה system windows interactivity כי נצטרך אותו (זאת לא הדרך היחידה להוסיף אותו כי הוא נמצא בכל מקרה בספריה של system windows אבל חבל לדפדף שוב..) אוקיי. מה נותן לי Caliburn?? קודם כל ברגע שאנו ניגשים לבנות אפליקציה גדולה נצטרך...
תגובה אחת

Random Number

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