שאלת מחץ מס' 2
בהמשך לפוסט קודם שלי שעסק בשאלה קבועה שאני שואל בראיונות קבלה, הינה שאלה נוספת שגיליתי, להפתעתי, שרבים נכשלים בה.
השאלה אמנם אינה קשורה במהותה לארכיטקטורה, אולם היא קשורה לנושא שכל מי שמתכנן מערכת Web חייב, לדעתי, לשלוט בו, והוא ה- Viewstate.
הררי נייר, דיו ו-bytes כבר נכתבו על נושא זה, ועדיין אני מגלה מועמדים רבים שלא מכירים את הבסיס של אופן הפעולה של ה- Viewstate. בעיות ביצועים ואבטחה רבות יכולות להימנע תוך שימוש נכון ב- Viewstate, וישנם לא מעט טכנולוגים שטוענים בלהט שמודל העבודה של ASP.NET פגום מיסודו בגלל ה- Viewstate, כאשר אין להם למעשה מושג בסיסי לגבי אופן הפעולה שלו.
השאלה, אם כך, היא זו:
"נתון WebForm המכיל שדה טקסט (TextBox) וכפתור Submit. אם יוגדר EnableViewState=False לדף, מה יקרה כאשר יוקלד טקסט לשדה הטקסט והכפתור ילחץ? האם, כאשר הדף יטען מחדש, יופיע בשדה הטקסט שהוקלד או שהוא יהיה ריק?"
אשמח לשמוע את תשובותיכם, ואת הסיבה שהדברים קורים כפי שהם קורים. זו אינה שאלת טריוויה מתחכמת העוסקת ב- Bits & Bytes של הטכנולוגיה. זהו הבסיס של ה- Viewstate. לטעמי, מי שלא ידע להסביר מה יקרה ומדוע זה קורה - סביר להניח שתכנון ומימוש ה- Viewstate שלו יהיה פגום.