20050917
- 2. Web アプリケーションとは
Web アプリケーションの境界はフォルダ階層で
区切られる
データ境界
セキュリティ境界
IIS の管理ツールで設定を行う
仮想フォルダの追加
フォルダのプロパティから設定
仮想フォルダと Web アプリケーションの関係を確認
VisualStudio.NET で ASP.NET Web アプリケー
ションを作成すると自動的に Web アプリケーシ
ョンとしての設定がなされる
- 3. レイアウト設定
グリッドレイアウト
VisualStudio.NET のデフォルト設定
CSS を利用してすべてのコントロールの位置を固定
化
IE 以外のブラウザでは表示が崩れることも
フローレイアウト
HTML レベルでのレイアウト
追加順による表示
デザイン画面で作成したレイアウトがどのよう
に HTML 画面に表示されているか確認
- 4. コントロール
Web コントロール
<asp: ~>であらわされる
表示の制御等はプロパティを設定することによって
行う
カレンダーコントロールのような複合的なコントロ
ールが用意されている
• いくつかの HTML タグに展開される
HTML コントロール
1つの HTML タグに対応する
タグの属性の設定によって表示を制御する
通常利用する必要はない
• FileField コントロールは Web コントロールに対応するもの
がないため利用することがある
- 7. ページ遷移
リンク
<a> タグを利用
リンクをクリックしてもらってページを遷移する
ブラウザから次のページへのリクエストがあがって
くる
Response.Redirect
サーバ上のプログラムから遷移
一度ブラウザにリダイレクト先を指示、ブラウザか
らリダイレクト先へのリクエストがあがってくる
Server.Transfer
サーバ上のプログラムから遷移
ブラウザに表示される URL が遷移先のページになら
ない
- 8. ページ間のデータ渡し
クエリ文字列
URL 中にキーと値を埋め込む
Request.QueryString[“ キー” ] で値を取り出す
Cookie
Cookie にキーと値を埋め込んでブラウザに渡す
ブラウザが Cookie を扱える設定になっている必要がある
Session
サーバ上にデータを保持する
データはユーザ毎に区別されて保持される
ユーザの区別はデフォルトでは Cookie を利用する
Application
すべてのユーザが利用するデータをサーバ上で保持する
- 9. データベース
Web アプリケーションではデータベースの知識は必須
SQL Server をベースに説明
データベースの構築、テーブルの作成、修正等は VisualStudio.NET
から可能
データベースの認証機能を理解する
SQL Server には Windows 認証と混合認証がある
Windows 認証(デフォルト)では ASPNET ユーザの追加が必要
混合認証時は接続文字列にユーザ名とパスワードを記述
データベースの利用権限を理解する
簡単なのは、 ASPNET ユーザをデータベースのオーナーに加えてしま
う方法
各テーブルに対して操作毎に権限を与えるほうがよりセキュアである
データベースが別サーバにある場合の認証、権限には特に注意
レンタルサーバでは通常 ASPNET ユーザが利用できるようにして
いるため権限等はあまり考えなくてよい
ただし、接続文字列は指定されたものを利用する
- 10. データ取得
DataSet
メモリの中にテーブル、リレーションをそのまま持ってこれる
データを持ってきた時点で DB との接続は切れる
ウィザードによって更新用 SQL まで自動生成が可能
シリアライズして保存することが可能(テキストファイル化)
DataReader
取り出したデータは先頭から順にみることしかできない
処理自体は速い
利用する SQL 文は自分で記述する
データバインド
コントロールによっては DataSet や DataReader をバインドす
ることで繰り返しの処理をプログラムを書かずに設定できる
- 11. プログラムからのデータ操作
動的に SQL 文を組み立てて利用する
セキュリティを考慮( SQL インジェクショ
ン)
パラメータクエリーを利用する
DB に SQL 文字列がキャッシュされるためパ
フォーマンス的にもよい
ストアドプロシージャを利用する
複数の操作をトランザクションとするような
場合に便利
- 12. 作成時の留意点
必要な知識は非常に多い
Web サーバ
ネットワーク
データベース
HTTP
HTML
DHTML
• JavaScript
• ASP.NET Ver 1.1 では DHTML は使いやすくはない
Web アプリケーションでは同じ機能を実現するのにい
くつもの方法が考えられる
処理の実行場所(サーバ上、クライアント上)、使うタグの選
択等々
どの方法を採用するべきか見極めが必要になる