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

23 באפריל 2015

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

מספר דיאגרמות ב – Entity Framework

22 באפריל 2015

Entity Framework הינו אחד מהדרכים הקלות יותר לפתח בעבודה מול DB, אחד הפיצרים הנחמדים היא יכולת (כמו ב – DB) ליצור מספר דיאגרמות של אותו מודל.   ב – Model Browser יש Diagrams וניתן להוסיף דיאגרמות חדשות   שימו לב שאותו מודל (Student) מופיע בשני דיאגרמות שונות.
תגיות: ,
אין תגובות

IndexedDB

20 באפריל 2015

בפוסט זה נלמד אודות IndexedDB, וכיצד משתמשים בזה, הפוסט מסתבסס ברובו על מה שנכתב כאן. אנחנו נלמד על העבודה עם IndexedDB תוך כדי שנעבור על הנושאים הבאים: יצירת DB. הכנסת נתונים. שליפה. עדכון ומחיקה. שינוי הסכמה.   ראשית חשוב להבין ש – IndexedDB אינו DB רגיל (כמו SQL Server ודומיו – אלא הוא דומה יותר ל – NoSql, ובקיצור – המבנה אינו טבלאי אלא אובייקטלי) לפני שנמשיך ונראה דוגמאות קוד, חשוב להבין את המטרה – היום אנחנו מפתחים הרבה מערכות ב – WEB, לפעמים אנחנו רוצים לשמור מידע בצד הלקוח, אם בשביל מטמון, אם...
תגיות: ,
אין תגובות

DataAnnotations Number error message

19 באפריל 2015

אחד הדברים ש – asp.net mvc מביאה איתה, זה היכולת שלנו ליצור אלמנטי UI בעזרת helpers, אחד היתרונות של שימוש בשיטה זו, היא שהוא מייצר עבורנו הגדרות עבור jQuery Validation בצורה אוטומטית, לדוגמה – בהניתן הגדרת המודל הבאה: Code Snippet public class Person{        public int Age { get; set; }            public string Email { get; set; }} נוכל לכתוב html שיצור עבורנו אלמנטים, וגם ידאג להגדרת הולידציות Code Snippet @model WebApplication8.Controllers.Person<!DOCTYPE html><html><head>    <link href="~/Scripts/Site.css" rel="stylesheet" />    <link href="~/Scripts/bootstrap.css" rel="stylesheet" />        <script src="~/Scripts/jquery-1.10.2.js"></script>    <script src="~/Scripts/jquery.validate.js"></script>    <script src="~/Scripts/jquery.validate.unobtrusive.js"></script>    <title>Index</title></head><body...
תגיות: , ,
אין תגובות

היכרות עם עולם ה – Inversion of Control

אחד הצורות היותר חכמות לכתוב קוד, זה בעזרת IoC, כתיבה בשיטה הזו מאפשר הגדרת תלויות מאוד ברורה בין חלקים שונים בקוד, ומאפשרת בידול והגדרה של קטעי קוד ומה האחריות שלהם, ישנם מספר דרכים וספריות שעוזרות להגדיר את הקוד שלנו, אני משתמש בדרך כלל עם Unity. בפוסט זה נראה כיצד להתחיל, בשלב ראשון נגדיר Class Library ובו יהיו לנו מספר שירותים (Services),  (הכוונה לשירות לוגי), אחד תפקידו לכתוב ללוג. השני תפקידו לשלוח מיילים. השלישי תפקידו להביא הגדרות קונפיג (כתובות מייל, מיקומים על הדיסק) – המידע יכול להגיע ממגוון מקומות (בסיס נתונים, קובץ קונפיג וכדו’)  ...
תגיות: , ,
אין תגובות

Basic (or advance) Javascript – 3

15 בפברואר 2015

בהמשך לפוסטים הבסיסיים על JS שלפעמים זה נכנס לעולם ה – Advance JS, הפעם נסתכל על פונקציות כאובייקטים.   כולנו יודעים שהגדרת אוביקט בסיסי עם מאפיין, ניתן לכתוב בצורה הבאה: Code Snippet var obj = {};obj.prop = "some value";   אבל האם קטע הקוד הבא גם כן יעבוד ? Code Snippet var fn = function () {};fn.prop = "some value";   מסתבר שכן, ברמה הכי בסיסית כל פונקציה היא אובייקט ב – JS, נוכל לשכלל את זה לשמירת מידע על המידע שחוזר מפונקציה במטמון של עצמה, בצרה הבאה: Code Snippet function getElements(name) {   ...
אין תגובות

bootstrap-combobox-angular

2 בפברואר 2015

בפוסט בעבר כתבתי על שימוש על שימוש ב – bootstrap-combo, יחד עם אנגולר, בפוסט שם לא רציתי ליצור directive מיוחד, אבל בסופו של דבר החלטתי כן ליצור אותו, ולמעשה הקוד הוא די פשוט. (לינק להורדה) בבואנו ליצור directive שעוטף control כלשהו, עלינו לוודא כמה דברים: בטעינה הראשונית להפוך אותו לפקד המתאים שלנו (לרוב באנגולר נעבוד ב – SPA, כך שלא מתאים לכתוב קוד ב – document.ready). עדכון המודל שלנו כשהפקד משתנה. עדכון הפקד כשהמודל משתנה. במקרה של פקד עם מקור מידע (כמו בדוגמא שלנו – קומבו) צריך גם לשמור על סנכרון הפקד במידה והרשימה השתנתה....
אין תגובות

Authentication and Ajax

22 בינואר 2015

לקוח תיאר לי את הבעייה הבאה, “יש לי אתר שעובד ב – forms authentication, וה – timeout מוגדר עשרים דקות (ברירת המחדל היא 30), כמובן שבצורה אוטומטית ברגע שהמשתמש לוחץ על לחצן הפונה לשרת, לאחר שהזמן תם, הוא מועבר לדף הלוגין. לאחרונה עברנו לעבודה עם ajax, תוך שימוש ב – angular ו – singal page application, מה שקורה שברגע שהמשתמש לוחץ על לחצן (שעכשיו עושה פניית ajax) במידה שעברו ה – 20 דקות, התשובה מהשרת היא דף ה – html של הלוגין – אבל המשתמש לא רואה כלום, מכיוון שלא חזרה תשובת אין הרשאות לדפדפן” הבעייה שלו היא די...
תגיות: , , , ,
אין תגובות

Basic (or advance) Javascript – 2

1 בינואר 2015

בהמשך לפוסטים על Advance JS שאני לא בטוח האם זה Basic או Advance, הפעם אכתוב על שמות לפונקציות. (הרעיון לפוסטים ורוב הדוגמאות מגיעות מכאן)   לכולם די ברור שהקריאה לפונקציה היא לפי השם שלה, וכמובן ניתן לכתוב קוד רקורסיבי, לדוגמא חישוב הפקטור של מספר יכול להיראות כך: Code Snippet function factorial(num) {    // If the number is less than 0, reject it.    if (num < 0) {        return -1;    }        // If the number is 0, its factorial is 1.    else if (num == 0) {        return 1;    }        // Otherwise, call this recursive procedure again.   ...
תגובה אחת

Basic (or advance) Javascript – 1

30 בדצמבר 2014

לאחרונה העברתי שיעור על Advance Javascript, במהלך השיעור, לא הייתי סגור על עצמי האם הכותרת של Advance JS היא נכונה, או שבעצם אני מלמד Basic JS ופשוט אנשים בדרך כלל לא יודעים את החומר הנ”ל. אז אני אכתוב על הנושא – מדובר בפוסטים קצרצרים אשר יאירו נקודות שונות בנושא. הגדרת פונקציות הדבר הבסיסי ביותר ב – JS היא הגדרת פונקציות, ישנם שלושה דרכים להגדרת פונקציות: Code Snippet function MyFunction1() {    return "MyFunction 1";}var MyFunction2 = function () {    return "MyFunction 2";};window.MyFunction3 = function () {    return "MyFunction 3";}; מה ההבדל ביניהם, והאם הסדר משנה, כלומר האם נוכל...
אין תגובות