מבוא ל ASP.NET שיעור 2 : מבוא ל ASP.NET מצגת מס' 2 www.doronamir.com MCSD DORON AMIR
Code Code Declaration Block מכיל קוד תכנות המופעל בצד השרת << Script runat=server Code Render Block מכיל קוד תכנות המופעל בצד השרת <%...%> מתבצע כאשר הדף נטען לדפדפן בעת הבקשה הראשונה קוד זה מהודר ל MSIL ולאחר מכן ל MACHINE CODE האירוע יגיב רק לאחר משלוח הטופס <asp:textbox id="tbMessage" OnTextChanged="tbMessage_Change" runat="server" /> איטי יותר מה-Declaration Block
Managed Code כאשר מבקשים דף aspx לראשונה הוא נטען לאט יותר משאר הפעמים. בפעם הראשונה הדף עובר הידור לשפת מכונה וגם בכל פעם שיתבצע שינוי בקוד המקור של הדף ה CLR אחראי לבצע מעקב לוודא האם התבצע שינוי בקוד המקור
View State \ State Less State less : דף ה WEB אינו שומר את מצב הנתונים לאחר שליחתם View State : מאפשר לשמור את מצב הפקדים לאחר שליחתם ( ASP.NET מנהלת מצב זה אוטומטית)
Hidden Fields ASP.Net יוצרת שדות טופס HTML נסתרים בצד הלקוח מצב הפקדים נשמר כמחרוזת TEXT כאשר הדף נשלח לשרת וחוזר מחרוזת זו מפרשת לדפדפן את מצב הפקדים שהיה לפני שליחת הדף הדפדפן מציג את הדף כולל הנתונים לפני שליחתם
ASP.NET: Base Objects Response Request Page Session HttpApplication HttpServerUtility
Response מאפשר לשרת לתקשר עם הלקוח כאשר המשתמש פונה נוצר מופע מ HttpResponse המופע Response מאפשר להשתמש בשיטות Write שליחת פלט HTTP לדפדפן
Response.BufferOutput החוצץ מחזיק בפלט עד סיום הקוד המופעל בסיום פעולת הקוד הוא שולח את הפלט לדפדפן פלט שאינו מוחזק ב buffer נשלח ישירות לדפדפן ה Buffer משפר ביצועים ופעיל כברירת מחדל Response.BufferOutpu=False סגירה לדוגמה : 2 פעולות Write יופיעו בו זמנית בסיום ביצוע הקוד אך ללא חוצץ כל פעולה תוצג בנפרד
שיטות : Response.Write\Flush\End Buffer שיטות : Response.Write\Flush\End CLEAR : מנקה ומאבדת את המידע שבחוצץ FLUSH : שולחת את המידע שבחוצץ לדפדפן END :מונעת מ Response לשלוח פלט חדש לדפדפן (רק פלט שבחוצץ נשלח)
With \ Without Buffering aspx aspx buffer Browser Browser
Response.Redirect לנתב את המשתמש לדף אחר Response.Redirect(“FirstPage.aspx");
Request Object מאפשר לשרת לטפל בנתונים הנשלחים מהדפדפן בזמן הבקשה שולח הדפדפן מידע לשרת כשמתבצעת הבקשה נוצר אובייקט מסוג HttpRequest אובייקט זה מייצג אל הלקוח השרת מנתח את המידע שהתקבל באובייקט ה Request השרת מחזיר את הדף ע"י אובייקט Response BROWSER SERVER REQUEST DATA DATA HTML RESPONSE
GET - QueryString אוסף מידע על הלקוח ( יש גם אוסף מידע : POSTFORM ) מידע המצורף לסוף ה URL ונשלח לשרת הערכים כוללים מידע בזוגות: מפתח+ערך הזוג הראשון מופיע לאחר ה ? שאר הזוגות מופרדים ב & לא מומלץ להעביר כמות גדולה של טקסט (255 תווים) http://www.MySite.com?id=111&Name=Doron
Request.QueryString \ Form שיטת שליחת נתונים GET Request.QueryString Request.QueryString(‘id”) שיטת שליחת נתונים : POST Request.Form Request.Form(‘id”)
Request.ServerVariable אוסף מידע על השרת Request.ServerVariables(“URL") Request.ServerVariables(“PATH_INFO“) Request.ServerVariables(“PATH_TRANSLATED") Request.ServerVariables(“SERVER_SOFTWARE") SrverName+Domain+URL URL המסלול הפיסי המלא של קובץ בשרת שם התוכנה של השרת
Response.Cookies Cookies קובץ טקסט המכיל מידע מידע : שם משתמש \ סיסמה \ נתוני משתמש לזיהוי ה אוסף Cookies מחזיר ייחוס ל HttpCooke יצירת Cookies ערך בודד Response.Cookies("temp").Value = "HI" זוגות ערכים Response.Cookies("temp")(“User”) = "HI" Response.Cookies("temp")(“Pass”) = “222" C:\Documents and Settings\instructor\Cookies instructor@localhost[1].txt
Expires ניתן לקבוע מתי Cookie אינה בתוקף ניתן להתייחס לתאריך מסויים ניתן לתת זמן יחסי Response.Cookies(“Me”).Expires= _ DateTime.FormString(“1/1/2003”) DateTime.Now.AddMonths(1) לאחר זמן זה ה Cookie ימחק כאשר המשתמש יסגור את הדפדפן
Cookie Properties Expire Domain Path HasKeys Secure HTTPS מגביל לתחום מסויים www.mysite.com מגביל את דפי ה ASPX לגשת ל Cookies למסלול מסויים בשרת קובע האם יש צמדי ערכים או ערך בודד האם להעביר את העוגייה בצורה מאובטחת HTTPS
Request.Cookies הדפדפן שולח את כל המידע שב-cookie בזמן הבקשה Request.Coockies(“Me”).Value Request.Coockies(“Me”)(“UserName”) שליפת ערך מאובייקט הבקשה ושליחתו לדפדפן ע"י אובייקט התגובה : Response.write(Request.Coockies(“Me”)(“UserName”))
Write the first Cookie Response.Cookies("ME1").Expires = DateTime.Now.AddMonths(1) Response.Cookies("ME1").Value = "Hello From Cookies ME1"
Add Cookie Response.Cookies("ME2").Expires = DateTime.Now.AddMonths(1) Response.Cookies("ME2")("Username") = "Doron Amir “ Response.Cookies("ME2")("Preference") ="800x640“ Response.Cookies("ME2")("Password") = "123“ Response.Cookies("ME2")("LastVisit") = DateTime.Now.ToString Response.Cookies("ME2")("UserAgent")=Request.ServerVariables("HTTP_USER_AGENT") Print By For Each
Read From Cookies
Find Cookies
Page Object מכיל את כל שיטות והמאפיינים עבור דף aspx דף aspx הוא אובייקט הנוצר ממחלקה שירשה ממחלקת Page אובייקט Page מכיל אירוע Load המתרחש ברגע שהדף מתחיל להיטען לדפדפן האובייקט Page מכיל מאפיין IsPostBack המחזיר False כאשר הדף נטען בפעם הראשונה
הזמן יופיע בעת טעינת הדף Load - Time הזמן יופיע בעת טעינת הדף
ToString(“d/D/T/..”)
Session Object מאפשר לאחסן פריטים המתאימים למשתמש מסויים המידע נשמר בשרת כאשר משתמש מבקר באתר השרת מקצה עבורו אובייקט Session השומר את המידע עד אשר המשתמש עוזב את האתר Session("Name ") = txtName.Value Space
Session Page1 SERVER למרות המעבר בין הדפים השרת שומר את המידע השייך למופע מסויים ( משתמש) Page2 Session
Session Seesion1.aspx Seesion2.aspx
SessionID כאשר משתמש יוצר Session נוצר קוד זיהוי ייחודי עבור אותא משתמש הנשמר במחשב הלקוח ב cookie בכל פעם שהמשתמש עובר בין הדפים באתר asp.net קוראת את ה cookie ומשייכת אותו אל ה Session המתאים ניתן לראות את ה SessionID Respnse.Write(Sessin.SessionID)
TimeOut \ Abandon קובע כמה זמן פעיל ה Seesion ברירת המחדל : 20 דק' Session.Timeout=20 ה session יהיה קיים בזיכרון גם לאחר שמשתמש עזב ובכך לגרום לבזבוז זיכרון Abandon כדי לסיים את ה Session כאשר המשתמש עוזב Session.Abandon
Multi Session
Multi Session
Session Without Cookies Asp.net שומרת את ה SessionID ב Cookie אצל הלקוח ... אבל אם הלקוח אינו תומך ב Cookies ????
Cookie munging מעקב אחר Session ללא Cookie לפני שהדף נשלח asp.net מוסיפה בסוף כל קישור גירסה מקודדת של SessionID כאשר המשתמש לוחץ על הקישור asp.net שולפת את הקוד ומפענחת לאחר מכן מעבירה את הקוד לדף המשתמש כעת דף המשתמש יכול להכיל ערכי Sesson התהליך מתבצע אוטומטית כאשר המשתמש אינו תומך בעבודה אם עוגיות
Cookie munging aspx משתמש מבקש דף User Request Page משתמש מבקש דף לפני הטעינה נוסף לדף מידע לגבי sessionID Add SessionID aspx <a Href=…?sessionID=sshkjashjkhsa2321” User Click on Link כאשר המשתמש לוחץ על קישור הזיהוי מועבר ע"י QueryString וכך ניתן לעבוד עם Session <a Href=…?sessionID=sshkjashjkhsa2321” Session
Application Object אובייקט זה מייצג יישום ASP.NET ולא משתמש Session נוצר עבור כל משתשמש Application נוצר כאשר היתה בקשה מהאתר בפעם הראשונה משתנים המאוחסנים ב Application זמינים עבור כל היישום השתמש ב Application כדי לשמור מידע משותף לכל המשתמשים Application(“Aout”)=“Copyright 2004”
Server Utility מספק שיטות לעיבוד בקשות הפניית משתמש לדף אחר Response.Redirect שליחת מידע לדפדפן Server.Transfer אינו שולח מידע לדפדפן הפעלת קוד Server.Executeהפעלת קוד בדף אחר
Server.ScriptTimeOut שליטה על הפעלת Script Server.ScriptTimeOut=60
Server Utility Server.Transfer Server.Execute Server.HtmlEncode Server.UrlEncode Server.HtmlDecode Server.UrlDecode Server.MapPath Server.ScriptTimeOut=שניות
סיכום Response התקשרות שרת-דפדפן הצגת מידע למשתמש הפניית המשתמש לדף אחר Request התקשרות דפדפן-שרת קבלת מידע על הלקוח
סיכום HttpCookie מנגנון לכתיבה \ קריאה Cookies משתמש לרוב ב Request & Response Cookies אחסנה במחשב לקוח חוסך במשאבי שרת Page מייצג דף aspx
סיכום Session מידע על ה Session הנוכחי של הלקוח שימוש במשאבי שרת Application מייצג יישום אחסון משתים ברמת היישום Server Utility עיבוד בקשות ( הפניות,עיצוב מחרוזות , הפעלת קוד,script )
מבוא ל ASP.NET שיעור 2 : מבוא ל ASP.NET מצגת מס' 2 www.doronamir.com MCSD DORON AMIR