כפרמטר באובייקטC# Struct.

30 בMarch 2013

מהו Struct? ולמה אני צריך אותו? השאלה המעניינת היא מי בכלל משתמש בו?? למעשה אם הקוד שלכם מכיל גיוון של אובייקטים, סטרקטים, אינטרפייסים , ואובייקטים אבסטרקטים אז אחד מהשתים, או שאתם אנשי מקצוע טובים שמבינים במה כל טיפוס טוב ורע או שלא.. Struct הוא אובייקט "מנוון" ?? ממש לא, צורת ההגדרה פשוט מזכירה שימוש באובייקטים. שזה אומר שימוש בשדות, קונסטרקטור וכו'. למעשה זה די דופק אותנו הדימיון הזה כי ישנה נטייה להשתמש בהם בצורה הרגילה לשימוש באובייקטים וכאמור זה ממש לא אובייקט. שפת c#  מלאה ב Structures בשימוש יום יומי בלי שאנו בכלל שמים לב.. לדוגמא: System.Windows.Media.COLOR; System.Windows POINT;System.INT32  חשוב להבין ש Struct הוא Value Type ולא Reference  Type כמו אובייקט. מה...
תגיות:
אין תגובות

WPF-Custom Controls Part 2- Custom Button

  התחלתי לדבר בפוסט הקודם בסדרה זו על מבוא לקונטרולים בWPF ועל עצם ההפנמה שכתיבת פקדים בWPF היא  , משימה פשוטה שהתנסות בתחום "תתייג" אתכם כמתכנתים מנוסים, לפחות בקרב מפתחי UI. (אם לצערכם נקלעתם לתחום..) הפעם נתקדם צעד קטן וננסה לכתוב כפתור.. כתיבת כפתור מחדש זה למעשה די טפשי, כי הכפתור הקיים הוא די מושלם, יש לו את כל סוגי האירועים והפונקציונאליות שאפשר לחשוב עליה. למעשה אם הייתי מנסה הייתי אומר שתדרשו לכתוב כפתור מנוון יותר ואם פחות פונקציונאליות מהכפתור הקיים. בואו נגדיר כמה דרישות ונזרום איתם. (אני יוצר דרישות on the fly): א.     כל לחיצה מרימה פופ אפ, -חלון הודעה- ננניח שכותב "אתה בטוח שברצונך ל.." כי נניח שהכפתור החדש ממוקם כלחצן סגירה...
תגיות:
2 תגובות

The type initializer for ‘System.Windows.Application’ threw an exception

26 בMarch 2013

this kind of ugly exception throws in case you working on your App.config file,the point is you cannot dealing with it because no one or thing pointing you to the problem reason. Not even Resharper or other tools as I know.Well there are two ways to work with config file correctly, at least if you are not use to work with,The first is just recompile after every change you just did..But in most of time it just happened on the way and we need way to find quickly whats wrong.The fastest way is mark section after section in your...
תגיות:
2 תגובות

Stream and serializable סטרימינג וסריאליזציה למתחילים

24 בMarch 2013

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

WPF-Custom Controls Part 1

19 בMarch 2013

כתיבת קונטרולים תמיד נחשבה לדבר מורכב שהעיסוק בו נשמר ל"מומחים" או לפחות למפתחים מנוסים. למעשה בWPF העסק לא נורא בכלל, צריך רק להבין כמה דברים בסיסיים ואפשר לרוץ.. נתחיל בזה שנדרש ידע בסיסי בWPF כי אם אנחנו לא יודעים מה זה Dependency Property או מה זה Routed Event, או מעולם לא כתבנו Resource Dictionary משלנו יהיה קשה להתחיל ישר מכתיבת קונטרולים, למרות זאת אני אנסה במדריך מקוצר להוכיח שזה קל עד כדי מפתיע. כדי להתחיל חשוב שנבין קודם כל את המבנה של עץ הירושה הבסיסי של WPF, (הוא לא שונה מכל עץ אחר ב.NET אולי קצת מסועף יותר ממה שהיה בWinForm למשל.) בראש העץ יושב (נשמע כמו...
תגיות:
אין תגובות

MVVM part 9 – introduction to Prism

6 בMarch 2013

הגענו לחלק שבו נסקור את Prism ונלמד איך משתמשים בו בקלות רבה. Prism זו ספריה פשוטה עם המון רעיונות שלא בכולם חייבים להשתמש, בסופו של דבר היא באה לעזור לנו ואנו לא חייבים לקבל את כל העזרה. אז מה הרעיון ב Prism? הרעיון הבסיסי הוא כמובן אפליקציה מבוססת ארכיטקטורה של MVVM , אבל הרבה מעבר לזה. הרעיון הוא לספק תמיכה לאפליקציות UI מורכבות, עם הפרדת תלות מוחלטת. זאת אומרת שיש לי מעטפת (Shell)  שמכילה אזורים Region's בשפה המקצועית וכל אזור כזה באופן פנימי מוכל ע"י User-Control ומנהל לוגיקה פנימית משלו באמצעות View-ViewModel, אבל כשמדברים על אזורים חשוב לעשות אבחנה בין חלקים לוגיים לחלקים מעשיים וכאן מופיע הרעיון...
תגיות: ,
4 תגובות

How to serialize MultiDimensional Array C#

2 בMarch 2013

if you ever tried to serialized statement that includes something like in WCF either or just for saving Data, you probably found yourself Dealing with the Next Ugly Exception “Cannot serialize object of type (Namespace.Class) . Multidimensional arrays are not supported”. Well, the bad news is there isn’t any trick for make it works , the Problem is in the way that Multidimensional Array is really compiled behind the scene , and it simply an regular array what made the Serializer Engine blind since the access to internal array is blocked , the question is why the architectures of serializing in Dot Net has leave that dark corner...
6 תגובות

Memento Design Pattern

Memento Design Pattern ממנטו בתרגום חפשי זאת מזכרת, מהות התבנית היא לשמור מצב של אובייקט\ים לצורך שימוש\שחזור מאוחר יותר, ישנו דמיון מסוים לcommand Pattern במובן הזה שאתו מקובל לממש redo undo, רק שכאן אני לא משחזר פעולה אלא מצב נתון של אובייקט, ויותר מזה Memento יתמוך בשחזור מלא גם לאחר סגירת התכנית. הדוגמא הטובה ביותר זה משחקי מחשב שמאפשרים לשמור מצבים באמצע שלב ולחזור בדיוק לנקודה. בדרך כלל כשמעלים לדיון בדוט נט את ממנטו כתבנית עיצוב הפתרון המוצא הוא באמצעות סריליזציה – כתיבה לזיכרון של אובייקטים. דוט נט יודע באמצעות Reflection לבנות אובייקטים כאלה מתוך קובץ בינארי או XML. ונציג דוגמא בסיסית לתבנית. נניח שיש לי משחק...