התקנה ושימוש ב – Elmah בפרוייקט MVC

יום חמישי, אפריל 23, 2015

אחד התותחים בפורום תפוז (דוד גילי) התעניין בנושא טיפול בשגיאות בפרוייקט MVC, ועניתי שבדרך כלל אני  משתמש ב – Elmah בשביל לתעד וב – Application_Error בשביל להעביר לדף שגיאה. בפוסט הנוכחי, נסקור כיצד משתמשים ב – Elmah בשביל לתעד שגיאות. נקרא: כיצד מגדירים את השימוש בפרוייקטי MVC. נראה כיצד לשמור את הנתונים ב – SQL. כיצד לשמור את הנתונים ב – SQL Azure. כיצד לשמור את הנתונים בקבצי XML (כך שבמידה ואין הרשאות וכדו’ עדיין ניתן יהיה להשתמש במנגנון)  כיצד ניתן לכתוב ללוג של Elmah גם אם לא קרתה שגיאה, או אם תפסנו אותה.  ...
תגיות: , , ,
4 תגובות

ניהול בסיסי של תהליך כניסה והרשאות לאתר

יום חמישי, דצמבר 15, 2011

  ניהול משתמשים והרשאות הוא אף פעם לא מהדברים הקלים, בפוסט זה נראה כיצד נשתמש במנגנון הבסיסי של asp.net כדי לוודא שאי אפשר להגיע לשום דף לפני שעברו תהליך login בהצלחה, בנוסף נראה כיצד אנחנו "אומרים" לשרת שהמשתמש עבר לוגין.     הדבר הראשון שנרצה לעשות זה להגדיר שהמשתמש לא יכול לגלוש לשום מקום לפני תהליך login, כדי לעשות זאת נכתוב בקובץ הקונפיג תחת system.web את המקטע הבא:   <authorization>   <deny users="?"/> </authorization>   המשמעות של authorization היא הרשאות, במקטע זה אפשר להגדיר חוקים שונים למי מותר להכנס ולמי אסור, ההגדרה הבסיסית ביותר היא כפי שהגדרנו למעלה.   מה שכתבנו הוא שאין לאפשר כניסה למשתמש שהוגדר כאנונימי - אנונימי -...
2 תגובות

Web Service – basic

יום שלישי, דצמבר 6, 2011

  בתפוז עלתה השאלה כיצד מתחילים לעבוד עם web services, בפוסט זה אני אדגים את השלבים צעד אחר צעד לאלו המתחילים את דרכם בעולם ה - web.     בפרוייקט ה - web צריך להוסיף item חדש מסוג web service (סיומת asmx) - נקרא לו MyWebService.   יווצרו שני קבצים - הראשון MyWebService.asmx שאם תלחצו עליו עם העכבר ותבחרו ב - View Markup תראו שיש בו את השורה הבאה בלבד   <%@ WebService Language="C#" CodeBehind="MyWebService.asmx.cs" Class="WebApplication10.MyWebService" %>   שכל מה שכתוב כאן - היכן נמצא הקוד של ה - WebService.   הקובץ השני נקרא MyWebService.asmx.cs המכיל את הקוד שלנו. כברירת מחדל נקבל את הקוד הבא:   // To allow this...
5 תגובות

העלאת קובץ לשרת ישירות אחרי הבחירה שלו

יום ראשון, יוני 19, 2011

  בתפוז שאלו כיצד אפשר לגרום להעלאת הקובץ ישירות אחרי שבחרו אותו ללא צורך בלחיצה על לחצן שיעשה PostBack.   כמובן שאפשר להשתמש ב - FileUplaod של ajax contorl toolkit.     במידה ומשתמשים בפקד של asp.net ניתן לפתור את זה בצורה הבאה:   1. לשים לחצן שלא רואים אותו (ע"י style).   2. להרשם לפונקציה של onchange ב - FileUpload.   3. ללחוץ מ - js על הלחצן המוסתר.     הקוד יראה כך:   <asp:FileUpload runat="server" ID="fu" onchange="doCustomPostBack()"></asp:FileUpload> <asp:Button ID="btn1" runat="server" OnClick="save_file" Style="display: none" />       <script>         function doCustomPostBack() {             document.getElementById('btn1').click();         }     </script>     protected void save_file(object sender, EventArgs e) {     byte data = fu.FileBytes; }
תגיות: , ,
2 תגובות

boxing – unboxing

יום שלישי, מאי 24, 2011

  בתפוז עלתה השאלה, מהו boxing - להלן הסבר בסיסי.     בעולם ה - NET המשתנים מחולקים לשני סוגים, אלה שנקראים value type ואלה שנקראים reference type, (נקרא להם val, ref בהתאמה) ההבדל המרכזי ביניהם הוא היכן הם ממוקמים בזיכרון כשמגדירים אותם, ה - val ממוקם במקום שנקרא stack, שנניח נראה ככה (לא בדיוק)   name         type        value i                 int          10 c12            char         f   לעומת זאת האובייקטים מסוג ref ממוקמים במקום אחר הנקרא heap כשהגישה אליו היא דרך מצביע מה - stack   i                int           10c12           char         f p1             Perons     23F2A (address of p1 data)       עכשיו נעבור לרגע לנקודה נוספת, בעולם ה - Object Oriented אנחנו יודעים שאבא יכול להצביע לבן - לדוגמא -...
תגיות: , ,
2 תגובות

שיחזור החלון המוכר של השגיאות

יום שלישי, מאי 17, 2011

  בתפוז עלתה השאלה הבאה:   יש לנו בעבודה שני מחשבים. בשניהם מותקן VS 2010. באחד חלון הException נראה כמו החלון הרגיל, דהיינו עם אופציה לראות את הException הפנימי ועוד כל מיני דברים, אבל במחשב השני החלון של הException נראה מאוד מצומצם (ומצ'וקמק) ואין אופציות לראות את הException  הפנימי. השאלה היא איך אני מאפשר לראות את חלון הException הטוב?     החבר'ה הטובים מתפוז לא ממש הבינו למה הוא מתכוון והיות שידידינו לא הסכים להביא צילום מסך הם לא יכלו לעזור לו.   אני מניח שהוא התכוון לדבר הבא:   חלון ה - Exception הטוב - זה החלון הזה:     חלון ה - exception מצ'וקמק הוא התכוון לזה:       והפיתרון לקבל את החלון הטוב ולא...
5 תגובות

Open Select User or Groups dialog

יום שלישי, אפריל 26, 2011

  נשאל בתפוז וב - MSDN כיצד ניתן להקפיץ את החלון Select User or Groups.   לאחר קצת שיטוטים ומחשבות פניתי לברוך פריי שהוא אחד מהראשונים בצוות ALM (וגאון) היות שהנחתי שב - tfs יש צורך לבחור משתמשים,   ברוך חקר קצת וכעבור רבע שעה חזר אלי עם class שמלא ב - internals אבל הפעלה של אחת מהפונקציות שלו עושה את העבודה. כך נראה ה - main   class Program {     // Declare external functions.         private static extern IntPtr GetForegroundWindow();           private static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);       static void Main(string args)     {         int chars = 256;         StringBuilder buff =...
תגיות: , , , ,
תגובה אחת

איחוד תוצאות של שתי שאילתות שונות לשאילתא אחת בעמודות

יום שני, ינואר 10, 2011

  עלה לי הצורך לאחד תוצאות של שתי שאילתות לאחת, מה הכוונה ?   שאילתה אחת החזירה את התוצאות הבאות: a b c d   שאילתה נוספת החזירה את התוצאות הבאות: 1 2 3 4     כעת הייתי צריך לאחד את התוצאות, במידה והצורך היה לחבר אותם ולהחזיר כמה שורות השאילתא הייתה פשוטה - בעזרת union     SELECT Column1 FROM Table1 UNION SELECT Column2 FROM Table2   ואז הייתי מקבל a b c d 1 2 3 4   אבל כפי שציינתי הצורך היה לחבר אותם בעמודות. בצורה הבאה:   a    1 b    2 c    3 d    4   למי שלא מכיר עדיין את הפורום המצויין לתכנות בתפוז - הגיע הזמן להכנס ולהכיר אותו, הפניתי את השאלה בתפוז ותוך כמה דקות ענה לי tenen שאני יכול להשתמש ב  - Row_Number כדי לבצע JOIN, ואכן מה השאילתא נכתבת...
תגיות: , ,
2 תגובות

Adding a Windows Forms Control to Web page – Part 2

יום שישי, פברואר 12, 2010

  בהמשך לפוסט שהראיתי איך להוסיף Windows User Control לדפי Web (בעזרת ActiveX).   אני רוצה להדגים גישה למאפיינים ולמתודות של ה - User Control.     גישה למאפיינים היא מאוד פשוטה.   כל מאפיין שהוא public אפשר לגשת אליו בעזרת param - לדוגמא:   <object id="UserControl1"         classid="http://localhost/MyApp/ActiveXControls.dll#ActiveXControls.UserControl1">     <param name="BorderStyle" value="FixedSingle" />     <param name="Enabled" value="false" /> </object>   שימו לב שלמאפיין BorderStyle נותנים ערך בלי ה - namespace.   כדי שתוכלו להפעיל מתודות צריך לשנות ב - assembly info את ה - atttibute של ComVisible ל - true     כעת ניתן להפעיל ב - java script מתודות.   נניח שיש את המתודה הבאה ב - User Control   public int Add(int a, int b) {     return a + b; }   ניתן...
תגיות: , , ,
אין תגובות

Adding a Windows Forms Control to Web page

יום רביעי, פברואר 10, 2010

  בתפוז עלתה שאלה האם ניתן להוסיף Windows Form Control ל - Web Application.   התשובה היא שזה אפשרי בעזרת ActiveX בצורה הבאה.   מייצרים פרוייקט מסוג Windows Form Conrols   מייצרים את ה - Contorl שלכם (זה יכול להיות עטיפה ל - button פשוט)   אחרי הקימפול מעתיקים את ה - dll לתיקייה של ה - web (לא להוסיף reference - אלא להעתיק את ה - dll לאותה תיקייה שבה יש את הדפים).   כעת ב - aspx שלכם תכתבו כך:   <object id="UserControl1"     classid="http://localhost/MyWebApp/ActiveXControls.dll#ActiveXControls.UserControl1"> </object>   מה שחשוב הוא שה - classid יהיה אל ה - dll ובסוף מוסיפים אנקור # ל - class.   ניתן להוריד דוגמא מכאן.
תגיות: , , ,
2 תגובות