State in asp.net – Part 2

28 ביולי 2010

  המשך לפוסט בנושאי שמירת מידע בעולם ה - web     תקראו את הקוד הבא   Application.Add("a", "a"); Application.Add("a", "b");   Session.Add("a", "a"); Session.Add("a", "b");   Cache.Add("a", "a", null, ...); Cache.Add("a", "b", null, ...);   Context.Items.Add("a", "a"); Context.Items.Add("a", "b");         var a1 = Application; var a2 = Session; var a3 = Cache; var a4 = Context.Items;     לפני שתמשיכו לקרוא תחשבו קצת מה יקרה לדעתכם ?   ... ... ... ... ... ... ... ... ... ... ... ...   אז ככה.   ה - Application לא ישנה את הערך שלו ולכן לא כדאי אף פעם להשתמש ב - Add ותמיד להשתמש ב - Indexer.   ה - Session קורא ל - Indexer הפנימי בקריאה ל - Add ולכן הערך ישתנה.   ה - Cache מתנהג כמו Application   ה - Context.Items הוא Dictionary רגיל ולכן זה יתרסק בניסיון להכניס פעמיים...
תגיות: , ,
תגובה אחת

האם יש טקסט עברי בתוך מחרוזת

26 ביולי 2010

  כיצד ניתן לוודא האם יש עברית בתוך מחרוזת.   באתרי אינטרנט נהוג להשתמש בלוקליזצייה כדי להחליט האם להציג את האתר מימין לשמאל או משמאל לימין.   השאלה מה קורה כשמציגים בעברית ועדיין רוצים להציג קטע טקסט מסויים משמאל לימין במידה ואין בו עברית.   יוסי גולדברג מצא את המתודה הבאה   public static bool HasHebrewChar(this string value) {     for (int i = 0; i < value.Length; i++)     {         if (value <= 'ת' && value >= 'א')         {             return true;         }     }     return false; }   אני הייתי משנה את זה לקוד הבא.   public static bool HasHebrewChar(this string value) {     return value.ToCharArray().Any(x => (x <= 'ת' && x >=...
תגיות:
7 תגובות

יצירת קובץ לינק מקוד

  איך מייצרים קובץ מסוג לינק מקוד     הקרדיט לפוסט הנוכחי שייך לפיני דיין   הקוד יהיה מאוד פשוט     static void Main(string args) {     CreateLink(@"C:\app\MyLink.url", "http://www.sela.co.il/"); }   public static void CreateLink(string linkName, string linkBase) {     using (StreamWriter writer = new StreamWriter(linkName))     {         writer.WriteLine("");         writer.WriteLine("URL=" + linkBase);     } }   צריך לשים לב לכמה נקודות   חייב להיות / בסוף ה - url צריך לתת סיומת url לקובץ הלינק צריך להתחיל ב - =URL
תגיות:
3 תגובות

The process cannot access the file 'File Name' because it is being used by another process.

25 ביולי 2010

כיצד לקרוא תוכן של קובץ כשהוא תפוס על ידי מישהו אחר.     נניח שאתם משתמשים ב - log4net או בכל קוד אחר שעושה logging לאפליקצייה שלכם, ואתם רוצים לתת לינק שיראה את תוכן הקובץ, הבעייה היא שלרוב פותחים את הקובץ לכתיבה ולא מגדירים שניתן יהיה לקרוא ממנו במקביל וכשמנסים לקרוא מקבלים את הודעת השגיאה     The process cannot access the file 'File Name' because it is being used by another process.   הפיתרון היחיד שמצאתי הוא להשתמש ב - File.Copy ולהעתיק את הקובץ - זה לא אמור להיות פיתרון יקר מבחינת ביצועים מכיוון שתמיד נעתיק קובץ אחד ונדרוס את הקודם ומסתבר של - File.Copy מותר...
תגיות: ,
5 תגובות

Get a picture from a frame

21 ביולי 2010

  איך ניתן לקבל תמונה של frame מתוך סרט.   נשתמש ב - DirectShowLib-2005.dll,   הורידו את ה - class Video מכאן. (למעשה העתקתי את הקוד הזה לפני זמן רב מאתר מסויים שלצערי אני לא מוצא אותו כרגע - במידה ואמצא את הקוד אתן קרדיט כמובן).   השימוש בו הוא מאוד פשוט.   public byte GetFrame(string fileName, double seconds, int width, int height) {     try     {         Video v = new Video(fileName);         using (MemoryStream stream = new MemoryStream())         {             v.GetBitmap(seconds, width, height).Save(stream, ImageFormat.Jpeg);             var data = new byte;             stream.Seek(0, SeekOrigin.Begin);             var count = stream.Read(data, 0, data.Length);              ...
תגיות:
2 תגובות

Remote Debugging – המדריך המקוצר

20 ביולי 2010

  איך אפשר להפעיל דיבוג מרחוק (Remote Debugging).     בפוסט זה אני אציג מדריך מקוצר להפעלת דיבוג מרוחק.   כידוע אחד הדברים הקשים ביותר בפיתוח זה תהליך ההעלאה של האפליקצייה לשרת, ואחד הדברים הקשים עוד יותר זה להבין למה הדברים לא עובדים כמו שצריך, ובדרך כלל מה שעושים זה לכתוב ללוג ולקרוא אותו, כעת נראה כיצד ניתן לדבג על ה - visual studio הלוקלי את האפליקצייה שיושבת בשרת.     1. חפשו במחשב שלכם תייקיה שנקראת Remote Debugger זה אמור לשבת ב - C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger (כמובן שיש לכל גרסה של visual studio תוכנה משלה) בתוך התיקייה יש בדרך כלל גרסה עבור 32 ביט ועבור...
תגיות: , ,
תגובה אחת

חגיגת פוסט השלוש מאות

  טוב זהו פוסט מספר 300 שלי - ואין לי שום רעיון מיוחד לכתוב עליו. אני פשוט מתרגש מעצם העובדה.   למעשה הגעתי למסקנה שהסיבה שאני כותב ומתחזק את הבלוג זה הרבה יותר בשביל עצמי מאשר בשביל אחרים, כלומר אני שמח שאני עוזר לאנשים ושיש לי קוראים לבלוג אבל אני מרגיש שעצם הכתיבה מפתחת אותי ברמה אישית ומקצועית ואני מקווה שאני אמשיך לכתוב עוד הרבה זמן.     וכמובן קצת סטיסיטיקות.   הפוסט הראשון היה ב עשירי לנובמבר 2008 - ממוצע של פוסט ביומיים   600 תגובות  - ממוצע של שני תגובות לפוסט.   שלושה סרטונים (הבטחתי סרט לשבוע - לא עמדתי בזה לצערי אך אני מקווה שמעכשיו אני אעמוד בזה)   ארבעה...
תגיות: ,
8 תגובות

תהליך בחירת השפה להצגת האתר

19 ביולי 2010

  מהו התהליך שצריך (לדעתי) להיות כדי להחליט מהו השפה (ה - Culture) שנציג את האתר.     בדרך כלל במידה ובונים אתר שתומך בשפות יש למשתמש אפשרות בחירה באיזה שפה הוא רוצה לראות את האתר, לאחר שהמשתמש בוחר את השפה נשמור את הערך בעוגייה כדי שבפעם הבאה שהוא יגיע לאתר הוא יכנס עם הבחירה הנכונה.   התהליך להחלטה צריך להיות כזה.     Query String Cookie User Language Default     בשלב הראשון נרצה להסתכל על ה - Query String - מכיוון שמסתבר שנרצה לשלוח לינק לאתר לאנשים שונים והיות שזה הפעם הראשונה שהם נכנסים לאתר נרצה שיהיה לנו את היכולת לקבוע באיזה שפה הם יראו את האתר והדרך שלנו לשלוט על זה הוא...
תגיות: , ,
3 תגובות

Enable and Disable "Script Documents" in visual studio

15 ביולי 2010

  איך ניתן להדליק ולכבות את מנגנון הדיבוג של javascript או של silverlight ב - Visual Studio.   כידוע החל מ - VS2008 ניתן לדבג java script ב - visual studio בצורה קלה בעזרת ה - Script Documents   היום לפתע זה הפסיק לעבוד (אצלי) - כלומר כשהרצתי את אתר ה - WEB לא הופיע ה - script document מה שאומר שלא יכולתי לדבג את הקוד.   אחרי קצת שיטוטים בגוגל הגעתי לכאן מסתבר שהתקנתי לאחרונה silverlight וה - debugger של silverlight לא מוכן לעבוד יחד עם ה - debugger של asp.net.   ולכן אתם צריכים לבחור מה אתם רוצים לדבג, הבחירה נעשית המאפיינים של הפרוייקט תחת הטאב WEB        
תגיות: , , ,
אין תגובות

State in asp.net

14 ביולי 2010

  היכן ניתן לשמור מידע בעולם ה - web.     כידוע לכל מפתח WEB מתחיל - עולם ה - WEB הינו state less כלומר לפי ההגדרה אתר לא אמור לשמור מידע על המשתמשים בו, למרות זאת הרבה פעמים אנחנו צריכים לשמור מידע.   בפוסט הזה נסכם את האופציות.     צד הלקוח.   עוגיות - עוגיות הם אחד מהאופציות הישנות והטובות לשמירת מידע, היתרון הגדול שלהם הם שניתן לשמור בהם מידע לאורך זמן החיסרון הגדול שלהם שהם נשלחים בכל בקשה לשרת, ניתן לקרוא עוד כאן .   hidden filed - ככל האלמנטים מסוג input הערכים שבהם נשלחים לשרת ולכן אפשר לשמור בו מידע מבלי שהמשתמש יראה, כמובן שאחרי מעבר לדף אחר...
תגיות: , , ,
תגובה אחת