« 8月7日のトレーニング | トップページ | 8月10日のトレーニング »

2010年8月 9日 (月)

基礎からのASP.NETを読む(4)

先週末に読んだ基礎からのASP.NET SE必修! (SE必修!プログラマの種シリーズ)の整理をしていなかったので、書き残しておきます。

先週読んだ所は、Webページでの値の保持方法と、複数ページでの遷移する時の
値の受け渡しについてでした。

ASP.NET2では、
・Cookie
・StateBag
・Session

の3つを利用して値を保持したり、ページ間で値の受け渡しをしたりするようです。

Cookieは、クライアントのメモリorディスクに保存させることで、値を保持する方法です。
(有効期限を指定(Expiresプロパティに値をセット)するとディスクに書き込む)

Cookieを利用するとブラウザ終了後に破棄されます。(メモリ保存のみの場合など)
利用者がCookieを拒否する事も可能
そもそもCookieが利用できないブラウザが存在したりする。
最大4kバイトの情報を保持できるらしい。

一時的なセット
Response.Cookies("key1").Item("key2") = "hoge"

復元可能なセット
Response.Cookies("key1").Item("key2") = "hoge"
Response.Cookies("key1").Expire = "未来の日付"

値の取り出し
Request.Cookies("key1").Item("key2")

StateBagは、ViewStateプロパティを利用してやり取りする。
(ViewStateはブラウザのhiddenに値を保持させている。
Base64エンコードしているので、メモ帳で見ても値は判別できない。)

値のセット
ViewState.Item("key1") = "hoge"

値の取り出し
ViewState.Item("key1")を型変換

Sessionは、サーバで保持する方法で、セッションIDで、クライアントを判別し、
アプリケーション内でデータを共有できる。
ただし、サーバのリソースを消費する。

値のセット
Session.Item("key1") = "hoge"
Session("key1") = "hoge"

値の取り出し
Session("key1")を型変換

注意点
ViewStateを利用した時は、更新ボタンを押した時と、Submitした時で挙動が違う。
Cookie、Sessionは更新ボタンでも、クライアント、サーバで保持している値を利用するので変化するが、
ViewStateについては、更新ボタンだと表示前のリクエストで実行されるため、値が変化しない。

|

« 8月7日のトレーニング | トップページ | 8月10日のトレーニング »

ASP.NET」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/50625/49103283

この記事へのトラックバック一覧です: 基礎からのASP.NETを読む(4):

« 8月7日のトレーニング | トップページ | 8月10日のトレーニング »