none
How to build a small program RRS feed

כל התגובות

  • welcome to the forum Amir,

    Can we respond in Hebrew ?
     * this is basically an Hebrew forum, but we can speak English if we have to


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום ראשון 24 אפריל 2016 20:09
    מנחה דיון
  • Hi, yes, you can respond in hebrew...thank you very much!

    amir tuchner

    יום שני 25 אפריל 2016 08:04
  • ערב טוב

    אז כמו שהתחלתי, קודם כל שוב ברוך הבא לפורום.

    השאלה שלך מאוד כללית ובעצם שואלת כיצד לפתח אפליקציה שלמה או לפחות מודול שלם באפליקציה :-)

    תרשה לי להתחיל מהקדמה מאוד חשובה שיכולה לעזור לך בעתיד לקבל תשובות הרבה יותר מהר והרבה יותר ביעילות. אני מקווה שתקרא את החלק הבא בעיון ותתמיע אותו :-). ראיתי את התגובות שקיבלתי באתר של stackoverflow והן מובנות לחלוטין אם כי כמובן לא עוזרות לך בכלום. מאוד כדאי להבין כיצד לשאול שאלות בפורומים מקצועיים. הגישה בכל הפורומים המקצועיים היא שאנשים באים לעזור בחינם בהתנדבות על זמן החופשי שלהם. כל פנייה צריכה להיות בהתאם. אף אחד לא מגיע כדי לעבוד בחינם אלא באים כדי לעזור למי שלומד או מי שכבר מפתח. הרעיון הבסיסי הוא לעזור ל"חברים למקצוע" :-). לכן שאלות בסיגנון כיצד לפתח אפליקציה שלמה, או היכן מוצאים קוד מוכן, או האם אתם יכולים לתת לי קוד, בדרך כלל מתקבלות בשלילה.

    לא נתת לנו אפילו מידע על איזה סוג של אפליקציה אתה מעוניין (למשל אפליקציית WEB או אפליקציה חלונאית או שירות שרץ ברקע), ולא סיפקת לנו מידע על באיזה תבנית של פרוייקט אתה עובד (למשל אם זו אפליקציה WEB האם אתה עובד עם asp.net webform או אולי asp.net MVC או אולי asp.net core). בלי המידע הזה אנחנהו עלולים להפנות אותך לכיוון שלא יתאים לך בהמשך.

    אז מה הפתרון ומה הדרך הנכונה לשאול שאלות כאשר יש לך מטלה מורכבת גדולה?

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

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

    הדרך הנכונה לפנות לעזרה בפורומים זה להגיע עם שאלה מצומצמת ככל הניתן הקשורה לבלוק הכי קטן בו נתקת ואתה צריך עזרה וכמובן לספק סוג אפליקציה ותבנית פרוייקט (ז"א לשאול שאלה נקודתית ככל הניתן). הרעיון הוא לעבור מנקדה לנקודה הבאה, עד שאתה מצליח להגיע לסיום. עדיף לפתוח 10 שרשורים ולסגור כל אחד מהן, כאשר כל שרשור קשור לבעיה ספיצית אחת, במקום לפתוח שרשור אחד כלל. בוא נראה את הדברים בפועל...

    בוא נתחיל :-)

    הפעולה הראשונה שאני רואה שאתה צריך זה לגשת לכתובת URL ולקבל את התוכן שמוחזר מהשרת. זו שאלה קטנה, שניתן שניתן להעלות בפורום ולצפות לתשובה :-)

    > כמו תמיד יש כמה פתרונות והתשובה לבעיה הראשונה יכולה למשל להתבסס על 

     How to Read HTML out of a webpage?

    אני מניח שאתה רוצה לבצע את הדברים מאחורי הקלעים בצד השרת. אני אניח שאתה עובד עם asp.net למשל, ולכן אחת הדרכים הכי קלות זה לעבוד עם המחלקה webrequest (תיאורטית בשלב הזה אפשר לפתוח גוגל ולחפש דוגמאות על webrequest) על מנת לשלוח בקשות לשרת ובעזרת המחלקה WebResponse לקבל את התגובה חזרה (התגובה היא התוכן של העמוד שאתה מחפש).

    * אנא עבור על כל הקישורים ששמתי בהודעה. הם לא ליופי כמובן וייתנו לך הבנה מלאה על הנושאים שאני מזכיר :-)

    1. נסה לפתח אפליקציה קטנה מאוד שכל מה שהיא עושה זה להריץ פונקציה. הפונקציה תקבל כתובת URL כ INPUT ותחזיר את התוכן שמתקבל כ return. בתוך הפונקציה תפנה לכתובת שהגיעה מבחוץ ותחזיר את התוכן.

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

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


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום שני 25 אפריל 2016 17:18
    מנחה דיון
  • מידע נוסף יעיל:

    לפעמים בזמן שאתה שולח בקשה לאתר אינטרנט למשל אתה רוצה גם להעביר מידע בזמן הפנייה. למשל כאשר אנחנו שולחים טופס פשוט באינטרנט אנחנו בדרך כלל שולחים את המידע בטופס בשיטת GET או בשיטת POST. כאשר אנחנו שולחים את הבקשה ישירות מאחורי הקלעים אנחנו יכולים להעביר מידע נוסף בצורה דומה. כך המערכת שמקבלת את הפנייה מזהה את המידע הנוסף. בקישור בהא תוכל לראות דוגמאות פשוטות:
    https://msdn.microsoft.com/en-us/library/debx8sh9%28v=vs.110%29.aspx

    המחלקה הבא בשם WebClient היא הרבה יותר מתקדמת ומאפשרת לבצע פעולות הרבה יותר מורכבות בקלות רבה יותר. מצד שני בפיתוח עלייך לחפש את הדרך הפשוטה המתאימה לך ולא תמיד מורכב יותר זה טוב יותר! המחלקה WebClient עושה מאחורי הלקעים בעצמה שימוש בשתי המחלקות שהזכרתי קודם :-) היא מאוד נוחה לעבודה למשל באפליקציות שאינן אפליקציות WEB במקור ומאפשרת כאמור לבצע פעולות מורכבות בכתיתב קוד קצר יותר (פשוט כי מישהו כבר כתצב לנו את הקוד במחלקה)

    מאוד כדאי ללמוד על עבודה עם AJAX שזה ראשי תיבות של Asynchronous JavaScript and XML
    כמו שאומר השם, מדובר בעבודה בעזרת JS שהיא שפה מאוד קלה ופשוטה (והיא שפה חובה לכל מפתח WEB). בעזרת AJAX אתה יכול לבצע את כל המש אתה רוצה בצורה יפה וקלה בלי צורך לרענן את העמוד של האתר למשל. כדאי מאוד לעבור על המדריך הקצר הבא (כמה עמודים קצרים, שכדאי לעבור על כולם בצורה מסודרת בלי לדלג): http://www.tutorialspoint.com/ajax/what_is_ajax.htm


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]



    יום שני 25 אפריל 2016 17:26
    מנחה דיון