session ב- NET

amera

New member
session ב- NET

האם השורות הבאות מ- ASP ישתנו במשהו ב- ASLNET
if session("educator")="ok" then response.write "Welcome " & session("user_fname") else response.write "no access" end if​
והאם תפיסת SESSION שונה ב- ASPNET
 

gilad g

New member
יש שינויים קטנים ../images/Emo13.gif

if session.Item("educator")="ok" then response.write("Welcome " & session.Item("user_fname") ) else response.write("no access") end if​
שלא כמו ב-VBS, ב-VB.NET יש חובה לקרוא למתודות עם הסוגריים, וגם צריך להשתמש ב-Item. תפיסת ה-Sessions ב-ASP.NET לא השתנתה הרבה.
 

amera

New member
ומה עם מערכים דו מימדיים, האם

dim subject(45,12) נשאר גם ב- VBNET​
 

gilad g

New member
לא בדיוק ../images/Emo13.gif

http://msdn.microsoft.com/library/en-us/vbcn7/html/vaconDeclaringArrays.asp?frame=true ועוד הערה - ברוב הקודים שאתה נותן אני רואה שאתה לא מצהיר על סוג המשתנה... וזה גורם להרבה תקלות בקוד שלך. במקום להצהיר Dim x, תאמר Dim x as string, כי מה שקורה זה שאתה מצהיר על המשתנה כמשתנה מסוג Object (ולא string או integer) - ואז הCLR צריך להתעסק עם boxing ן-unboxing, ואתה צריך להסתבכך עם casting, ועוד לא דיברתי על יעילות. VB.NET היא לא VBS - עזור לCLR, ותן סוג למשתנים שלך
 

amera

New member
ENCODING ב- ASPNET

האם בגלל התמיכה ב- UNICODE, השורה הבאה מיותרת ב- ASPNET:
<%@ Language=VBScript codepage=65001%>​
 

gilad g

New member
לא רק שהיא מיותרת

אלא היא גם לא חוקית
ההוראה הזאת התחלפה ב-@Page:
<%@Page language="VB"%>​
אני מציע לך לקנות ספר ASP.NET טוב, ולשכוח את כל מה שלמדת ב-ASP, כי ASP.NET שונה מהותית מ-ASP קלאסית.
 

nattygur

New member
שים לב שניתן לשנות את ה Encoding

הן של ה response והן של ה Request תוך כדי שימוש ב tag בשם Globalization ב web.config. נתי גור [MVP]
 

nattygur

New member
בהמשך לתשובתו של גלעד...

בניגוד ל ASP ה ASP.NET רץ תחת Process יעודי בשם aspnet_wp ב 2000 או w3_wp ב XP או 2003. ביכולתו של Process זה לעשות Recycle לאפליקציה או לכל ה Process (הגדרות ה Recycling נמצאות ב Machine.Config) מצב כזה יגרום לפרמטרים של ה Session להעלם למרות שהאפליקציה ממשיכה לרוץ. כדאי לזכור את זה היטב משום שהרבה מאוד מתכנתים מפנים שאלות שהמצב הזה הוא הסיבה. בנוסף לכך מנגנון ה Session ב Net. מאפשר להוציא את ה נתוני ה Session מה Process לשרת יעודי או לבסיס נתונים. מצב כזה אמנם מאפשר תמיכה בחוות שרתים או ב Recycaling של אפליקציה אבל פוגע בביצועים. אם מישהוא מעוניין לדעת מה רמת הפגיעה בביצועים ניתן לקרוא מאמר בנושא : http://www.codeproject.com/aspnet/sessionstate.asp ראו טבלה 1.0 נתי גור [MVP]
 

gilad g

New member
הערה קטנה

ה-process של asp.net ב-xp הוא aspnet_wp... רק ב-2003 זה השתנה
 

amera

New member
שתי שאלות ב- NET

יש לי
<asp:CheckBoxList id="subjects" runat="server" checked="yes"></asp:CheckBoxList>​
ה- checked=yes לא עובד, ניסיתי גם =TRUE וגם SELECTED=YES וגם SELECTED=TRUE וכולם לא עבדו השאלה השניה תכף תבוא
 

yuval k

New member
ובכן...

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

amera

New member
תודה. השניה

השורה
if session.Item("educator")="ok" then​
לא מתקיימת למרות שבדף המקביל שכתוב ב- ASP עם
if session("educator")="ok" then​
זה אכן מתקיים ואין בעיה האם חסר לי משהו מהמשפחה של NAMESPACES??
 

yuval k

New member
מה הכוונה ב"לא מתקיימת"?

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

amera

New member
כן, מחזיר FALSE למרות

שאמור להחזיר TRUE, כנראה שהוא לא קורא את ה- SESSION בכלל
 

yuval k

New member
אתה בטוח שהערך של משתנה ה-session

הוא true? בדוק זאת שוב
 

yuval k

New member
משתני session אינם משותפים בין ASP

ו-ASP.net... סביר שזו הסיבה שזה לא עובד.
 

yuval k

New member
אין קשר.

משתני ה-Session לא משותפים בין אפליקציות ASP ל-ASP.net. בלי קשר לזמן בו הן עובדות.
 

nattygur

New member
יש פתרון של MS ומסחריים לבעיה

1) MS ראה : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ConvertToASPNET.asp 2) מסחרי, לא דורש שינוי ב ASP ראה : http://www.iprisma.com/aspbridge/ נתי גור [MVP]
 
למעלה