לגלישה באתר בגירסה המותאמת לסלולאר
| הוספת הודעה
הגדרות תצוגה

הגדרות עץ הודעות

מאפייני צפייה

הצג טקסט בתצוגה
הצג תגובות באופן
עדכן

פורום תכנות net.

בשנת 2002 השיקה מיקרוסופט טכנולוגיה חדשה, NET. היה חוסר במקום בו ניתן לשאול שאלות בנושא NET. בארץ, ולכן הוחלט לפתוח את פורום זה. 
פורום NET. (שנחשב כיום לפורום המוביל בארץ) הוא המקום בו יכולים מפתחים לשאול שאלות ולנהל דיונים בנושאים שונים.  לפני ששואלים בפעם הראשונה, יש לקרוא את תקנון הפורום.
 
 
 

הנהלת הפורום:

אודות הפורום תכנות net.

בשנת 2002 השיקה מיקרוסופט טכנולוגיה חדשה, NET. היה חוסר במקום בו ניתן לשאול שאלות בנושא NET. בארץ, ולכן הוחלט לפתוח את פורום זה. 
פורום NET. (שנחשב כיום לפורום המוביל בארץ) הוא המקום בו יכולים מפתחים לשאול שאלות ולנהל דיונים בנושאים שונים.  לפני ששואלים בפעם הראשונה, יש לקרוא את תקנון הפורום.
 
 
 
הוספת הודעה

צרף
תמונה וידיאו קובץ
קבצים המצורפים להודעה

לצפיה ב-'thread vs async await תהייה לגבי אסינכרוניות ב C#'
thread vs async await תהייה לגבי אסינכרוניות ב C#
21/03/2017 | 13:24
11
49
אני מפתח ב C# מערכת חדשה ותוהה לגבי נקודה שם
אני יודע להשתמש ב thread/threadPoll/ async -await אבל חסר לי סגירה של הנושא.
אני רוצה לפתח ב C# מעבר על רשימה של תיקיות ומחיקה של כל הקבצים בתיקיות האלה שמתחילים באות a (לדוגמא)
אז נניח שיש לי list של נתיבים.
בנוסף, אני רוצה לשלוט על כמות ה THREAD שירוצו
מספר שאלות בנושא
1- הרי כל ה THREAD שרצים , הם ירוצו תחת אותו פרוסס,
אז מה ההבדל במהירות אם ארוץ עם כמה THREAD או שרוץ עם THREAD אחד אבל כאשר אני מוחק קובץ אמחוק בפונקציה שהיא async ועל המחיקה אעשה await ?(ואז בזמן במחיקה ה thread שלי ימשיך לפעולות אחרות?)
אם ארוץ עם כמה THREAD הרי יש contex switch בניהם וזה אומר בזבוז זמן(כלשהו) במעבר בניהם.
 
 
2-
 אם אני עושה קוד כזה
 public static class FileExtensions {
  public static Task DeleteAsync(this FileInfo fi) {
     return Task.Factory.StartNew(() => fi.Delete() );
  }
}

FileInfo fi = new FileInfo(fileName);
await fi.DeleteAsync(); // C# 5
מה זה אומר בפועל?
אני עושה AWAIT על הפעולה deleteAsync אבל בפועל יפתח THREAD (מתוך THREADPOOL ) שיעשה זאת, וידרוש זמן CPU שהוא מחכה.
זה אומר שיהיה לי בסוף בזבוז זמן CPU על המתנה למחיקה , נכון?
לא כמו פעולה async אמיתית שאם אני עושה עליה AWAIT אני נשאר ב THREAD שלי(וממשיך לעבוד על דברים אחרים) ומקבל התראה כאשר הפעולה האסינכרונית נגמרה
 
3-לא ראיתי דרך ב C#  לעשות מחיקת קובץ בצורה אסינכרונית ( שבאמת יהיה אסינכרוני עד ממש ה KERNEL )
תודה רבה!
לצפיה ב-'-->'
-->
21/03/2017 | 15:33
10
27
1. קשה לראות את זה ברמה של מחיקה
בוא נדבר על פעולת IO אחרת
בוא נגיד שבמקום למחוק היית עושה כתיבה של קובץ
אין שום בנפיט אם תפעיל כמה THREADS ביחד
זה סתם יגרום לאיטיות
מצד שני אם זה יהיה SEQUENTIALLY אז לא יהיה לך את ה"בואו כולנו נלך לכתוב ויתהפך העולם"
אותו דבר במחיקה אבל בקטנה
 
את המחיקה עצמה כן הייתי עושה( או לא עושה) עם AWAIT כי זה פעולת IO.
אבל(!) זה לא חוק ברזל. צריך לבדוק את זה. יכול להיות שמשתלם לך לא לעשות את זה ASYNCיש - בגלל שמחיקה היא פעולה מאד מאד קצרה. כמובן שאם חשוב לך מאד  רספונסיביות אז תעשה את זה ASYNCיש.
 
 
 
2. נכון. לא הרווחת כלום ואפילו בזבזת THREAD. וגם החלק השני  נכון.
 
לצפיה ב-'TIL מזל שאמרתי שצריך לבדוק את זה -> הנה הסיבה'
TIL מזל שאמרתי שצריך לבדוק את זה -> הנה הסיבה
21/03/2017 | 16:26
9
24
מסתבר שעבודה ב PARALLEL גם במערכת קבצים ( SSD אצלי לפחות) יותר משתלם לעבוד עם PARALLEL.  ועל כן אני לוקח בחזרה את מה שאמרתי בסעיף 1  - אבל לא את החלק שצריך לבדוק.
 
בחלק הראשון של המבחן הנל אני קורא(!) פרללית ולא פרללית הרבה קבצים
 
ובחלק השני אני כותב(!) פרללית ולא פרללית 1000 קבצים שכל אחד בגודל 100000 בייטים.
 
בשניהם ( ולאחר כמה ניסיונות) התוצאות היו חד משמעית לטובת הפרללי !
כמובן שזה לא מבחן 100% משקף אבל נותן לך פחות או יותר תמונה .
 
הסתכל כאן במבחן : 
 
עכשיו לגבי האם ASYNC יאיץ את זה עוד יותר ? תבדוק ותחזיר תשובה:)
 
 
לצפיה ב-'בדקתי גם את החלק האחרון'
בדקתי גם את החלק האחרון
21/03/2017 | 16:50
8
18
ו ASYNC מאיט את זה
זה הגיוני כי הוא יוצר STATEMACHINE
 
 
 
לצפיה ב-'תגובה'
תגובה
21/03/2017 | 16:55
7
19
א- התמונה-הקישור שבור-אשמח לראות את הקוד שהרצת שאנסה לעשות זאת גם במחיקה
ב- לגבי האם הרווחתי בלעטוף את DELETE ב TASK RUN,  
מה שהבנתי שזה כן מקצה לו THREAD מתוף הTHREADPOOL אבל הTHREAD הזה לא תופס CPU(חוץ מלתפוס ולשחרר אותו)
ככה שהTHREAD הראשי שלי יכול להמשיך ולבצע פעולות(באמת במקביל למחיקה), ולכן ה CPU לא מחכה למחיקה
ג- ASYNC מאט את הכתיבת קבצים? מוזר, חשבתי שלתפוס כל פעם THREAD מה THREADPOOL יקח יותר זמן מאשר המכונת מצבים שהוא יוצר- אשמח לראות את הקוד המקבילי שלך שאמרת שהוא הכי יעיל
לצפיה ב-'>'
>
21/03/2017 | 17:00
6
19
א- התמונה לא שבורה אצלי (מוזר)
אני מדביק אותה שוב כאן
 
ב- לא מבין . TASK RUN כן פותח THREAD נוסף מה POOL. וזה שהוא לא משתמש ב הרבה CPU זה לא אומר כלום
כל THREAD נוסף זה עוד זיכרון.
א תתאר לך ש100K באים לעשות לך את זה ...אז 100K ט'רדים יפתחו ? נראה לך הגיוני? אפשרי אבל הוא יחנק.
 
 
ג - זה לא ASYNC מאט. המערכת ב RUNTIME יוצרת STATEMACHINE של לפני ה AWAIT ואחרי ה AWAIT והמעבר הזה - מאט את הפעולה בכללותה.
וקןדם כל השתמשנו כאן ב ASPARALLEL
ופה ה CATCH.
ASPARALLEL לא יצור לך THREADS יותר מ כמה CORES שיש לך
אצלי יש 8 CORES.
אז 8 THREADS עבדו.
(אתה יכול שהוא יצור לך יותר מ 8 אבל זה כבר משהו אחר)
 
לסיכום ולפי המבחו - אם אתה רוצה PERFORMANCE - זה עם ASPARLLEL  ( בלי ASYNC).
לצפיה ב-'תגובה'
תגובה
22/03/2017 | 09:08
5
8
א- AsParallel.
 למה שהוא יהיה יותר מהיר מאשר סידרתי? הרי בסוף אי אפשר למחוק 2 קבצים בו זמנית
 ואם הוא מחלק THREAD אחד לכל CORE זה מוזר, כי תמיד חשבתי שפרוסס רץ בתוך CORE אחד , ואי אפשר שפרוסס יחולק בין כמה CORE (מעניין..למדתי)
אז גם אם יש חלוקה לCORE , בסוף ה I/O יכול למחוק רק קובץ אחד בו זמנית
 
ב- אשמח אם תראה לי את הקוד שכתבת עבור ה AWAIT
 
תודה
לצפיה ב-'בוודאי'
בוודאי
22/03/2017 | 09:36
4
8
א-למה שהוא יהיה יותר מהיר מסדרתי ? לא יודע. אני אצטרך לברר את זה. כנראה זה קשור ל SSD יחד עם FW4. ( שוב כנראה)
מעניין יהיה לראות את המבחן עם HDD מחטים. פרוסס זה מרחב זיכרון .
בתוך כל פרוסס יש לפחות THREAD אחד שהוא תכלס רץ על CORES.
 
שוב - פרוסס זה וירטואליזציה של זיכרון , ט'רד זה וירטואליזציה של CPU.
תחשוב על CORE אחד עם תוכנית עם 5 ט'רדים.
כל אחד מקבל את ה TIME שלו על ה CPU. כלומר כל ט'רד רץ בזמן משלו ( ורק הוא) על ה CORE . אז אם אתה מסתכל עכשיו על הרבה פרוססים עם הרבה טרדים - אתה יכול להבין למה זה וירטואליזציה של CPU.
 
ASPARALLEL  - זה מה שכיף בו - שהוא פותח THREAD עבור כל CORE.
 
 
ב -  בוודאי הנה הקוד. שים לב שבניתי פונרציה קריאה וכתיבה אסינכית ולא אסינכית.  
רץ ב LINQPAD
לצפיה ב-'תגובה'
תגובה
22/03/2017 | 09:56
3
7
חשבתי בהתחלה ש AsParaller זה כיביכול "תיכנות ישן" ועדיף תמיד ASYNC שזה הרי החידוש של הדוטנט הדי חדש(3/4 שנים)
 
ב.
. אז מה דעתך?
יש לי WIN SERVICE בלי UI והוא עובר על רשימה של תיקיות(יש בהם המון קבצים)ורוצה למחוק קבצים בתנאי מסויים(גודל גדול מ X בתים)
איך עדיף לעשות זאת?
לעשות
 foreach directoryPath in ListOfDirectoriesPath
{
 Directory.EnumerateFiles(directoryPath , "*.*", SearchOption.AllDirectories).Where(item=>item.Length>1000).AsParallel().ForAll(T=>T.DELETE)


}
חושב שזה הכי מהיר?
לצפיה ב-'ממש לא'
ממש לא
22/03/2017 | 10:12
2
8
כל הקטע ב ASYNC זה לחסוף ב THREADING עבור פעולות שלא צריכות אותם
 
ASYNC תמיד היה
ב APM
EAP
TAP
 
פשוט עכשיו עשו את זה יותר קל למתכנת
 
לגבי ב' - צריך לבדוק
כמו תמיד תריץ בדיקה
לצפיה ב-'תגובה'
תגובה
22/03/2017 | 11:34
1
7
עזרת לי מאוד בהבנה כללית, אחזור כל על כמה שאמרת כדי ללמוד שנית
ברשותך כמה נקודות אחרונות
1- ASYNC זה לפעולות שיש מימוש להם כבר כASYNC כמו  readasync וכו' שאין בהם TASK.RUN ( לפחות לא בטוח כי אנו לא יודעים את המימוש) ולכן לא צריך לפתוח THREAD אלא כשהם יגמרו הם יודיעו לTHREAD שלי,
זה הכי טוב שיש
צודק?
2- AsParaller   בדוגמא שנתתי למעלה, (ונגיד שהגדלתי את כמות הTHREAD שלי מעבר לכמות הCORE ע"י MaxDegreeOfParallelism) מה יעשה?
ישלח כל ITEM לTHREAD נפרד, ואם נגמרו לי הTHREAD שהגבלתי אותו הם ימתינו עד שיתפנה THREAD ?
נשמע בזבזני לשלוח כל ITEM ל THREAD זה אומר שעבור כל ITEM אני תופס ומשחרר THREAD .
3- כאשר אני שולח ITEM ל THREAD דרך ה AsParaller   הרי הTHREAD ננעל מייד כי הוא מחכה ל I/O ואז ה THREAD הזה לא מקבל זמן CPU אלא ממתין עד שהפעולה תיגמר ?
אם כן למה שלא אגביל את כמות הTHREAD לפעולה הזאת לכמות עצומה?
 
4- לגבי הבדיקה, הסביבה שלי לא עובדת כרגע, נקווה שאצליח לשחזר אותה( אם ממש ישעמם לך אשמח אם תריץ בדיקה :) )
 
ממש תודה רבה על הכל
לצפיה ב-' >'
>
22/03/2017 | 13:18
10
1- 95% מדוייק. לפעמים יש פעולות שהם לא IO , לדוגמא חישוב מאד מסובך  ואתה ב יישום GUI ולא רוצה לתקוע את ה UI. אז אתה פותח TASK.RUN תחת מתודה שנקראת נגיד DOCALC - ואז שם אתה עושה AWAIT ( שים לב אין כאן IO)  ואז זה לא משפיע על ה GUI ( גם בלי ה AWAIT זה לא ישפיע כי פתחת ט'רד) אבל מה שכן זה יתן לך  CONTINUATION לתוצאה : 
 
 
somehere in the gui app you call this :

await DoCalc();


async DoCalc()
{
var t=    await Task.Run<int>(()=> some heavy CPU calculation);
       //now - do something with that t result

}

 
 
2- לא. MAXDEGREE OF PARALLELISM  יגדיל את מספר ה THREDINGS שהוא יפתח.  אתה לא חייב לפתוח כמה THREDS בשביל להוריד במקביל.
 
  //psuedo





await Task.WhenAll(listOffiles.Select( async f=> {await DownloadAsync(f); __doSomethingWithF__();}  ));
3- כאשר אתה שולח ITEM ל THREAD  על ידי ASPRALLEL ואתה לא עובד שם ASYNC , אז ה THREAD מחכה. והוא לא משרת אף אחד אחר ומחכה לתוצאה שתחזור. בשביל זה משתמשים בפעולות IO  עם ASYNC.
שוב לא צריך לפתוח THREAD בשביל לעשות פעולת IO במקביל ( ראה קוד עליון) אבל שאלת ספציפי אז אני עונה ספציפי.
 
4- בדיקה על מה ?
 
 
לצפיה ב-'interface ומחלקות אבסטרקטיות'
interface ומחלקות אבסטרקטיות
19/03/2017 | 09:40
1
31
אני מבין מה כל אחד עושה ואיך עובד אבל גם אחרי שחיפשתי לא מעט באינטרנט לא הצלחתי להבין .. האם interface יכול לרשת ממחלקה אבסטרקטית וההיפך האם interface יכול לממש מחלקה אבסטרקטית
תודה
לצפיה ב-'לא'
לא
19/03/2017 | 12:46
19
אינטרפייס לא יכול לרשת ממחלקה, כי הוא בסך-הכל הצהרה על members ציבוריים ולא מכיל בעצמו שום קוד בר-ביצוע.
 
זה כמובן גם היתרון שלו, הוא לא קוד אלא אוסף הצהרות בלבד. יתרון אחר נוסף חשוב של אינטרפייסים הוא שאפשר לרשת כמה מהם, להבדיל ממחלקות שכל מחלקה יכולה להיות לה מחלקה-אם אחת בלבד, אינטרפייס או מחלקה יכולים לממש אפס או יותר אינטרפייסים שונים.
 
בברכה,
זיו
לצפיה ב-'יש לי פרויקט מורכב להגיש ולא מוצאת את הידיים והרגליים'
יש לי פרויקט מורכב להגיש ולא מוצאת את הידיים והרגליים
17/03/2017 | 17:35
36
אין לי שאלה מסויימת לשאול, ואני ממש מבקשת שמישהו יפנה אליי בפרטי ויעזור לי צעד צעד עם הפרוייקט. זה מאד מאד יעזור לי.
תודה!
לצפיה ב-'הפצת תוכנה מבוססת vb.net עם MySql למחשבים אחרים'
הפצת תוכנה מבוססת vb.net עם MySql למחשבים אחרים
15/03/2017 | 09:22
20
בוקר טוב חברים,
בניתי תוכנה מבוססת VB.Net עם VS2010 עם רפרנס ל MySql.Data.Dll מConnector בגירסה 6.9.8 שהתקנתי במחשב עם מערכת הפיתוח.
לאחר סיום בנייה של התוכנה בניתי גם תוכנת התקנה לצורך הפצה של התוכנה למחשבים אחרים.
כאשר אני מתקין את התוכנה על מחשב אחר, אני מקבל שגיאה שהוא לא מוצא את ה DLL של MYSQL, למרות שבתוכנת ההתקנה הוא מעתיק גם את הDLL לתיקיית התוכנה.
מישהו יכול לעזור מה אני מפספס בשלב ההתקנה במחשב האחר? 
האם הייתי צריך לבצע עוד פעולה?
האם צריך להתקין את ה Connector של MySql  בכל מחשב בו אני רוצה שהתוכנה תעבוד ?
לצפיה ב-'קבלת גודלקובץ כאשר הוא longPath'
קבלת גודלקובץ כאשר הוא longPath
12/03/2017 | 10:37
4
36
אני רוצה מתוך C# לקבל גודל קובץ כאשר הנתיב אליו הוא long PATH (לדעתי מעל 260 תווים)
כאשר אני עושה 
 
 FileInfo f = new FileInfo(fileName);
long s1 = f.Length;
 
אני מקבל EX שאי אפשר כי זה נתיב ארוך מידי
 
אשמח לפתרון איך לעשות זאת
תודה
לצפיה ב-'כן היה לי את זה , FILEINFO לא תמך בזה אבל יש את הספריה הנל'
כן היה לי את זה , FILEINFO לא תמך בזה אבל יש את הספריה הנל
13/03/2017 | 09:24
3
33
לצפיה ב-'מעדיףבלי סיפריות כאלה'
מעדיףבלי סיפריות כאלה
14/03/2017 | 23:48
2
18
יש משהו עם INTEROP שאפשר להשתמש בפונקציה בנמצאת ב WIN API DLL
רק לא הצלחתי למצוא את זה
לצפיה ב-'אני לא רואה שם דוגמא לשימוש'
אני לא רואה שם דוגמא לשימוש
15/03/2017 | 00:13
22
האם ב GetFileSizeEx ?
אם כן אשמח בבקשה לדוגמא לשימוש(לא ראיתי שאומרים שזה פותר בעיה של LONG PATH)
לצפיה ב-'asp.net - אי המתנה לפונקציה'
asp.net - אי המתנה לפונקציה
06/03/2017 | 18:18
8
40
יש לי פונקציה שמקבלת משתנים, ושולחת מייל למשתמשים לפי פרמטרים שונים.
הפונקציה לוקחת הרבה זמן וכתוצאה מזה המשתמש ממתין עד שהדף עולה.
 
התהליך הוא כזה - המשתמש לוחץ על שמירה בטופס, בשרת מתבצעים כל מיני עידכונים לטבלאות ועוד (כשניה), ואז מופעלת הפונקציה למשלוח מייל - שהיא בתורה עוברת על כל מיני חוקים ואוספת נמענים למייל - חלק מהנמענים מגיעים לפי שאילתות על הActiveDirectory - וזה לוקח זמן.
 
האם יש אופציה לשגר-ושכח לפונקציה, ולמנוע מהמשתמש את זמן ההמתנה לסיום ריצת הפונקציה?
לצפיה ב-'-'
-
06/03/2017 | 20:31
2
63
יותר מומלץ : 
אתה כותב ל DB  ( או לכל מנגון אגירה אחר חיצוני) את כל המיילים שאומרים להישלח ( כלומר כל הפרמטרים וכו)
ואז  תבנה JOB  שפשוט ישלח את המיילים  ( אם מוגדר לך MAIL AGENT ב SQL)
או שפשוט יהיה קובץ חיצוני ( הרצה) EXE או SERVICE שפשוט דוגם את ה QUEUE ב DB ( את הטבלת של האימיילים  , עבור כל אלה שעוד לא נשלחו) ופשוט שולח אותם.
 
 
פתרונות אחרים כאן : 
 
לצפיה ב-'נחזור לשולחן השירטוטים'
נחזור לשולחן השירטוטים
07/03/2017 | 10:38
1
35
זאת מערכת ביצור, ועד היום הפונקציה עבדה טוב ומהר.
 
וכרגיל במערכות כאלו מישהו היכן שהוא החליט שחייבים לסבך את הפונקציה, ולהוסיף לה איתור נמענים בזמן אמת ועוד - וזה האריך את זמן הריצה.
 
מהפוסט של סטפן אני מבין שפיתרונות שגר ושכח לא מומלצים בasp.net מסיבות שונות.
 
נאפיין פיתרון של Queue או DB - ונקווה שהלקוח יבין שהוא גם צריך לשלם על זה
 
 
לצפיה ב-'כן'
כן
07/03/2017 | 13:22
29
הם לא מומלצים מהסיבה של RECYCLE שיכול להעיף את העבודה שלך
ולכן יש את האופציה השלישית שכן מאפשרת את זה ( ויש גם ספריות בנושא)
 
אבל עזוב
הכי נכון זה שמישהו אחר שהתפקיד שלו זה לקרוא מה QUEUE - אימיילים , לשלוח אותם
ןזה יכול להיות CMD או SERVICE או כל ישום אחר
וכמובן שה QUEUE יכול להיות כל מנגנון אחסון. לשם ההפשטה בחרתי בתשובתי להגיד SQL SERVER ( גם בגלל הסיבה שיש לו JOBS ובכלל אופציה הגדרת שרת MAILS)
אבל אם תשאל אותי - SQL SERVER לא אמור לשלוח מיילים
למרות שאני רואה א זה הרבה אבל אני לא מסכים עם זה
SQL SERVER זה מסד נתונים ומסד נצונים צריך להחזיק נתונים
את הנתונים של שליחת אימייל - שמישהו אחר יקרא ויעשה.
 
 
 
לצפיה ב-'לדעתי'
לדעתי
08/03/2017 | 08:54
4
33
כדי לא להמתין אפשר להריץ Task שלא מחכים לו (לא עושים לו await או result) זה הדרך המלוכלכת.
 
הדרך היותר יפה זה להבין שיש לך פה 2 משימות שלא קשורות אחת לשניה:
1. שמירת המידע ב DB
2. שליחת המיילים לנמענים
 
אז מה עושים? separation of concerns
האתר (בין אם זה MVC או webApi) מקבל את הבקשה מהלקוח, מעדכן את הבסיסי נתונים וכל הדברים שבאחריותו. ברגע שהשלב הזה הסתיים אתה מוסיף הודעה לאיזשהו queue, כזה שהמאזין יכול לעשות עליו block או לקבל הודעה על זה שנכנס לqueue הזה איזשהו פריט. לדוגמא rabbitmq, azure storage queue+webjobs/functions וכד'.
כאשר הצרכן של התור הזה קורא את ההודעה הוא יאסוף את כל המידע של המיילים וישלח אותם.
 
זה נשמע קצת מסובך יותר - בפועל זה מפשט מחלק קוד גדול לחתיכות קטנות שיותר קל לתפעל אותן.
 
לצפיה ב-'אם ה IIS רוצה לעשות RECYCLE'
אם ה IIS רוצה לעשות RECYCLE
08/03/2017 | 09:45
2
33
(בהנחה שאתה תחת IIS) - הוא ממש לא יתחשב ב TASK שלך
אז לא הייתי הולך על זה.
לגבי ה QUEUE , בהחלט שכן הייתי הולך על זה ( וגם המלצתי על זה)
לצפיה ב-'קראתי לזה הדרך המהירה והמלוכלכת והדרך השניה עדיפה עלי'
קראתי לזה הדרך המהירה והמלוכלכת והדרך השניה עדיפה עלי
08/03/2017 | 15:03
1
27
אם לא היה ברור - אני לא ממליץ לעשות fire-and-forget tasks בקונטקסט הנוכחי!
פיתרון שמחלק את המשימות הוא הנכון יותר והעדיף יותר מבחינת ארכיטקטורה.
לצפיה ב-'לא רוצה להיות nitpick אבל כתבת "הדרך היותר יפה"'
לא רוצה להיות nitpick אבל כתבת "הדרך היותר יפה"
08/03/2017 | 15:11
31
זה לא קשור למלוכלך או יפה
יש מצב שמה שהוא כותב בכלל לא יעבוד
אז זה קשור לזה שאם זה חשוב לו שהעבודה תתבצע ב 100% אז הוא לא אמור בכלל ללכת לכיוון הזה.
 
בכל מקרה אני ואתה מכוונים לאותו כיוון :)
 
 
לצפיה ב-'זו מערכת ותיקה בASP.NET FORM.'
זו מערכת ותיקה בASP.NET FORM.
08/03/2017 | 11:22
27
 
נכון לעכשיו ירדנו מהTASK - מכיון שהפונקציה משתמשת במשאבים שמשתחררים בסוף ריצת הדף (DB Connection ואובייקטים שונים) - ולשנות את הפונקציה יעלה לא פחות ממעבר לתור ושליחת מייל מתהליך חיצוני.
 
 
לצפיה ב-'ניתן להגדיר מחדש את תפקיד כפתורי הF1-F12 ?'
ניתן להגדיר מחדש את תפקיד כפתורי הF1-F12 ?
08/03/2017 | 08:40
2
26
כך שיבצעו פעולה אחרת ממה שהוגדרה במקור?
למשל שדווקא כפתור הF7 יגביר את עוצמת השמע?
לצפיה ב-'כן'
כן
08/03/2017 | 14:29
1
20
הגדרתי ש f3 יקפיץ את כפתור המערבל כך שאוכל לשנות את הווליום עם הלחצנים ללא מגע בעכבר.
 
לצפיה ב-'יפה! ואם אני רוצה להגדיר שאחד הFים יזין את כתובת המייל שלי?'
יפה! ואם אני רוצה להגדיר שאחד הFים יזין את כתובת המייל שלי?
08/03/2017 | 14:55
13
או את אחת מססמאות הכניסה לאתר כלשהו?
אפשרי?
לצפיה ב-'gridview user control עם כפתור Edit'
gridview user control עם כפתור Edit
03/03/2017 | 19:16
1
18
שלום חברים
אני מנסה לייצר USER CONROL של גריד דינאמי שיכלול בתוכו כפתור EDIT. הבעיה שלי שכאשר הקונטרול מוצג בדף הכפתור מבצע רק פוסטבק ולא מגיע לאיוונט שנקבע לו.
זה הקוד:
Gridforedit.ascx.cs
public partial class UserControl_GridForEdit : System.Web.UI.UserControl
{
    public event EventHandler ButtonEditClick;
 
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            Session["LastDt"] = Session["LastColums"] = null;
            lblError.Visible = false;
            alink.Visible = false;
        }
        
    }
    protected void OnPaging(object sender, GridViewPageEventArgs e)
    {
    }
        
    public void BindDataForEdit(DataTable dt, string GridName = "", object[] Columns = null)
    {
        if (dt != null && dt != (DataTable)Session["LastDt"])
            Session["LastDt"] = dt;
        if (Columns != (object[])Session["LastColums"])
            Session["LastColums"] = Columns;

        if (Session["LastDt"] == null)
            return;
        if (GridName == "")
            GridName = "grd" + Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 8);

        GridView gvGeneral = new GridView();
        gvGeneral.ID = "GridName";
        gvGeneral.CssClass = "table table-striped table-bordered table-hover";
        gvGeneral.AutoGenerateColumns = false;
        gvGeneral.EmptyDataText = "אין נתונים להצגה";
        Columns = (object[])Session["LastColums"];
        dt = (DataTable)Session["LastDt"];
        try
        {
            if (Columns != null)
            {
                for (int i = 0; i < Columns.Length; i = i + 2)
                {
                    {
                        BoundField boundfield = new BoundField();
                        boundfield.DataField = dt.Columns[Columns[i].ToString()].ToString(); //Columns[i].ToString() ;
                        if (dt.Columns[Columns[i].ToString()].DataType.Name.ToString() == "Double")
                        { boundfield.DataFormatString = "{0:C}"; }
                        boundfield.HeaderText = Columns[i + 1].ToString();
                        gvGeneral.Columns.Add(boundfield);
                  }
                }
                TemplateField tfield = new TemplateField();
                tfield.HeaderText = "Edit";
                tfield.ItemTemplate = new CreateItemTemplate(ListItemType.Item);
                
                gvGeneral.Columns.Add(tfield);
           }
            else
            {
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    BoundField boundfield = new BoundField();
                    boundfield.DataField = dt.Columns[i].ColumnName.ToString();
                    if (dt.Columns[Columns[i].ToString()].DataType.Name.ToString() == "Double")
                    { boundfield.DataFormatString = "{0:C}"; }
                    boundfield.HeaderText = dt.Columns[i].ColumnName.ToString();
                    gvGeneral.Columns.Add(boundfield);
                }
            }
            gvGeneral.DataSource = dt;
            gvGeneral.DataBind();
        }
        catch (Exception ex)
        {
&n
לצפיה ב-'נראה שלא כל ההודעה שלי נקלטה, אז הנה שוב'
נראה שלא כל ההודעה שלי נקלטה, אז הנה שוב
03/03/2017 | 19:42
25
שלום חברים
אני מנסה לייצר USER CONROL של גריד דינאמי שיכלול בתוכו כפתור EDIT. הבעיה שלי שכאשר הקונטרול מוצג בדף הכפתור מבצע רק פוסטבק ולא מגיע לאיוונט שנקבע לו.
זה הקוד:
Gridforedit.ascx.cs
public partial class UserControl_GridForEdit : System.Web.UI.UserControl
{
    public event EventHandler ButtonEditClick;
    protected void Page_Load(object sender, EventArgs e){ }
    public void BindDataForEdit(DataTable dt, string GridName = "", object[] Columns = null)
    {   GridView gvGeneral = new GridView();
        gvGeneral.ID = "GridName";
        for (int i = 0; i < Columns.Length; i = i + 2)
                    {
                        BoundField boundfield = new BoundField();
                        boundfield.DataField = dt.Columns[Columns[i].ToString()].ToString();
                        boundfield.HeaderText = Columns[i + 1].ToString();
                        gvGeneral.Columns.Add(boundfield);
                  }
                TemplateField tfield = new TemplateField();
                tfield.HeaderText = "Edit";
                tfield.ItemTemplate = new CreateItemTemplate(ListItemType.Item);
                gvGeneral.Columns.Add(tfield);}
            gvGeneral.DataSource = dt;
            gvGeneral.DataBind();}
            }
    public class CreateItemTemplate : ITemplate{
        public event EventHandler ButtonEditClick;
        private ListItemType myListItemType;
        public CreateItemTemplate(){}
        public CreateItemTemplate(ListItemType Item){myListItemType = Item;}
        public void InstantiateIn(System.Web.UI.Control container){
             LinkButton lb = new LinkButton();
                lb.ID = "btmEdit";
                lb.Text = "Edit";
                lb.Click += new EventHandler(btnClick_Click);
                container.Controls.Add(lb);
        }
        protected void btnClick_Click(object sender, EventArgs e){
            if (sender != null)  ButtonEditClick(sender, e);
        }
    }
}
TESTCONTROL.aspx
<%@ Register Src="~/UserControl/GridForEdit.ascx" TagName="u_ccE" TagPrefix="uccE" %>
<div><uccE:u_ccE ID="u_cc2" Title="cc" runat="server" /></div>
TESTCONTROL.aspx.cs
    public partial class testcontrol : BasePage{
        cDBAccess db = new cDBAccess();
            protected void Page_Load(object sender, EventArgs e) {
            u_cc2.ButtonEditClick += new EventHandler(ucc2_ButtonClick);
            object[] par = { "@ContractId", 1003, "@type", 1 };
            DataTable DT = db.GetDataTable("spListPayments", par, ref Error);
            if (DT != null && DT.Rows.Count > 0)            {
               
                    object[] Columns = { "PaymentDate",  Resources.Resource.Date,
                     ....};
                   u_cc2.BindDataForEdit(DT, "", Columns);}
               }
        }
        public void ucc2_ButtonClick(object sender, EventArgs e)
        {Response.Write("I did it");}
    }
הגריד עולה עם הנתונים והכפתורים, אבל לחיצה על הכפתור EDIT לא מגיעה לאיוונט ucc2_ButtonClick
מה אני עושה לא נכון :)
ותודה לעוזרים
לצפיה ב-'הקשר/ההבדל בין .net ל- #c'
הקשר/ההבדל בין .net ל- #c
01/03/2017 | 09:40
1
33
האם אחד מכיל את השני?
עד היום חשבתי שסי שארפ הוא חלק מתוך עולם ומלואו שנקרא דוט נט.
היום מישהו אמר לי ש-.net הם סך הכל ספריות בסי שארפ.
אשמח לקצת סדר בנושא.
תודה!
 
לצפיה ב-'סי-שארפ זו שפת-תכנות, דוט-נט זה runtime'
סי-שארפ זו שפת-תכנות, דוט-נט זה runtime
01/03/2017 | 12:03
36
אפשר (תאורטית) לכתוב תוכניות בסי-שארפ שיפעלו על ה-runtime של ג'אווה (עם כמה התאמות נדרשות כמובן)
כמו-כן אפשר (וגם קורה בפועל) לכתוב תוכנה לדוט-נט בכמה שפות אחרות נוספות כמו F#, Visual-Basic, Python וג'אווה-סקריפט
כשלוקחים את התוכנית שכתובה בשפה כלשהי ורוצים להריץ אותה, אז מקמפלים אותה והטקסט של הקוד הופך ל-byteCode שזה שפה של הוראות שהדוט-נט יודע להפעיל
 
בברכה,
זיו
לצפיה ב-'הבדלים בגירסאות של visual studio'
הבדלים בגירסאות של visual studio
27/02/2017 | 00:34
1
42
שלום.
אני מחפש גירסת visual studio המתאימה לעסק.
 
באתר: https://www.visualstudio.com/vs/pricing/ מתוארים מספר חבילות וקצת הצלחתי להתבלבל.
מה הייתרונות המהותיים בין החבילות השונות? האם גירסה של 500$ המתוארת היא מספקת?
בכל מקרה אני מתכוון בכלל להשתמש ב-git במקום ה-tfs וגם משתמש ב-jira.
 
תודה.
לצפיה ב-'תשתמש בגרסה החינמית'
תשתמש בגרסה החינמית
28/02/2017 | 02:57
32
נדמה לי שנקראת community. היא עושה את כל מה שאתה צריך, ולא עולה כסף. וכמובן שאין בעיה לבנות איתה פרויקטים מסחריים לגמרי. הייתרונות של הגרסאות בתשלום הם באמת למתקדמים. כשתגיע לצרכים האלה, אז תשקול לקנות.
לצפיה ב-' Scroll Direction Detector'
Scroll Direction Detector
24/02/2017 | 14:01
41
היי רציתי לשתף איזה משהו שבניתי שלא מצאתי לי פתרון יעיל ברשת בנושא מציאת כיוון ה SCROLL שיוזר עושה  .
 
הבעיה היא שכל מה שמצאתי זה דגימת ה SCROLL של ה WINDOW וחישוב מחדש
אבל זה בעייתי
כשאתה עושה SCROLL של שנייה- האוונט הזה רץ לפחות 30 פעם ו30 פעם החישוב (של כיוון ה SCROLL) מתחשב.
לא יעיל בעליל.(!)
 
 
כאן נכנסים 2 מושגים של ויסות  : 
THROTTLE
AND
DEBOUNCE
 
במילים פשוטות
THROTTLE - אם אני מזיז במשך דקה את ה SCROLL ( ולא עוזב ) אז הEVENT שלי , יקפוץ כל שניה ( או מה שמגדירים)
אם לא הייתי משתמש בזה הוא היה קופץ אלפי פעמים.
השני , DEBOUNCE , תפקידו : כל עוד אני עושה את ה SCROLL - לא קורה כלום , אבל ברגע שהפסקתי , מיד אחרי זמן T מהנקודה הזו - יקפוץ ה EVENT שלי.
 
שילוב של שניהם מוביל למשהו מאד יעיל ומעניין שאני יכול לקבל מידע מבלי להכביד על ה BROWSER.
 
מקרים שימושיים : 
 
תתארו לכם כפתור שכשלוחצים עליו הוא הולך ל SERVER להביא מידע.
עכשיו תתארו לכם שלוחצים 10 פעמים על הכפתור הזה הוא ילך 10 פעמים
אבל עם THROTTLE הוא ילך כל T זמן שתגדירו  , מבלי להתחשב בהפגזות , כל עוד שאתפם מפגיזים כמובן.
 
בקיצור הנה הקוד +דמו: 
 
Throttle : execute this function at most once every T milliseconds
Debounce : execute this function only if T milliseconds have passed without it being called
 
חייב לציין שאכן מצאתי פיתרון אחד שכן משתמש ב INTERVAL - אבל יש שם בעיה.
שם לא השתמשו ב DEBOUNCE. ( שטוב למקרי קצה)
ולמה ? 
 
בואו נגיד שאני רואה סקרול ענק
ואני שם שה THROTTLE יהיה כל 3 שניות ( לא הגיוני אבל בואו נגיד)
אני מתחיל לגלול במשך 3 שניות -> קופץ EVENT  אחד
ממשיך עוד 3 שניות -> קופץ EVENT שני
ממשיך למשך שניה אחת לגלול אבל הפעם למעלה  ועוצר .
 
%#%#%@#%@
לא קורה כלום ולא יהיה לך חיווי של SCROLL UP !!!!!
למה ? 
כי עוד לא עבר ה 3 שניות פעולה בשביל שה THROTTLE יקפוץ
 
וכאן נכנס ה DEBOUNCE !
אחרי שתסיים את השניה האחרונה ( שחסר לה 2 שניות בשביל THROTTLE) - יקפותץ ה DEBOUNCE ואז תראה את ה חיווי הנכון לגבי כיוון ה SCROLL ( שזה UP עכשיו)
 
ז"א חייבים DEBOUNCE ( וחייבים שהערך T שלו יהיה קצת יותר גדול מערך ה THROTTLE)
 
 
לצפיה ב-'AppDomain ב C# כמה שאלות'
AppDomain ב C# כמה שאלות
22/02/2017 | 20:22
6
39
ראיתי את הסרטון
לפי מה שהוסבר שם כאשר אני משתמש ב DLL חיצוני שאני מפחד שהוא יעשה לי ביעות אבטחה(לדוגמא שיצור/ימחק קבצים שהוא לא צריך) אני מעדיף לא להכניס אותו מתוך ה AppDomain עם ההרשאות שלי אלא אפתח לו AppDomain עם ההרשאות המינימאליות שהוא צריך
 
1-מה הייתרון של זה לבין ליצור לו פרוסס נפרד עם הרשאות(מתוך הקוד)? 
2- לפי מה שנראה שם כאשר אני רוצה לפתוח AppDomain  ל DLL הוא חייב להיות עם אטריביוט של Serializable  מדוע? וזה נראה חסרון רציני, לא כל EXE או DLL שארצה לעשות לו את זה יהיה לו את האטריביוט הזה.? 
3-ברגע מפעיל את המתודה CreateInstanceAndUnwarp  ה AppDomain מתחיל לרוץ וה AppDomain שהפעיל אותו לא מחכה לו,נכון? רצים כאילו במקביל כמו 2 תהליכונים?
4- האם זה אפשרי לפתוח AppDomain מ C# ולהפעיל קובץ פייתון/שנכתב ב CPP או רק קבצים שנוצרו ב C#
 
רב תודות
לצפיה ב-'>'
>
22/02/2017 | 21:02
5
30
1 - הייתרון של זה הוא בכך שאתה יכול לטעון DLLS שלמים שאתה לא יודע בדיוק מה קורה שם ואתה רוצה לוודא שהוא לא יעשה דברים מסויימים. אז אתה טוען ומצמיד לו הרשאות.
יש עוד דרך שאתה יכול לעשות זאת בכך שאתה יכול ליצור THREAD עם הרשאות  - IMPERSONATION.
עוד יתרון זה שאם ה APPDOMAIN הזה נופל - CRASH - אז הוא לא מפיל לך את ה APP POOL שלך. ( כמובן שתוכל גם על ידי TRY CATCH מסביב ל THREAD שדיברתי עליו - אבל יש EXCEPTIONS שמפילים APP POOL אם תירצה או לא תרצה כגון STACKOVERFLOW.
 
2 - ה SERIALIZEABLE הוא בשביל ש ה APP DOMAIN שלך ידבר עם החדש שיצרת  ע"י MARSHALL BY REF.
 
3 - נראה לי שכן. תוכל לבדוק זאת בעצמך אם תריץ את הקןד עם BREAKPOINT ואז תראה ב TASKMANAGER אם יש לך שם 2 EXE של APP POOL.
 
4- השאלה הזאת מתנקזת להאם אפשר לטעון קוד UNAMANGED מ #C. התשובה היא כן.
לצפיה ב-'שאלה שלא הבהרת'
שאלה שלא הבהרת
22/02/2017 | 21:27
4
26
ראשית תודה על תשובתך
לא הבנתי מה הייתרון בלהפעיל את ה DLL או ה EXE על אפ-דומיין נפרד מאשר על פרוסס נפרד
2 האפ-דומיין רצים בתוך אותו פרוסס משמע הם חולקים את אותו זמן CPU , מאשר אם הייתי נותן ל DLL הזה פרוסס נפרד התהליך היה מסתיים מהר יותר(בהנחה סבירה שיש לי פרוסס פנוי)
לא מצליח להבין מה החילוק בין להריץ משהו חיצוני על אפ-דומיין /פרוסס נפרד
 
בנוסף, אם אני לא רוצה שהוא ידבר איתו, עדיין זה קצת בעייתי שמחוייב שהצד שלישי שאני מפעיל יהיה Serializable  
 
תודה
לצפיה ב-'התבלבלתי ובילבלתי אותך'
התבלבלתי ובילבלתי אותך
22/02/2017 | 21:46
3
39
אני כותב לך ואני חשוב בכלל על APPPOOL
 
יהיה לך EXE אחד - פרוסס
ובו יש כמה כמה APPDOMAINS.
היתרון בזה הוא שאתה יכול להצמיד הרשאות ל DLL שאתה מעלה
 
נניח ולאפליקציה שלך יש הרשאות לגעת בכל התיקיות ואתה רוצה שהAPPDOMAIN שאתה יוצר  - לא יוכל לגעת בשום תיקיה ( כמו שבסרטון)  - במקרה הזה אתה טוען את ה APPDOMIAN ומצמיד לו הרשאות שאתה בוחר  - ואז אתה לא צריך לפחד או לחשוש שהוא יגע לך בקבצים בC.
 
אין כאן 2 פרוססים
 
יהיו לך 2 פרוססים אם יהיהו לך 2 APP POOL.
 
עוד משהו.
PROCESS זה וירטואליזציה של זיכרון
THREAD זה וירטואליזציה של CPU
לשניהם אתה יכול לתת  PRIORITY
 
אז אם יש לך EXE אחד של APPPOOL ( כי לא נוצר עוד EXE אחד  - כפי שבילבלתי אותך ממקודם) - אתה עם EXE אחד.
אז אין לך לתת ל PROCESS האחר עדיפות
 
עוד יתרון זה שאתה יכול לעשות UNLOAD ל ASSEMBLY ישר אחרי שסיימת להשתמש בו. ( דבר שלא אפשרי אילולא היית טוען אותו באופן רגיל - אלא אם כן אתה סוגר את ה אפליקציה שלך)
 
 
 
 
 
לצפיה ב-'זו השאלה'
זו השאלה
22/02/2017 | 21:52
2
37
הרי אני יכול מהאפליקציה שלי לעשות יצירה של פרוסס חדש ולהריץ בו מה שאני רוצה
השאלה שלי היא מה ההבדל אם אריץ את ה DLL החיצוני ע"י פרוסס שאצור או ע"H אפ-דומיין שאצור
בשניהם אפשר לתת הרשאות
לצפיה ב-'שלא תעיז'
שלא תעיז
22/02/2017 | 21:57
53
צריכה להיות סיבה מאד מאד טובה שאתה נותן לאפליקציה שלך הרשאות להריץ EXE.
תחשוב על העיתיות שבה. HACKER יכול לנצל את זה ולקחת לך את הקונפיג  ובכלל לעשות לך כל מה שהוא חושק. אתה אשכרה נותן לו גישה ל מחשב שלך
אל תעשה את זה - כי לא עושים את זה.
 
לגבי ההבדלים אני חושב שעניתי לך
אבל אתה נכנס בשאלתך לעולם שבו אתה יכול לתת גישה להאקר לגעת לך ב FILE SYSTEM - ועם זה  - אני פשוט לא יכול לעזור לך כי זה דברים שלא עושים
 
בדיוק כמו שתשאל אותי , איפה קוברים גופות אחרי שרוצחים אותם
אין לי תשובות לזה.
 
לצפיה ב-'תשובה'
תשובה
23/02/2017 | 14:04
38
AppDomain מאפשר לך ״להתחיל מאפס״.
זה אומר, למשל, שמשתנים סטטיים וסינגלטונים - מאותחלים מחדש, כי אתה מקבל מרחב זיכרון (וירטואלי) שהוא נקי לגמרי.
בנוסף, יכול להיות שבמסגרת AppDomain תוכל לטעון DLLים מגירסאות שונות מאלו שנטענו לך ב AD הראשי.
כל זה, מבחינת ביצועים, עדיף על פני פרוסס חיצוני. ובנוסף, כמו שרועי ציין קודם, ברמת ההרשאות זה נשמע פירצה רצינית להריץ פרוסס חיצוני.
 
HTH
לצפיה ב-'מחפש להיכנס למיזם או פרוייקטים ב - WPF '
מחפש להיכנס למיזם או פרוייקטים ב - WPF
23/02/2017 | 02:31
29
שלום לפורום הנכבד,
הייתי שמח לשמוע על מיזם \ פרוייקט נחמד ב - WPF
או אם מישהו מחפש freelancer, תשאירו הודעה בפרטי....
תודה מראש, אתם אחלה פורום.
לילה\בוקר טוב...
לצפיה ב-' C# WebBrowser'
C# WebBrowser
20/02/2017 | 14:13
1
272
שלום
אני מנסה לבנות תוכנה של מוקד טלפוני לעבודה שלי..
יש לי בעיה לפתוח אתרי אינטרנט שמריצים java script דרך WebBrowser למרות שבדפדפן Internet Explorer אני כן מצליח לפתוח אותם אתרים
אשמח אם מישהוא יכול לעזור..
תודה מראש :)
לצפיה ב-'יש כל מיני מגבלות על הרצת סקריפטים כברירת מחדל'
יש כל מיני מגבלות על הרצת סקריפטים כברירת מחדל
21/02/2017 | 11:14
107
אם אני מבין נכון אתה מדבר על פקד דפדפן ששמים בתוך אפליקציית WinForms או WPF
בקיצור תסתכל על התיעוד של הפקד ואיך משנים את הגדרות ברירת המחדל כדי שזה ירוץ שם
 
בנוסף יש את CEF שזה אותו דבר רק עם כרום, אצלנו עובדים איתו אבל אין לי מושג אם הוא כברירת מחדל מפעיל סקריפטים או לא
 
בברכה,
זיו
לצפיה ב-' בהמשך לשאלתי מלמטה - שאלת JSONP '
בהמשך לשאלתי מלמטה - שאלת JSONP
20/02/2017 | 11:23
4
39
לאחר כל מיני ניסויים, אני חושבת ש- JSONP יכול להיות פתרון.
 
יש לי שני דומיינים,  http://localhost:63312 ו localhost נוסף.  מכיון שמדובר בשני דומיינים שונים, לא ניתן להשתמש בJSON רגיל (בגלל SOP), אבל בעיקרון JSONP אמור לעבוד.
 
ב- localhost:63312 יש דף webform.aspx שב- pageLoad() מחזיר json  (במקור יחזיר אובייקט עם סריאליזציה. לצורך הדוגמא מחזיר string פשוט):
 
string json = "{\"Email\":\"email@domain.com\"}";
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
string myObjectJson = javaScriptSerializer.Serialize(json);
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(myObjectJson);
Response.End();
 
ב- localhost2 יש דף aspx, ועם קטע הקוד הבא:
 
 $(document).ready(function () {
              $.ajax({
                  crossDomain: true,
                  contentType: "application/json; charset=utf-8",
                  url: "http://localhost:63312/WebForm";,
                  dataType: "jsonp",
                  success: onDataReceived
              });
});
 
 function onDataReceived(data) {
       alert("Data received");
 }
 
הענין הוא שהפונקציה onDataReceived לא מתרחשת, למרות שבדיבאג אני רואה שאכן התבצעה קריאה לדף (נכנס לקטע הקוד הרלוונטי באתר הראשון).
הבנתי שיש איזה קטע עם ה- callback, רק שלא הצלחתי להבינו עד הסוף.
 
תובנות? דוגמא לשימוש נכון יותר ב- jsonp?
 
נ.ב. ניסיתי ליצור webservice  עם פונקציה getData(), רק שאני לא מצליחה לכתוב את הקריאה הנכונה כנראה, והקוד לא מתבצע.
לצפיה ב-'מממ'
מממ
20/02/2017 | 13:38
3
37
 You're missing the point of SOP.

You're returning a JSON object form the server.
that JSON can NOT be read in other domain browsers.


Entering script elments:
they can be read and execute from ANY domain regardless its DNS.

So you need to return a application/javascript Content type
And the onject should be  `myCallBackFunc({....})`;

Also your request has missing properties for the jsonp function.

Taks a look at the network console to see what's going on:

http://jsfiddle.net/yvzSL/.

also  , don't use success

use `.done({.......}) , fail(.....) , always (.......)`
 
לצפיה ב-'העלילה מסתבכת - זה לא עובד על המחשב שלי. בסמארטפון כן '
העלילה מסתבכת - זה לא עובד על המחשב שלי. בסמארטפון כן
20/02/2017 | 17:37
2
25
נכנסתי לקישור ששמת מהסמארטפון. ראיתי את התוצאה שחזרה.
כשאני על המחשב, לא חוזר כלום. רואה רק את הכותרת: JSON, ולא את השפות, מספר העוקבים וכו'.
 
הבנתי מקריאה מרפרפת שיש בעיה כשההרצה היא לא על סרבר. מוכר? 
 
ותודה רבה על העזרה 
לצפיה ב-'עובד אותו דבר'
עובד אותו דבר
21/02/2017 | 09:32
22
ואת אף פעם לא מריצה על הסרבר זה רץ בדפדפן
 
לצפיה ב-'אולי על המחשב יש לך סינון שחוסם את הגישה לדומיין הזה..'
אולי על המחשב יש לך סינון שחוסם את הגישה לדומיין הזה..
21/02/2017 | 17:20
6
לצפיה ב-'העברת מידע בין שתי אפליקציות WEB דרך modal window - כיצד?'
העברת מידע בין שתי אפליקציות WEB דרך modal window - כיצד?
16/02/2017 | 15:49
12
56
צהריים טובים  חדשה כאן, אשמח למענה:
 
האם יש דרך להקפיץ חלון שטוען דף asp מאפליקציית web אחרת, ולהחזיר אובייקט עם מידע לאפליקצייה הקוראת? אתן דוגמא:
 
נניח שיש לי אפליקצייה א' - חברת תרופות כלשהי
ואפליקציה ב' - אתר של בית מרקחת.

אני רוצה באתר בית המרקחת לאפשר קבלת מידע מתוך האתר של חברת התרופות באופן כזה: בלחיצה על פריט כלשהו באתר בית המרקחת, ייפתח modal window, המכיל דף asp מתוך אתר חברת התרופות, המאפשר בחירה לגבי סוג המידע הנדרש (עלון לצרכן, מידע כללי, וכו'). לאחר הבחירה ייסגר החלון והמידע יוצג באתר בית המרקחת.
 
אני צריכה להעביר מידע לשני הכיוונים: מאתר בית המרקחת, להקפיץ את החלון ולהעביר לדף את המספר הקטלוגי של התרופה לגביה מעוניינים לקבל מידע, ולהפך - מאתר חברת התרופות להחזיר אובייקט לאתר בית המרקחת, שמכיל DATA כלשהו בנוגע לתרופה. 
 
כך שיש לי כאן 3 שאלות בעצם:
1. האם אפשרי בכלל? אם לא - יש אלטרנטיבה?
2. איך עושים את זה?  
3. שאלת המשך - אם הייתי רוצה שאת התוכן שב- modal (נניח הדף שמקבל מס' קטלוגי, מאפשר לבחור את המידע הרצוי, ומחזיר אובייקט עם המידע) אוכל להטמיע בכל אתר אחר (נניח, לכל בית מרקחת) עם מינימום התאמות, מהי הדרך הטובה לעשות זאת?
 
* המקרה הוא להמחשה בלבד. בגדול השאלה לגבי ממשק העברת מידע מותנית בין שני אתרים, כשאף אחד מהם לא יכול לגשת ל- DB של האחר, וללא שום גורם מקשר אחר.
 
תודה מראש 
לצפיה ב-'אפשרי אבל לא כמו שאת חושבת'
אפשרי אבל לא כמו שאת חושבת
16/02/2017 | 20:11
1
33
האתר של התרופות לא חושף שום פונקציות שאת יכולה להיעזר בהם
הדבר הכי טוב שאת יכולה לעשות זה לבנות בצד שרת אצלך קריאה  WEBREUEST לאתר התרופות  , לקחת את ה HTML שלו ( בעמוד המסויים הזה) שאותו תוכלי לקחת מ GOOGLE
 
ואז לעבד את ה HTML ולהחזיר לאתר שלך את המידע.
 
נ.ב.
אם האתר שם עושה את זה ב AJAX  (מרנדר את המידע על ידי AJAX))- יהיה לך מאד לקבל את הHTMK שלו
לצפיה ב-'תודה, אבל אני לא בטוחה שזה יועיל.'
תודה, אבל אני לא בטוחה שזה יועיל.
17/02/2017 | 00:25
28
אתה מציע שאשתול את ה- DATA בעמוד המקור.
 
העניין הוא שאני לא צריכה HTML. הדוגמא שנתתי אולי לא מספיק מדויקת. בחלון הקופץ אמורה בהחלט להתבצע פונקציה כלשהי נוספת, שלפיה יוחזר המידע (כמו בדוגמא - בחירה בין עלון לצרכן למידע פיננסי לגבי התרופה, נניח)
 
אני צריכה לקבל אובייקט של מידע, כך שאוכל לדוגמא לשמור אותו ב- cookie או ב- session. זה לא מידע שאני אמורה להציג, אלא מידע שישמש אותי בכל מיני דפים או פונקציות באתר המקורי ("בית המרקחת")
 
כרגע אני בהחלט מצליחה לקרוא לדף השני, ומעבירה ב request פרמטרים ("מספר קטלוגי" בדוגמא), רק תקועה עם קבלת המידע בחזרה.
 
בכל אופן, כשאני קוראת לדף דרך request, זה נפתח בטאב נפרד ולא כחלון קופץ (ב- IE היה modal dialog, וב jquery / css לא הצלחתי לטעון דף ASP אחר), וזה בעייתי כי:
1. אני לא יכולה לחזור לדף הקורא, ולהעביר אליו אובייקט.
2. מבחינת הנראות - זה לא כמו שאני צריכה. 
 
אז אם נצא מתוך נקודת הנחה שאני חייבת לקבל מידע מהאפליקציה השניה, ושמבחינה ויזואלית עדיף שזה יהיה modal, האם יש לי אפשרות לבצע את זה? 
 
מקווה שהבנתי את תשובתך נכון 
לצפיה ב-'הכי טוב זה להשתמש בAPI'
הכי טוב זה להשתמש בAPI
16/02/2017 | 20:19
3
34
חסרים פה הרבה פרטים, אבל בגדול..
מה שאת צריכה זה לשלוח בקשה בAJAX או בכל פורמט אחר לכתובת הרצויה, נניח שהחלון עם הפרטים של התרופה נמצא בכתובת http://www.demosite.com/medicine ואת רוצה לקבל מידע על תרופה שהID שלה הוא 15, אז את פונה כך: http://www.demosite.com/medicine/15 ואז את התשובה שאת מקבלת (בין אם זה JSON או HTML או כל דבר אחר) את שותלת בתוך דף הHTML שלך (אם זה HTML) או בתוך טמפלייט שאת בונה עבור זה (אם זה JSON).
את יכולה לבנות דף עם כמה לחצנים (כמו עלון לצרכן/ מידע כללי וכדו'),כך שהלקוח יכול לבחור איזה מידע הוא רוצה לקבל, וכל לחצן פונה לכתובת אחרת מביא את המידע ושותל אותו בדף. כך הכי טוב לעשות למיטב הבנתי וידיעותי.
תבדקי אולי לאתר של חברת התרופות מספק API, וגם אם לא - את פשוט פונה לכתובת הרצויה, מקבלת את התשובה, מחלצת ממנה את מה שאת רוצה ושותלת את זה בדף שלך.
אפשרות נוספת (אם כי למיטב הבנתי פחות מומלצת) זה להשתמש ב - IFRAME. שזה בעצם מעין דפדפן בתוך דפדפן. כלומר דיב מסוים שבעצם מציג ללקוח ישירות את המידע מתוך האתר של חברת התרופות, כך שהוא כביכול גולש אצלך באתר, אך בעצם גולש ישירות בתוך האתר של חברת התרופות. 
לצפיה ב-'תודה. מנסה לענות.'
תודה. מנסה לענות.
17/02/2017 | 00:34
2
26
לפני הכל, אנא ראה תגובתי לזה שמעליך.
 
לגבי העברת מידע מאתר א' לב' - אני מסתדרת. אכן בניתי קריאה לדף עם שרשור של הפרמטר הרצוי. (אגב, אני ב- asp .net ולא ב- MVC) זה עדיין לא עוזר לי לגבי קבלת המידע חזרה. אני לא מכירה API, תוכל לפרט?
 
לגבי הרעיונות האחרים, כאמור - לשתול בדף / IFRAME לא יעזור לי, כי אני נדרשת לשמור את המידע שחזר כאובייקט, כדי שאוכל להשתמש בו באופן רוחבי באתר (כאן הדוגמא אכן לא מתאימה בכלל)
 
ובכלל - חשובה לי ההפרדה הויזואלית. לא רוצה שיהיה משהו מוטמע בדף, כי אצלי אלו שני אתרים שאין ביניהם שום קשר, ואין לי ענין שזה יראה חלק מאתר בית המרקחת.
 
ההקפצה של החלון היא שלב "מעבר" לאתר השני, גם מבחינה ויזואלית, ובעיקר כי אני לא רוצה להטמיע את המידע שהוחזר, אלא יותר לשמור אותו "מאחורי הקלעים".
 
שוב תודה. אשמח למענה או לרעיונות.
לצפיה ב-'אין אובייקט ולא יהיה לך'
אין אובייקט ולא יהיה לך
18/02/2017 | 22:58
1
20
האתר שאת מנסה לקחת ממנו נתונים לא חושף API או במילים אחרות פונקציות התממשקות
אז בואי נפסיק לדבר על אובייקט כי לא יהיה לך
הדבר היחידי שאת יכולה לעשות ( באמת היחידי) זה אם יש לך את האתר שלך עם מוצר A , ואת רוצה לשלוח אותו לאתר ב' עם תשובות מתאימות למוצר A - אז את פשוט תצטרכי לפתוח IFRAME ( בהנחה שהוא לא שם XFRAMEOPTIONS - SAMEORIGIN)  או בחלון חדש  . אבל זה כל מה שתוכלי לעשות
לא תוכלי לקבל מידע בחזרה
 
 
הדבר היחידי שתוכלי לעשות זה 
אתר שלך ---->מוצר A ------> פונה לשרת שלך ------> שעושה REUEST לאתר ב' ------> שולף אץ ה HTML שלו עבור מוצר A ------> מעבד -------> מחזיר לדף שלך את המידע הרלוונטי
 
זהו
לצפיה ב-'האתר שלי הוא "חברת התרופות". אני יכולה לחשוף API אם נדרש.'
האתר שלי הוא "חברת התרופות". אני יכולה לחשוף API אם נדרש.
19/02/2017 | 12:27
16
השאלה היא מה הדרך הנכונה לעשות את זה....
 
וסליחה שאני מתעקשת - אבל אין אפשרות ב- modal window?
 
תודה 
לצפיה ב-'הצערה אחרת ונראית לי טובה'
הצערה אחרת ונראית לי טובה
18/02/2017 | 23:47
20
האתר של חברת התרופות יכול לעשות דף שבו בוחרים את המידע הרצוי. אתרי בתי המרקחת יטמיעו אותו דרך IFRAME.
הבעיה לכאורה היא שאחרי שהמשתמש בחר את סוג המידע שהוא רוצה האתר של בית המרקחת לא יודע מה הוא בחר. הרעיון הוא שהדף הפנימי של חברת התרופות יכול לשלוח הודעות לדף שמכיל אותו. כך האתר של בית המרקחת יודע שמה הלקוח בחר ואיזה מידע או דף להציג לו.
לצפיה ב-'בלי להיכנס לדיזיין יותר מידי...'
בלי להיכנס לדיזיין יותר מידי...
19/02/2017 | 07:54
4
35
שני האתרים הם בשליטה שלך? 
למה לא iframe ו postmessage לתקשורת ביניהם בצד לקוח?
לצפיה ב-'כי אחד מהם לא בשליטה שלה'
כי אחד מהם לא בשליטה שלה
19/02/2017 | 10:11
15
לצפיה ב-'כרגע שניהם בשליטתי.'
כרגע שניהם בשליטתי.
19/02/2017 | 12:24
2
23
בהמשך (פרודקשן) לא בהכרח.
 
אבל לצורך ה- POC אני צריכה להוכיח היתכנות.
 
מה זה postmessage? (כמובם שאגגל, אבל אשמח לקצת רקע)
 
תודה.
לצפיה ב-'אם שניהם בשליטתך ( דבר שלא הובן על ידי לפחות)'
אם שניהם בשליטתך ( דבר שלא הובן על ידי לפחות)
19/02/2017 | 12:45
1
27
אז תוכלי להעביר מידע ע"י POSTMESSAGE שזה דרך להעביר דרך ה WINDOW -  מידע. שימי לב שזה נתמך רק ב ie11+
לצפיה ב-'וב- chrome? firefox?'
וב- chrome? firefox?
19/02/2017 | 14:36
24
שאלה נוספת (בעקבות נסיונות ליצירת API)
 
איך יוצרים API עם שני פרמטרים ? גיגלתי, והתשובות לא עובדות (מקבלת שגיאה ב- route. אולי כי אני לא עובדת עם MVC?)
לצפיה ב-'לא בדיוק.NET , אבל ליד'
לא בדיוק.NET , אבל ליד
19/02/2017 | 10:55
2
53
יש לי אתר שנבנה ב-vs2015 ועובד מול sql-server
האתר יאוחסן באותו שרת שבו יושב ה-DB
כשאני מפעיל את האתר מה-VS , הכל עובד תקין , פניות ל-DB,כתיבה וכו',
כאשר האתר מאוחסן בשרת , והוגדר ב-IIS, לא ניתן בגלישה להגיע לבצע פעולות מול ה-DB.
יש איזה הגדרות מיוחדות ב-IIS שמונעות פנייה ל-DB , מה שב-VS , localhosy לא קורה ?

לצפיה ב-'מממ'
מממ
19/02/2017 | 12:15
1
45
- Check which user the app pool is running with and check DB logins sections for that user
 
- make sure that namedpipe and TCP are enabled in 
 
Also make sure you're not using windows integerated security but with login
לצפיה ב-'טוב, למי שמעוניין לדעת את פתרון הבעיה:'
טוב, למי שמעוניין לדעת את פתרון הבעיה:
26/02/2017 | 13:57
12
בגלל שהאתר ושרת ה-SQL יושבים על אותה מכונה, כתובת ה-DB ב-web.config צריכה להיות הכתובת הפנימית של השרת ולא כתובת השרת החיצונית.
זאת הסיבה שב-VS זה עבד לי (כי אני ניגש מבחוץ גם לאתר וגם ל-DB)
לצפיה ב-'שאלת אחסון + FEATURES'
שאלת אחסון + FEATURES
14/02/2017 | 11:13
1
36
על איזה פלטפורמת ענן הייתם ממליצים לגבי :  MUST INCLUDE ALL
אתר ASPNET
SQL SEERVER
REDIS
STORAGE של קבצים ( נגיד 50 ג'יגה אם אופציה להארכה)
טראפיק REQUESTS צריך להיות מהיר וגבוה
 
אני מאוכזב מ AZUER 
מאד יקר ולא עובד מהר כפי שצפיתי ממנו ( מהחברה שאני עובד בה ןניסינו את זה במשך שנה) ועזבנו את זה.
שלא נדבר על התמיכה והניתוקים
 
אשמח מניסיון שלכם לשמוע
 
 
 
לצפיה ב-'אני לא מכיר שירותי PASS למיקרוסופט חוץ מאז'ור'
אני לא מכיר שירותי PASS למיקרוסופט חוץ מאז'ור
15/02/2017 | 19:08
28
כשאני מפתח אם פייתון אני מפתח עם ארוקו ודי מרוצה. עשיתי שם בדיקות ביצועים לא רעות אבל אני לא יודע מה הצרכים שלך בדיוק ושוב זה בלי ASP.NET.
אני הוצאתי את כל האחסון לקלאודינרי. הסרבר מקבל לינקים לתמונות שהקליינט שולח ישירות לשם.
לצפיה ב-'C# עבודה'
C# עבודה
05/02/2017 | 14:58
5
105
היי
יש לי עבודת הגשה ואני לא יודעת איך לעשות את החלק האחרון שמודגש
האם מישהו יודע :
2. קלוט מספר ממשתמש, תגריל מספר אקראי נוסף בין 0-9 (ספרה) ומצא כמה פעמים הספרה מופיעה בין הספרות של המספר הראשון.
 
לדוגמא:
מספר - 234126302
 
תודה
לצפיה ב-'אבל תביני מה שכתוב...:)'
אבל תביני מה שכתוב...:)
05/02/2017 | 18:07
1
86
  
 
אפשר לעשות את זה בערך ב   3 שורות אבל זה סתם יהיה פוזה.
אז הנה התשובה .
אם יש לך שאלות נא לשאול
 
   	Console.WriteLine("Enter a number");
string number = Console.ReadLine();
string randomNumber= new Random().Next().ToString();;

int times=0;
for (int i = 0; i < randomNumber.Length; i++)
{
if (randomNumber[i].ToString()==number) times=times+1;
}

Console.WriteLine(number + " Found in '"+randomNumber+"' "+times +" times");
 
לצפיה ב-'תודה רבה על הזמן'
תודה רבה על הזמן
07/02/2017 | 12:48
19
לצפיה ב-'"עבודה" כמו ב"קיבלתי עבודה, הנה יש לכם עבודה לעשות"?'
"עבודה" כמו ב"קיבלתי עבודה, הנה יש לכם עבודה לעשות"?
06/02/2017 | 11:48
2
63
קיבלת עבודה לעשות
מטרת העבודה היא לאמן אותך לחשוב, לבדוק את ההבנה שלך ב(כנראה) דברים שלימדו אותך, ובין השאר גם לעורר בך את הניצוץ היצירתי.
 
את בטח משוכנעת שלפנות לפורום של אנשים שיש להם הרבה ניסיון בתכנות זה יצירתי בטירוף, ואת הראשונה בעולם שחשבה על קיצור הדרך הזה. את לא
 
עכשיו שבי, קראי את מה שלימדו אותך, נסי לכתוב תוכנית קטנה, תראי מה היא נותנת לך, ואם יש לך בעיות ספציפיות או דברים שאת לא מבינה, תחזרי אלינו ותשאלי דברים יותר ספציפיים.
 
האם בכל המקומות זה ככה? לא. יש פורומים שאנשים ישמח לעשות בשבילך את העבודה (כי הם אוהבים אתגרים) ויש כמובן בכל מקום אנשים שיעשו כל דבר שעולה על הדעת בעבור הסכום המתאים של כסף (או שווה-ערך) אבל כל זה לא יקדם אותך אפילו בחצי צעד לקראת מה שאת לומדת בשבילו - השגת עבודה.
 
במקום שתפגשי את הבעיות הקטנות עכשיו, ותתמודדי איתן כשהן עוד קטנות, את תפגשי את הבעיות הגדולות, כשזה כבר יהיה הרבה הרבה הרבה מאוחר מדי.
 
אני לא מבין למה אנשים מוציאים את מיטב כספם לאנשים שילמדו אותם, ואז מתעלמים לגמרי מכל מה שלימדו אותם. בשביל מה שילמת להם?
 
ראיינתי בעבר הרבה אנשים כאלה, הם באו עם תעודה והיו בטוחים שבגלל שבשוק יש צורך בעובדים אז איך שהם יעברו בדלת ישר כולם ישתחוו להם ויציעו להם משכורות עתק בשביל לא לדעת כלום ולא לעשות כלום. זה לא באמת קורה. לרוב יש מישהו שמבין משהו והוא שואל שאלה או שתיים והאמת שזה די מייאש לפגוש אנשים כאלה שבאים עם המון תקוות אבל בלי הרבה מה לתת.
 
בברכה,
זיו
לצפיה ב-' - זה מתחלק 20-80 בכל מחזור'
- זה מתחלק 20-80 בכל מחזור
06/02/2017 | 20:20
1
59
מהיכרות שלי מהאקדמיה (תרגלתי 3 שנים) לרוב 20% מכל מחזור זה אנשים שהיה להם מגע והם קצת (או הרבה*) מתעניינים ול-80% ששמעו שיש בהייטק ים כסף שרק מחכה ליפול עליהם מהשמיים. אוי כמה שהם טועים.
 
* ה20% המתעניינים עצמם מתחלקים לרוב גם ל 20-80
20 שבאים עם רקע עשיר והמון שאיפות ויכולות (מהמחזור שלי זה היה 2-3 אנשים עם חוש יצירתי ורצון לתקוף אתגר וללמוד)
80 שבאים ללא רקע ובעיקר שואפים ואולי יגיעו לאנשהו...
 
 
לשואלת - הייתי מציע בחום לחפש את project euler בגוגל (בכוונה לא הבאתי לינק) ולהתחיל לתרגל משם דברים - זה עוזר, זה מאתגר, יש המון מידע ופתרונות ודרכי פתרון לכל בעיה (החל מפתרון bruteforce וכלה בפתרון אנליטי)
לצפיה ב-'זה משנה משהו?'
זה משנה משהו?
07/02/2017 | 06:39
75
יש גם כאלה שלא יודעים כלום במחשבים אבל הם יעשו במחשבים יותר כסף ממה שאני ואתה נעשה אי פעם ( ויש כאלה שלא)
לעשות כסף במחשבים היום  ( בשבילי משמע להצליח) זה ממזמן ממזמן לא ביחס ישר  ( בהכרח) לידע שלך במחשבים. זה הרבה מזל ולהיות במקום הנכון ובזמן הנכון , עם הרעיון הנכון
 
אין חוקים כאן
ובטח שלא חשוב אם מישהו שאל שאלה לגבי שיעורי בית  או תרגיל שקיבל
אנחנו לא כאן בשביל לשנות את העולם
שכל אחד יקח מה שהוא רוצה לקחת ממה שנותנים לו.
simple as that
 
לצפיה ב-'באג חמקמק ObjectDisposedException'
באג חמקמק ObjectDisposedException
31/01/2017 | 17:51
4
62
היי
אני משתלב בפרוייקט מורכב שפותח על ידי מתכנת אחר, בc# wpf mvvm 
הפרוייקט עובד עם חומרה ועם task והליכים אסינכורניים וכו' וכו'
הבעיה היא כשאני מפעיל אותו, לעיתים קרובות, ובאופן לא צפוי אני מקבל חריגה מהסוג הנ"ל.    זה פעם קורה פעם לא, אף פעם לא באותה סיטואציה, ובשונה מבאגים אחרים, הקומפלייר משייך את החריגה כביכול לdll מרכזי של הdot net (mscorlib.dll ולא נותן לי לראות באיזה שורת קוד קרתה החריגה !
כל ניסיון שלי לאתר אפילו באיזה שורת קוד קרתה החריגה העלה חרס.
 
הנה נוסח ההודעה המלא:
A first chance exception of type 'System.ObjectDisposedException' occurred in mscorlib.dll
Additional information: Safe handle has been closed
מצ"ב תמונה
בתודה מראש
לצפיה ב-'בדקת בגוגל?'
בדקת בגוגל?
01/02/2017 | 22:42
2
27
לצפיה ב-'לא עזר'
לא עזר
02/02/2017 | 10:58
1
23
ראיתי את זה אבל לא עזר
הדוגמה שם עם הusing לא נוגעת למקרה שלי ולא ענה לי על השאלה איך למצוא איפה השורת קוד הבעייתית ואיך מדבגים את זה...זה לא באג רגיל
לצפיה ב-'תתחיל מהCall Stack לאתר את קטע הקוד האחרון שיש לך אליו גישה'
תתחיל מהCall Stack לאתר את קטע הקוד האחרון שיש לך אליו גישה
05/02/2017 | 13:27
21
שקרא לפונקציה הבעיתית.
 
שים שם breakpoint ותראה מה אתה שולח
אפשר ומומלץ גם להוסיף את זה ללוג, כך שתוכל לבדוק אלו פרמטרים גורמים לבעיה.
לצפיה ב-'תתחיל לעשות אריה במדבר'
תתחיל לעשות אריה במדבר
02/02/2017 | 11:21
43
תככב קטעים בקוד עד שהבעיה נעלמת, לאחר מכן תתחיל להחזיר קטעים עד שהבעיה מופיעה, ואז תוכל להתמקד במה שגורם לזה.

חם בפורומים של תפוז

אירוח בנושא אבחון גנטי טרום השרשה
אירוח בנושא אבחון...
ביום ד` נארח בפורום את ד``ר ברוך פלדמן, מומחה...
אירוח בנושא אבחון גנטי טרום השרשה
אירוח בנושא אבחון...
ביום ד` נארח בפורום את ד``ר ברוך פלדמן, מומחה...
בפייסבוק שלנו כבר ביקרתם?
בפייסבוק שלנו כבר...
רוצים להיות תמיד מעודכנים במה שקורה בתפוז?
בפייסבוק שלנו כבר ביקרתם?
בפייסבוק שלנו כבר...
רוצים להיות תמיד מעודכנים במה שקורה בתפוז?

בעלי מקצוע

פורום מחשבים ניידים
פורום מחשבים ניידים
Tesqa
לבדיקות תוכנה
repair-lab מעבדת מחשבים
repair-lab מעבדת מחשבים

מקרא סימנים

בעלת תוכן
ללא תוכן
הודעה חדשה
הודעה נעוצה
אורח בפורום
הודעה ערוכה
מכיל תמונה
מכיל וידאו
מכיל קובץ