System Session Variable VS. Own-declared 'Session' Variable

C

chowchho

I am new to ASP.NET and most of my time spending on windows application. In
my Windows application, I used to create a class called MySession and and
instantiate it at the first page and pass around from form to form.

My quesitons are:
1) Does this concept same with the Session in ASP.NET?
2) Can I use the MySession method in ASP.NET?
3) Wht's the benefit of Session over own-declared session class?

Thank all.


Regards,
Chow
 
A

Aidy

Asp.net gives you a built-in object called Session that lets you store
whatever you want in it;

Session["UserID"] = 123;
Session["Username"] = "Hello";
User user = new User();
Session["UserObject"] = user;

So you could create your own MySession class and just store it in the
Session object;

MySession s = new MySession();
Session["SessionObject"] = s;

then retrieve it like this;

MySession s = (MySession) Session["SessionObject"];

If you look at the global.asax page you can code up a Session start event,
this is fired when the user first visits your site and this is where you
would instantiate the object and store it in the Session;

void Session_Start(object sender, EventArgs e)
{
... code here
}
 
C

chowchho

Thank for your explanation.
But is it a good practice to declare our own class of session insteads of
using the system one? In my opinion, own session class is more easy to manage
and no time-out issue.

Thank.

Aidy said:
Asp.net gives you a built-in object called Session that lets you store
whatever you want in it;

Session["UserID"] = 123;
Session["Username"] = "Hello";
User user = new User();
Session["UserObject"] = user;

So you could create your own MySession class and just store it in the
Session object;

MySession s = new MySession();
Session["SessionObject"] = s;

then retrieve it like this;

MySession s = (MySession) Session["SessionObject"];

If you look at the global.asax page you can code up a Session start event,
this is fired when the user first visits your site and this is where you
would instantiate the object and store it in the Session;

void Session_Start(object sender, EventArgs e)
{
... code here
}

chowchho said:
I am new to ASP.NET and most of my time spending on windows application. In
my Windows application, I used to create a class called MySession and and
instantiate it at the first page and pass around from form to form.

My quesitons are:
1) Does this concept same with the Session in ASP.NET?
2) Can I use the MySession method in ASP.NET?
3) Wht's the benefit of Session over own-declared session class?

Thank all.


Regards,
Chow
 
J

Juan T. Llibre

re:
!> But is it a good practice to declare our own class of session insteads of
!> using the system one? In my opinion, own session class is more easy to manage
!> and no time-out issue.

There's no problem at all with using your own version of Session,
instead of the built-in one, as long as you know what you're doing.

Just place your class file ( *.cs or *.vb ) in the App_Code directory of your app,
and it will be automatically compiled, or manually compile an assembly
from your class file and place it in the /bin directory of your app.





chowchho said:
Thank for your explanation.
But is it a good practice to declare our own class of session insteads of
using the system one? In my opinion, own session class is more easy to manage
and no time-out issue.

Thank.

Aidy said:
Asp.net gives you a built-in object called Session that lets you store
whatever you want in it;

Session["UserID"] = 123;
Session["Username"] = "Hello";
User user = new User();
Session["UserObject"] = user;

So you could create your own MySession class and just store it in the
Session object;

MySession s = new MySession();
Session["SessionObject"] = s;

then retrieve it like this;

MySession s = (MySession) Session["SessionObject"];

If you look at the global.asax page you can code up a Session start event,
this is fired when the user first visits your site and this is where you
would instantiate the object and store it in the Session;

void Session_Start(object sender, EventArgs e)
{
... code here
}

chowchho said:
I am new to ASP.NET and most of my time spending on windows application. In
my Windows application, I used to create a class called MySession and and
instantiate it at the first page and pass around from form to form.

My quesitons are:
1) Does this concept same with the Session in ASP.NET?
2) Can I use the MySession method in ASP.NET?
3) Wht's the benefit of Session over own-declared session class?

Thank all.


Regards,
Chow
 
A

Aidy

But is it a good practice to declare our own class of session insteads of
using the system one? In my opinion, own session class is more easy to
manage
and no time-out issue.

No, cos IIS manages if you have timed out, or are a new visitor etc, and you
use the built-in Session object to properly interact with that. You can't
impose your own time-out constraints, the web server will dictate when you
have timed out and when you do your session is destroyed and the next time
you access a page you're given a new session and are now a new user.

Coming from a desktop app background you maybe need to spend some time
familiarising how the lifespan of a web app differs.
 
H

Hans Kesting

I am new to ASP.NET and most of my time spending on windows application. In
my Windows application, I used to create a class called MySession and and
instantiate it at the first page and pass around from form to form.

My quesitons are:
1) Does this concept same with the Session in ASP.NET?
2) Can I use the MySession method in ASP.NET?
3) Wht's the benefit of Session over own-declared session class?

Thank all.


Regards,
Chow

It might not be so easy to "pass it from page to page", as the
page-classes themselves live only long enough to serve a single
request. Every request is handled by a fresh instance of the page.
This means that you can't just access a property of an instance of some
other page, as that instance does not exist.

An other "solution" that might occur to you is to use a singleton.
DO NOT DO THAT. The web application is a single application that serves
a number of users. If you use a singleton to store information, then
EVERY user sees the same information. This might or might not be what
you want.

That is the reason that the Session is available in web applications:
here you can store user-specific information (or rather *session*
specific information). This session usually depends on a temporary
cookie.

Hans Kesting
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,173
Latest member
GeraldReund
Top