Visual Studio 2005による Web アプリケーション入門

Download Report

Transcript Visual Studio 2005による Web アプリケーション入門

開発者カテゴリ
Visual Studio 2005による
Web アプリケーション入門
アジェンダ
Webアプリケーション開発:ASP.NET の基礎
基本的な環境、Visual Studio .NET での開発
サーバー コントロール
基礎、サーバー イベント処理、ビュー ステート
セッション管理
認証 (authentication) と承認
(authorization)
ASP.NET
ASP.NETとは ?
Webアプリケーション向けアーキテクチャ
Web フォーム、XML Web サービス
サーバーサイドアプリケーション
IIS(Internet Information Service) + .NET Framework
実行時は、JITコンパイルによってネイティブコードとして実行
従来の ASPのバージョンアップ以上のもの
開発生産性の高いプログラミングモデル
C#やVB .NETなど、オブジェクト指向プログラミング言語が使用可能
HTTPやHTML、XMLなどのネットワーク上の実装を意識させない
IIS
Windows 2000 ~
.NET Framework
Web フォーム
Web フォームとは ?
拡張子 .aspx のファイル
サーバーで実行され、ブラウザに対して HTML ベースのユー
ザー インターフェイスを提供する
ブラウザから HTTP を使って、A.aspx を要求すると、Web サーバー (IIS
+ ASP.NET ランタイム) は A.aspx 中に記述された処理を実行する
処理結果として、HTML をクライアントに返信する
http://srv/app/A.aspx
A.aspx
ブラウザ
HTML
HTML、ASP.NET 固有タグ
VB.NET、C# など
実行
IIS アプリケーション
(仮想ディレクトリ)
Visual Studio 2005 による開発 1/4
ASP.NET Web アプリケーション用のテンプレート
Web フォーム アプリケーションの雛型(テンプレート)が用意され
ている
Web サイトを作成
Visual Studio 2005 による開発 2/4
Web サイト
IIS上の仮想ディレクトリとして作成することも可能
デバッグ、実行に IIS 環境を直接使用
任意のファイル システム上に作成
デバッグ、実行に ASP.NET 開発サーバーを使用
ソリューションを作成
作業の開始はソリューション ファイルを開き、終了はソリュー
ションを閉じる
WebSite1.sln
ソリューション ファイル
+
Default.aspx
Default.aspx.vb
Web.config
...
Web サイト用のフォル
Visual Studio 2005 による開発 3/4
① コードエディタを表示
② デザイナを表示
Web フォーム デザイナ
③ デザインビュー
ソリューション エクスプローラ
④ ソース ビュー
プロパティ ウィンドウ
Web フォームのファイル構成
ユーザー インターフェイスと制御ロジックの分離
<%@ Page Language="VB" CodeFile="Page1.aspx.vb" Inherits="Page1" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
Page1.aspx
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="OK" /><br />
...
</form>
</body>
</html>
Partial Class Page1
Inherits System.Web.UI.Page
Protected Sub Button1_Click( ... ) Handles Button1.Click
Label1.Text = TextBox1.Text + " さん、こんにちは"
End Sub
End Class
Page1.aspx.vb
アジェンダ
ASP.NET の基礎
基本的な環境、Visual Studio .NET での開発
サーバー コントロール
基礎、サーバー イベント処理、ビュー ステート
セッション管理
認証 (authentication) と承認
(authorization)
ASP.NET サーバー コントロール
ASP.NETサーバーコントロールとは ?
サーバー上で実行される Webフォームの構成部品
画面を構成する HTMLをカプセル化
適切な HTMLを自動的に出力
ほとんど HTMLを意識せず、コード上はオブジェクトとして操作できる
サーバイベント処理(後述)
ビューステートの自動的な管理(後述)
http://srv/app/Page1.aspx
ブラウザ
HTML
<select name="ListBox1" ...>
<option value="~">~</option>
<option value="~">~</option> ...
Webサーバー
<%@ Page ... %>
<asp:ListBox id="ListBox1"
runat="server"></asp:ListBox>
実行
ListBox1.Items.Add("Tokyo");
ListBox1.Items.Add("Nagoya");
ListBox1.Items.Add("Osaka");
サーバーイベント処理
サーバーイベント処理とは ?
ブラウザで起きたイベントはサーバーサイドで処理
ブラウザ上は HTMLベースの Webページ
イベントハンドラはサーバー上のコードに実装
ポストバック イベントとも呼ばれる
サーバーへのイベント通知は、同一ページへのポスト(HTTP-POST)
ブラウザ
Webサーバー
URL欄で指定
<%@ Page ... %>
<asp:Button id="Button1"
runat="server"></asp:Button>
private void Button1_Click(...)
{
//OKボタンが押されたら実行
ポストバック
HTML
実行
}
ビューステートとは
ビューステートとは ?
サーバー コントロールの状態を自動的に管理する仕組み
隠しフィールドを利用してブラウザ上の HTML内に状態を保持
自動的にラウンドトリップする
プログラマが任意のデータを格納できる
ステート
Dim n As Integer
n = CInt(Label1.Text)
n = n + 1
Label1.Text = CStr(n)
ステート
ラベル表示、色、フォントサイズ、etc ...
<input type="hidden" name="__VIEWSTATE" value= ~
Webサーバー
アジェンダ
Webアプリケーション開発:ASP.NET の基礎
基本的な環境、Visual Studio .NET での開発
サーバー コントロール
基礎、サーバー イベント処理、ビュー ステート
セッション管理
認証 (authentication) と承認
(authorization)
セッション
セッションとは?
一人のユーザーがサーバーにアクセスするときの連続的な操
作の管理単位
ASP.NETのおけるセッション
Cookie内、またはクエリ文字列に、一意のセッションIDを送り、
同一ユーザーセッションを識別
Pageクラスの Sessionプロパティでセッション単位の状態管理
が可能
セッションID
Cookie
同一セッションにおける
HTTP要求であることを
ASP.NET は認識する
Webサーバー
セッションID
Cookie
アジェンダ
Webアプリケーション開発:ASP.NET の基礎
基本的な環境、Visual Studio .NET での開発
サーバー コントロール
基礎、サーバー イベント処理、ビュー ステート
セッション管理
認証 (authentication) と承認
(authorization)
ASP.NETセキュリティの位置付け
ASP.NETセキュリティの位置付け
ブラウザ
認証(匿名、基本、Windows、etc...)
IPなどの制限、ポート番号、SSL、etc...
Webサーバー
IIS
ASP.NETにアクセスるすには、
IISを通過する必要がある
ISAPI Dll
ASP.NET
.NET Framework
共通言語ランタイム
認証(Windows、Passport、フォーム)
独自の承認(アクセス制御)
コード アクセス セキュリティ
ロール ベース セキュリティ
フォーム認証 (続き) ~ VS2005
Login コントロールの特徴
フォーム認証のログインで使用する標準的な UI
Visual Studio 2005 ではドラッグ アンド ドロップして貼り付けるだけ
認証ロジックも実装
ユーザー検証やログインに関連する処理のコードは不要
カスタマイズ可能な UI と振る舞い
<%@ Page Theme="BasicBlue" %>
<html>
<body>
<form runat="server">
<asp:Login RunAt="server" />
</form>
</body>
</html>
フォーム認証 (続き) ~ VS2005
Web サイト管理ツールによる管理
認証モードの指定
ユーザー情報の管理、etc...
URL承認の構成
<authorization>要素
認証手続きよりも後のセキュリティ評価過程
特定のURL (フォルダ、ページ)についてアクセスを許可、拒否
できる
<configuration>
<system.web>
<authorization>
<allow users="taro, jiro, redmond\goro" />
<allow roles="managers" />
<deny users="*" />
</authorization>
</system.web>
<location path="staff"> <!--特定フォルダへの保護 -->
<system.web>
<authorization>
<allow users="admin" />
<deny users="*" />
</authorization>
</system.web>
</location>
</configuration>
Next Step !!!
ASP.NET 2.0 の新機能
「データ ソース コントロール」による新しいデータ連結
「テーマ」と「スキン」による新しいユーザー インターフェイス
「Login コントロール」等、関連する新しいコントロール
「メンバシップ サービス」による新しいユーザー管理
「ロール管理サービス」による新しいロール管理
「プロファイル」による新しい個人環境設定の管理
「プロバイダ モデル」による保存用ストレージの拡張
「サイト ナビゲーション」機能によるメニューの新しい構築方法
「Web パーツ」用フレームワークの標準装備
「クロス ページ ポスティング」
各コントロールの機能強化
etc...