הגדרה של appSettings

31 במרץ 2010

  בתוך קבצי קונפיג יש לנו מקטע של appSettings שבו אנחנו מכניסים רשימה של key=value   <appSettings>   <add key="MyKey" value="MyValue"/>   <add key="TheKey" value="TheValue"/> </appSettings>   בקוד אנחנו נגש אליהם בעזרת   string value = ConfigurationManager.AppSettings;   (צריך להוסיף reference ל - system.configuration.dll)     יש ל - appSettings שני מאפיינים מעניינים האחד נקרא file והשני נקרא configSource. שניהם מאפשרים להוציא את ה - appSettings לקובץ נפרד לדוגמא   <appSettings configSource="mySettings.config"/>   ובקובץ המצויין יהיה את כל ההגדרות - זה מאוד נחמד ונותן את האפשרות לסדר בצורה טובה יותר את קובץ הקונפיג.   ההבדל בין file ל - configsource הוא 1. configSource מחייב להעביר את כל ההגדרות של appSettings לקובץ החיצוני לעומת file שמאפשר להכניס חלק מהערכים בקובץ המקורי. 2. configSource...
תגיות: ,
אין תגובות

The error code is 29506 (Install SQL Server Management Studio Express – 64 bit)

24 במרץ 2010

  היות שאני בימים אלו בבית ולא מרגיש טוב כפי שכתבתי - חשבתי לנצל את ההזדמנות לקודד מספר אפליקציות שרציתי לעשות מזמן.   מותקן לי על המחשב Sql Server אבל לא הספקתי להתקין את ה - Management Studio, ולכן הורדתי את גרסת ה - Express מכאן.    בתהליך ההתקנה קבלתי את ההודעה הבאה     The installer has encountered an unexpexted error installing this package. This may indicate a problem with this package. The error code is 29506   אחרי שיטוטים בגוגל הגעתי לכאן, אחד מהתשובות שם (מה שהתברר כנכון) הוא להריץ Command Line עם הרשאות מנהל ולהפעיל משם את קובץ ההתקנה.   זה קצת מוזר מכיון שכשמריצים את ההתקנה בצורה...
תגיות: ,
3 תגובות

מציאת קובץ שבה מוגדר מחלקה

23 במרץ 2010

  עד היום (עד המעבר ל - Visual Studio 2010) כשהיינו בוחרים ב - Go To Definition על מחלקה מסויימת - היינו רואים באיזה Namespace המחלקה מוגדרת, אבל לא היה דרך הגיונית למצוא באיזה dll זה יושב (כדי לדעת למה לעשות AddReference)   ב - VS2010 כשמגיעים ל - Go To Definition בחלק העליון מופיע הקוד הבא:     #region Assembly mscorlib.dll, v4.0.30128 // C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll #endregion     פשוט תענוג
תגיות: ,
תגובה אחת

DevAcademy – Part 1 רשמים

  לצערי אני לא משתתף פיזית ב - DevAcademy אלא שוכב חולה במטה וחושב בערגה על הכנס.   אבל אז נזכרתי שלשמחתי הרבה מייקרוסופט וסלע מציגים את הכנס ב - Live כך שאני יכול איכשהו להשתתף. התחברתי ל Live בכתובת http://www.microsoft.com/israel/msdn/DevAcademy4/ והגעתי באמצע הרצאה על asure   ראשית כל כדאי לציין שהאיכות של ההסרטה היא מדהימה רואים ושומעים הכל בצורה מצויינת.   ההרצאה על Asure היתה טובה מאוד ונותנת הרגשה שכדאי לנסות אותה (מאוד התרשמתי מזה שהטכנולוגייה תומכת לא רק ב - net). המרצה הצליח להציג את הנושא בצורה מרתקת ומאוד אהבתי את ההדגמה הסופית עם ההגרלה.   השתתפתי גם בחידון בסוף ההרצאה אבל לצערי לא זכיתי בלפטופ, (כנראה שגם...
תגיות: ,
תגובה אחת

Installing an MSI in Compatibility Mode

16 במרץ 2010

  כידוע יש ב - Windows מה שנקרא "Run this program in compatibility mode" מה שמאפשר להריץ את האפליקציות ב"מוד" קודם של מערכת ההפעלה.   היום ניסתי להריץ msi כלשהו וקבלתי הודעת שגיאה שזה יכול לרוץ רק על xp או vista, חשבתי לעצמי שאוכל פשוט להריץ את ה - msi ב - Compatibility Mode, לדאבוני התברר לי שאין לקבצי msi אפשרות להרצה ב"מוד" קודם.   קצת שיטוט בגוגל והגעתי לכאן, הוא מציע להשתמש ב - Orca שזה הכלי של מייקרוסופט לשינוי קבצי msi אחרי שהם נסגרו (אפשר להוריד את זה מכאן)     בתירגום פשוט אלו השלבים:   1. התקינו Orca   2. קליק ימין על ה - msi ובחירה ב -...
תגיות: , , , ,
אין תגובות

Operator Overload – Part 1

15 במרץ 2010

  נניח שיש לכם את המחלקה הבאה:   class Dolar {     public double Value { get; set; }       public Dolar(double value)     {         Value = value;     } }   וב - main     Dolar d1 = new Dolar(10); Dolar d2 = new Dolar(20);   if (d1.Value > d2.Value) { }   לכאורה הקוד היה יותר קריא לו יכולנו לכתוב כך   if (d1 > d2) { }   כדי לעשות את זה צריך להוסיף למחלקה את הקוד הבא     public static bool operator >(Dolar d1, Dolar d2) {     return d1.Value > d2.Value; }   public static bool operator <(Dolar d1, Dolar d2) {     return d1.Value < d2.Value; }     למעשה נוכל לדרוס כמעט את כל האופרטרים שקיימים, אבל צריך לעשות את זה בזהירות כי אם נחליט שאנחנו מממשים את האופרטור <...
תגיות: ,
2 תגובות

מחיקת Cookie בצד השרת – HttpCookie.Expires

14 במרץ 2010

  הקרדיט מגיע לאחי יוסי גולדברג   כתבתי פוסטים על שימוש ב - Cookie. כעת נראה כיצד ניתן להסיר עוגיות בצד השרת.   נניח שיש לכם עוגייה שנקראת MyCookie ואתם רוצים להסיר אותה, למעשה בכל Request שיגיע מהלקוח ה - Cookie יצטרף לבקשה, מה שצריך לעשות זה לכתוב את הקוד הבא   Response.Cookies.Add(new HttpCookie("myCookie") { Expires = DateTime.Now.AddDays(-1) });   למעשה מצרפים ל - Response עוגייה עם אותו שם כשתאריך התפוגה נקבע לזמן ישן, כך כשהתשובה חוזרת ללקוח העוגייה נמחקת.     אם כבר מדברים על - Expires, אם נייצר עוגיות ולא ניתן שום ערך למאפיין הזה, הוא יחיה רק בזיכרון של הדפדפן וכשהדפדפן יסגר גם העוגייה תעלם, במידה וניתן ערך...
תגיות: , ,
אין תגובות

recycling של ה – Application Pool בזמן קבוע

  ב - IIS ל - ApplicationPool יש מאפיין מאוד מעניין שהרבה לא מודעים אליו. Regular Time Interval תחת קטגוריית recycling.   כברירת מחדל הערך שלו זה 1740 (29 שעות) המשמעות של זה שכל 29 שעות ולא משנה מה קורה באותו רגע יש restart ל - application pool,   לפעמים יש לזה משמעות קריטית לזמן שבו יש restart (אם למשל אתם עושים streaming ופתאום האפליקצייה שלכם עושה restart זה לא נעים.   אני לא חושב שכדאי להגדיר אותו ל 0 (כלומר לא לעשות אף פעם restart) אבל חשוב להכיר את המאפיין הזה ולבטל אותו בשעת הצורך. אם זה אפשרי אפשר להשתמש במקומו במאפיין Specific Times...
תגיות: ,
4 תגובות

IP in WCF and in WebService

8 במרץ 2010

  ב - WebService כדי לדעת מה ה - IP של ה - client שהפעיל את המתודה אנחנו כותבים:   HttpContext.Current.Request.UserHostAddress;   כדי לדעת את זה ב - WCF צריך לכתוב את הקוד הבא:   var context = OperationContext.Current; var prop = (RemoteEndpointMessageProperty)         context.IncomingMessageProperties;   string ip = prop.Address;
תגיות: , ,
אין תגובות