background-size in IE 8

יום שני, פברואר 13, 2012

  בפורום החדש של msdn על עולם ה - web, עלתה שאלה כיצד ניתן לאפשר שימוש ב -background-size גם בגרסאות ישנות של ie,   במידה וכל מה שרוצים הוא להתאים את התמונה לפקד שעוטף אותה - ניתן להשתמש ב - filter, בצורה הבאה:     filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='1.gif', sizingMethod='scale');   שורת הקוד הזאת תקטין את תמונת הרקע לפי גודל ה - div.   הבעייה אם אנחנו רוצים להגדיר רוחב וגובה של התמונה שלא תהיה באותו גודל של ה - div שעוטף אותה.   במקרה כזה בדפדפנים חדשים נוכל לכתוב   background-size: 90px 90px;     אחרי הרבה חיפושים הגעתי למסקנה שאי אפשר באמת ב - IE8 לתמוך בזה הצורה רגילה, לכן כתבתי את ה - handler עם הקוד...
אין תגובות

Change dimensions of a picture from byte array

יום ראשון, אוקטובר 10, 2010

כיצד לשנות גודל של תמונה המתקבלת כמערך של בתים נניח שיש לכם HttpHandler שמציג תמונה ממערך בתים, כדי לשנות את גודלו תוכלו בדרך כלל לכתוב קוד כזה   <img src="myhandler.ashx?id=5" width="150" /> אבל לפעמים יש מקרים שצריכים לספק את כתובת ה – handler כפרמטר לפונקצייה שאמורה לקבל כתובת של תמונה, במקרים האלו אנחנו צריכים את היכולת לשנות את גודל התמונה בתוך ה – handler. הקוד הבא יהיה שימושי. byte image = GetImage(); int size; if (int.TryParse(context.Request, out size)) {     using (MemoryStream msToRead = new MemoryStream(image))     {         Bitmap newImage = new Bitmap(Image.FromStream(msToRead), new Size(size, size));         using (MemoryStream msToWrite = new MemoryStream())         {             newImage.Save(msToWrite, ImageFormat.Jpeg);             image = new Byte;             msToWrite.Seek(0,...
אין תגובות

DDay.iCal – an iCalendar class library

יום רביעי, אוקטובר 6, 2010

  יצירת קבצי ics (קבצים שמשמשים בין השאר לקביעת פגישות ב - outlook) בעזרת DDay.iCal.   את הספרייה ניתן להוריד מכאן     דוגמא לשימוש (נניח שאתם כותבים handler שנקרא handler1) ה - handler מקבל כפרמטר את תאריך ההתחלה וכמה זמן (בשניות) זה ייקח   public void ProcessRequest(HttpContext context) {     iCalendar iCal = new iCalendar();     Event evt = iCal.Create<Event>();       var qs = context.Request.QueryString;     var start = qs;     var end = int.Parse(qs);       evt.Start = new iCalDateTime(DateTime.Parse(start));     evt.End = new iCalDateTime(DateTime.Parse(start).Add(TimeSpan.FromSeconds(end)));     evt.Description = "Body";     evt.Location = "Sela Collage Channel";     evt.Summary = "Subject";         iCalendarSerializer serializer = new iCalendarSerializer();     serializer.Serialize(iCal, context.Response.OutputStream, Encoding.UTF8);       context.Response.AppendHeader("Content-Disposition", "attachment; filename=fileName.ics"); }   ובעזרת ה - iCal מייצרים את הפגישה. כשמשתמש...
תגיות: , , ,
אין תגובות

Adding a Web reference dynamically at Runtime

יום שני, מאי 10, 2010

  כיצד ניתן לקבל מידע מרחוק בצורה דינמית - (כלומר בלי לעשות Add Web Reference בזמן הפיתוח.)   (אפשר להוריד את דוגמת הקוד מכאן)   נניח את המקרה הבא: אתם מפתחים אתר שיודע להציג סרטונים עבור חברות ואותם חברות מעוניינות להגדיר בצורה דינמית אלו פרסומות יוצגו לפני ואחרי הסרטון.   פתרון ראשון: נשמור בבסיס הנתונים כתובת של Web Service שתחזיר רשימה של מחרוזות (עם שמות הפרסומות)   בעייה: איך נפנה ל - Web Service בלי שאנחנו מכירים אותו מראש בזמן הפיתוח ? הרי בדרך כלל אנחנו מוסיפים Reference ומקבלים proxy שאנחנו עובדים איתו, מה נעשה במקרה שאנחנו לא יודעים מה הכתובת.     שני פתרונות. אחד מה שמוצע כאן שזה יצירה של ה - Proxy בצורה...
4 תגובות

XMLHttpRequest vs. PostBack

יום רביעי, אפריל 21, 2010

  זה נכון שכדי לעבוד עם AJAX אנחנו עובדים עם ספריות כמו של ScriptManager או של jQuery, אבל בכל זאת חשבתי לכתוב דוגמא לשימוש ב - XMLHttpRequest לבד.   את הדוגמא אפשר להוריד מכאן.   נניח שיש לנו מסך שנראה כך:   המשתמש יבחר שם - במידה והוא לוחץ על הלחצן server אנחנו ניגש לשרת בצורה רגילה (כלומר PostBack) ונביא נתונים אודות המשתמש. במידה והוא לוחץ על הלחצן xml אנחנו ניגש לשרת בעזרת XMLHttpRequest ונביא את הנתונים.     קוד ה - HTML     <div id='mydiv'></div>   <asp:ListBox ID="name" runat="server">     <asp:ListItem>shlomo</asp:ListItem>     <asp:ListItem>noam</asp:ListItem>     <asp:ListItem>yossi</asp:ListItem> </asp:ListBox>   <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Server" /> <input id="Button2" type="button" value="xml" onclick="GetHtml()" />       יש לנו handler שיודע להחזיר html לפי פרמטר בשם name - הנה...
תגובה אחת

הפעלה של מתודה מ – Web Service שנמצאת בדומיין אחר מתוך JavaScript

יום שישי, מרץ 5, 2010

  כתבתי כמה פוסטים על הפעלה של WebService מתוך JavScript ומקבלים תוצאות ב - JSON.   זה עובד מעולה בתוך אותו דומיין.   כלומר אם אני גולש ל - http://www.MyDomain.co.il/App/MyPage.aspx ובתוך הדף יש JavaScript שמנסה לגשת ל - WebService בכתובת http://www.MyDomain.co.il/Services/Person.asmx הכל יעבוד כמו שצריך.   אבל אם ה - JavaScript ינסה להגיע ל - Service בדומיין אחר http://www.OtherDomain.co.il/Services/Person.asmx אחת דינו של הקריאה להכשל ולהציג הודעת שגיאה (או אזהרה) של חוסר הרשאות     Microsoft JScript runtime error: Permission denied     חבר לעבודה (ערן גרוס, CTO you-niversity ארה"ב) הציע רעיון נהדר כדי לעקוף את הבעייה.   במקום לפנות מהסקריפט ל - WebService כדי לקבל את ה - JSON, ניתן לכתוב Handler שיחזיר JSON ולייבא אותו כקובץ JavaScript.   לדוגמא...
5 תגובות

גישה ל – Session מתוך handler

יום ראשון, דצמבר 20, 2009

  אם אתם יוצרים handler כלשהו (ashx) ואתם רוצים להגיע ל - session בעזרת contex.Session, תווכחו לדעת שזה null, כדי שתוכלו לגשת אתם צריכים אחד מהשניים,   אם אתם צריכים רק לקרוא תוסיפו את ה - interface הבא IReadOnlySessionState   ואם אתם רוצים גם לכתוב תוסיפו את ה - interface הבר IRequiresSessionState     שני ה - interface הם marked interface כלומר ללא שום מימוש (יותר מתאים שהם היו attributes)     הקרדיט מגיע ל - 15Secounds.com בפוסט הבא HTTP Handlers and HTTP Modules in ASP.NET (מומלץ לקריאה)
3 תגובות

יצירת מנגנון shortcut url באמצעות מנגנון ה – routing של asp.net

יום שבת, נובמבר 21, 2009

  יחד עם ה - MVC הגיע dll מאוד נחמד ששמו System.Web.Routing, הוא משמש מנגנון מאוד מרכזי ב - MVC כדי להפנות לדף המתאים לפי הבקשה . היות שהוא כל כך מוצלח ניתן להשתמש בו גם ב - asp.net לצרכים אחרים.   (חשוב לציין שיכול שמן הסתם רוב הלינקים בפוסט לא יעבדו - אלא הם הדגמה למה אפשר לעשות)   לדוגמא - אפשר להשתמש בו כדי לייצר מנגנון של Shortcut url - כלומר במקום שיצטרכו לכתוב http://www.sela.co.il/syl/syllabus.aspx?CourseCode=c2&CategoryID=165 אפשר לכתוב http://www.sela.co.il/url/syllabus/c2   או אפילו אפשר לייצר קיצורי דרך לאתרים שהם לא בדומיין שלנו - לדוגמא במקום להגיע לבלוג שלי עם הלינק http://blogs.microsoft.co.il/blogs/shlomo/ אפשר להגיע אליו דרך http://www.sela.co.il/url/shlomo   אז כמובן שמן הסתם תהיה מערכת ניהול ויש לנו...
6 תגובות

Download file in asp.net

יום שישי, אוקטובר 2, 2009

  בתפוז נשאלה שאלה:   מה הקוד שצריך לכתוב כדי להוריד קובץ בעזרת לינק פשוט ?   אני נתקל הרבה פעמים בשאלה הזאת - ולכן אני כותב כאן את דוגמת הקוד.     צריך לייצר handler ולכתוב ב - ProcessRequest את הקוד הבא:   public void ProcessRequest(HttpContext context) {     string fileName = context.Request.QueryString;     FileInfo fi = new FileInfo(fileName);     context.Response.ContentType = "application/x-rar-compressed";       context.Response.AppendHeader("Content-Disposition",         string.Format("attachment; filename=download{0}", fi.Name));       context.Response.WriteFile(fileName);     context.Response.End(); }   כמובן שה - ContentType צריך להיות לפי סוג הקובץ (אפשר לבדוק בעזרת המאפיין  Extension של FileInfo.     קוד ה - html   <a href="MyHandler.ashx?filename=C:\MyFile.rar">Download</a>
תגיות: , , , , ,
11 תגובות

קבלת גודל של תמונה ממערך של בתים בצד השרת

יום חמישי, ספטמבר 24, 2009

  בתפוז עלתה שאלה, כיצד לקבל מימדים של תמונה שהמקור שלה הוא handler ממערך של בתים.   לדוגמא, נניח שזה קוד ה - html <asp:Image ImageUrl="~/Handler1.ashx" ID="myImg" runat="server" />   הנה קוד ה - handler   public void ProcessRequest(HttpContext context) {     context.Response.ContentType = "image/bmp";       byte array = File.ReadAllBytes(@"c:\IMG_1181.jpg");       context.Response.OutputStream.Write(array, 0, array.Length); }   כעת אנחנו רוצים לדעת מה המימדים של התמונה.   הבעייה טמונה בהתנהגות של בקשות לשרת - למעשה התמונה myImg לא תקבל את התמונה במחזור החיים של הדף, כלומר לא הדף אחראי לתת לאובייקט התמונה את התמונה, אלא אחרי שהדף ירד ללקוח תתבצע עוד Request אל השרת כדי לקבל את התמונה מה - handler, ולכן אנחנו לא יכולים לדעת את מימדי...
אין תגובות