動かしながら学ぶASP.NET Webフォームの入門書
最新のVisual Studio 2019/ASP.NET 4.8に対応。ASP.NETの仕組みから、サーバーコントロールの使い方と使い分け、データベース連携、状態管理、Ajax/jQuery、ASP.NET Identityの実装やBootstrap連携など、丁寧に解説しています。解説、練習問題、理解度チェックの3ステップで、手を動かしながら学習を進めます。本番環境として、Internet Information ServicesやMicrosoft Azure上で動作させる手順も紹介しています。紙面はC#で解説、配布サンプルはC#/VB両対応。
更新履歴
- FAQ情報:2020年5月9日 更新
- 正誤訂正:2020年6月17日 更新
目次
- 第1章 イントロダクション
- 1.1 ASP.NETとWebアプリケーション
- 1.1.1 クライアント/サーバー間の通信
- 1.1.2 静的なページと動的なページ
- 1.1.3 クライアントサイド技術とサーバーサイド技術
- 1.1.4 サーバーサイド技術とASP.NET
- 1.2 ASP.NETと.NET Framework
- 1.2.1 .NET Frameworkとマネージコード
- 1.2.2 .NET Frameworkの構造
- 1.2.3 ASP.NETの構造
- 1.3 ASP.NETアプリケーションを開発/実行するための基本環境
- 1.3.1 .NET Framework
- 1.3.2 Webサーバー
- 1.3.3 データベースサーバー
- 1.3.4 統合開発環境
- 1.4 ASP.NETアプリケーション開発のための環境設定
- 1.5 Visual Studioの画面構成
- 1.5.1 スタートウィンドウ
- 1.5.2 ドキュメントウィンドウ
- 1.5.3 ソリューションエクスプローラー
- 1.5.4 ツールボックス
- 1.5.5 プロパティウィンドウ
- 1.5.6 サーバーエクスプローラー
- この章の理解度チェック
- 第2章 ASP.NETの基礎
- 2.1 ASP.NETアプリケーションの基本
- 2.1.1 補足 エラー時の対処方法
- 2.2 ASP.NETアプリケーションの構造
- 2.2.1 ASP.NETアプリケーションのフォルダー構造
- 2.2.2 コードビハインド
- 2.2.3 Webフォームの基本構造
- 2.2.4 補足 ASP.NETの実行過程とPageオブジェクト
- 2.3 ASP.NETを理解する3つの仕組み
- 2.3.1 サーバーコントロール
- 2.3.2 イベントドリブンモデル
- 2.3.3 ビューステート
- 2.4 学習を始める前に
- 2.4.1 作業用フォルダーの準備
- 2.4.2 サンプルの展開方法
- 2.4.3 補足 製品の登録
- この章の理解度チェック
- 第3章 基本サーバーコントロール
- 3.1 フォームコントロール
- 3.1.1 ASP.NETのフォームコントロール
- 3.1.2 例1 リストコントロールへの入力値を取得する(単一選択)
- 3.1.3 例2 リストコントロールへの入力値を取得する(複数選択)
- 3.1.4 例3 ファイルをサーバー上にアップロードする
- 3.1.5 例4 複数ファイルを同時にアップロードする
- 3.2 表示系コントロール
- 3.2.1 文字列を表示する――Label/Literalコントロール
- 3.2.2 ハイパーリンクを生成する――HyperLinkコントロール
- 3.2.3 画像を表示する――Imageコントロール
- 3.3 ボタンコントロール
- 3.3.1 例5 クリック時にJavaScriptのコードを実行する――OnClientClickプロパティ
- 3.4 検証コントロール
- 3.4.1 検証コントロール利用の準備
- 3.4.2 検証コントロールの基本
- 3.4.3 検証コントロール共通のプロパティ
- 3.4.4 検証メッセージをサマリー表示する――ValidationSummaryコントロール
- 3.4.5 必須項目をチェックする――RequiredFieldValidatorコントロール
- 3.4.6 入力値の範囲を検証する――RangeValidatorコントロール
- 3.4.7 データ型、値の大小を比較検証する――CompareValidatorコントロール
- 3.4.8 正規表現で文字列パターンを検証する――RegularExpressionValidatorコントロール
- 3.4.9 カスタムの検証ルールを適用する――CustomValidatorコントロール
- 3.4.10 補足 控えめな検証
- この章の理解度チェック
- 第4章 データバインドコントロール
- 4.1 データバインドコントロール利用の基礎知識
- 4.1.1 データベースサーバー
- 4.1.2 データソースコントロール
- 4.2 データベース操作の基本
- 4.2.1 SQL Serverへのアクセス方法
- 4.2.2 SQLの基本
- 4.3 GridViewコントロール
- 4.3.1 GridViewコントロールの基本
- 4.3.2 補足 接続文字列で利用できるパラメーター
- 4.3.3 例1 グリッド表の列をカスタマイズする
- 4.3.4 列情報を定義するXxxxxFieldクラス
- 4.3.5 例2 TemplateFieldクラスで列表示をテンプレート化する
- 4.3.6 GridViewコントロールで利用可能なイベント
- 4.3.7 例3 ソート時にソート行/方向をアイコン表示する
- 4.4 FormView/DetailsViewコントロール
- 4.4.1 例4 データベース上のデータを単票表示する
- 4.4.2 FormViewコントロールのイベント
- 4.5 ListViewコントロール
- 4.5.1 ListViewコントロールの基本
- 4.5.2 例5 データ項目のグループ化
- 4.5.3 補足 ページャーのカスタマイズ
- この章の理解度チェック
- 第5章 データソースコントロール
- 5.1 SqlDataSourceコントロール
- 5.1.1 例1 SQL命令にパラメーターを受け渡す方法
- 5.1.2 例2 データベースにバイナリデータを登録する(パラメーターのバインド)
- 5.1.3 例3 GridViewコントロールで階層的なデータを表現する
- 5.1.4 オプティミスティック同時実行制御
- 5.1.5 ストアドプロシージャ
- 5.1.6 例4 ストアドプロシージャを利用する
- 5.1.7 補足 ストアドプロシージャで戻り値を使用する方法
- 5.2 データアクセスの基本――ADO.NET
- 5.2.1 ADO.NETとは?
- 5.2.2 接続型アクセスと非接続型アクセス
- 5.2.3 接続型アクセスのデータプロバイダー
- 5.2.4 接続型アクセスによる参照処理
- 5.2.5 補足 接続型アクセスでの注意点
- 5.2.6 接続型アクセスによる更新処理
- 5.2.7 非接続型アクセスの基本
- 5.2.8 非接続型アクセスによる参照処理
- 5.2.9 接続型アクセス/非接続型アクセスを使い分けるポイント
- 5.3 ObjectDataSourceコントロール
- 5.3.1 ObjectDataSourceコントロール経由でデータを取得する
- 5.3.2 データアクセスコンポーネントの開発
- 5.3.3 補足 .xsdファイルの正体
- 5.3.4 例5 大量データのページング機能を実装する
- 5.3.5 トランザクション処理
- 5.4 モデルバインディング
- 5.4.1 前提知識 Entity Framework
- 5.4.2 モデルバインディングによる実装
- 5.4.3 型付けされたデータバインドコントロール
- この章の理解度チェック
- 第6章 組み込みオブジェクト
- 6.1 リクエスト情報を取得する――Requestオブジェクト
- 6.1.1 ポストデータを取得する――Formプロパティ
- 6.1.2 クエリ情報を取得する――QueryStringプロパティ
- 6.1.3 リクエストヘッダーを取得する
- 6.1.4 リクエストURLを取得する
- 6.2 クライアントへの応答を制御する――Responseオブジェクト
- 6.2.1 HTTPステータスを設定する――StatusCodeプロパティ
- 6.2.2 コンテンツタイプを設定する――ContentTypeプロパティ
- 6.2.3 バイナリデータを出力する――OutputStreamプロパティ
- 6.2.4 リダイレクトとフォワードの違いを理解する
- 6.2.5 補足 もう1つのリダイレクトメソッド
- 6.2.6 レスポンスヘッダーを発行する――AppendHeaderメソッド
- 6.2.7 任意のファイルを出力する――WriteFileメソッド
- 6.3 トレース機能を利用する――Traceオブジェクト
- 6.3.1 トレース機能の基本
- 6.3.2 トレース情報にメッセージを追加する
- 6.3.3 補足 トレースビューア
- この章の理解度チェック
- 第7章 状態管理
- 7.1 ビューステート
- 7.1.1 例1 数当てゲームを作成する
- 7.1.2 補足 ビューステートが必要な理由
- 7.2 クッキー
- 7.2.1 例2 クッキーの基本的な読み書き
- 7.2.2 クッキーのデフォルト設定を宣言する
- 7.3 セッション情報
- 7.3.1 セッション機能の基本
- 7.3.2 要素の主な属性
- 7.3.3 セッションの外部プロセス管理
- 7.3.4 セッションのSQL Server管理
- 7.4 アプリケーション変数
- 7.4.1 アプリケーション変数の基本
- 7.4.2 補足 アプリケーション変数の使いどころと制約
- 7.5 キャッシュ機能
- 7.5.1 ページキャッシュの基本
- 7.5.2 リクエストヘッダーでキャッシュを振り分ける――VaryByHeader属性
- 7.5.3 ページキャッシュの共通ルールを定義する――要素
- 7.5.4 データキャッシュの基本
- 7.5.5 データベースキャッシングを利用する
- 7.5.6 Cacheオブジェクトでキャッシュを操作する
- 7.5.7 有効期限や依存関係を持つキャッシュを生成する
- この章の理解度チェック
- 第8章 ASP.NET Identity
- 8.1 ASP.NET の認証ライブラリ
- 8.2 ASP.NET Identityの基本
- 8.3 ASP.NET Identityの基本設定
- 8.3.1 ユーザー情報を表すApplicationUserクラス
- 8.3.2 ユーザー情報を操作するApplicationUserManagerクラス
- 8.3.3 アクセス可否を制御するWeb.config
- 8.4 ログイン/新規ユーザー登録
- 8.4.1 ログイン処理
- 8.4.2 新規ユーザーの登録
- 8.4.3 補足 認証データベースの確認
- 8.4.4 アカウントのロックアウト
- 8.5 電子メールによる本人確認とパスワードリセット
- 8.5.1 メール送信の準備
- 8.5.2 電子メールによる本人確認
- 8.5.3 補足 メールリンクからのアカウント確認
- 8.5.4 パスワードの再設定
- 8.5.5 2要素認証
- 8.6 プロファイル機能
- 8.6.1 プロファイル項目の追加
- 8.6.2 ユーザー登録画面の修正
- 8.7 ロール単位でのアクセス制御
- 8.7.1 ロールの基本クラス
- 8.7.2 ロール管理のためのクラス
- 8.7.3 ユーザー登録画面の修正
- 8.7.4 Adminロール専用フォルダーの作成
- 8.8 認証に関わるそのほかのテーマ
- 8.8.1 ソーシャルアカウントと連動した認証
- 8.8.2 ログインコントロール
- この章の理解度チェック
- 第9章 リッチコントロール
- 9.1 ナビゲーションコントロール
- 9.1.1 サイトマップファイル
- 9.1.2 開閉可能なツリー式のメニューを生成する――TreeViewコントロール
- 9.1.3 リッチなメニューを生成する――Menuコントロール
- 9.1.4 パンくずリストを生成する――SiteMapPathコントロール
- 9.1.5 例1 サイトツリーの基点を変更する
- 9.1.6 例2 サイト内に複数のサイトマップファイルを配置する
- 9.1.7 例3 セキュリティトリミング機能を利用する
- 9.1.8 例4 サイトマップ情報をプログラムから参照する
- 9.1.9 例5 データベースからTreeView/Menuコントロールを生成する
- 9.2 Wizardコントロール
- 9.2.1 Wizardコントロールの基本
- 9.2.2 補足 テンプレートによるウィザードステップのカスタマイズ
- 9.3 MultiViewコントロール
- 9.3.1 例6 一覧/詳細画面の切り替えビューを作成する
- 9.3.2 補足 MultiViewコントロールとWizardコントロールの使い分け
- 9.4 Calendarコントロール
- 9.4.1 例7 日付データの簡易入力
- 9.4.2 例8 カレンダーに任意の情報を埋め込む
- 9.5 Chartコントロール
- 9.5.1 Chartコントロールの構造
- 9.5.2 Chartコントロールの基本
- 9.5.3 複合グラフを作成する
- この章の理解度チェック
- 第10章 部品化技術
- 10.1 ユーザーコントロール
- 10.1.1 ユーザーコントロールの基本
- 10.1.2 ユーザーコントロールでプロパティを定義する
- 10.1.3 フラグメントキャッシュを利用する
- 10.2 カスタムコントロール
- 10.2.1 カスタムコントロールの基本
- 10.2.2 カスタムコントロールの挙動を決める属性
- 10.3 マスターページ
- 10.3.1 マスターページの基本
- 10.3.2 例1 マスターページの内容を動的に変更する
- 10.3.3 例2 マスターページを入れ子で適用する
- 10.3.4 例3 マスターページによるSEO対策
- 10.3.5 補足 スタイルシート
- 10.4 Global.asax
- 10.4.1 Global.asaxで利用可能なイベント
- 10.4.2 例4 アプリケーションへのアクセスログを記録する
- 10.4.3 例5 アプリケーションで発生した例外の情報をロギングする
- 10.4.4 例6 URLルーティングを有効にする
- 10.4.5 応用 URLルーティングのさまざまな設定
- 10.4.6 補足 FriendlyURLsモジュール
- 10.4.7 HTTPモジュールによるアプリケーションイベントの処理
- 10.5 HTTPハンドラー
- 10.5.1 例7 特定の拡張子へのアクセスを禁止する
- 10.5.2 例8 HTTPハンドラーを実装する
- 10.6 Page派生クラス
- 10.6.1 例9 アプリケーションの検証メッセージを一元管理する
- 10.7 構成ファイル
- 10.7.1 構成ファイルの基本
- 10.7.2 アプリケーション構成ファイルの骨組み
- 10.7.3 アプリケーション設定を定義する――要素
- 10.7.4 特定のファイルだけに設定を適用する――要素
- 10.7.5 ページのデフォルトの挙動を設定する――要素
- 10.7.6 補足 クロスサイトスクリプティング脆弱性
- 10.7.7 カルチャ/文字コード設定を定義する――要素
- この章の理解度チェック
- 第11章 Ajax開発
- 11.1 Ajax技術とASP.NET
- 11.1.1 ASP.NETにおけるAjax技術の選択肢
- 11.2 ASP.NET AJAX Extensions
- 11.2.1 ページの一部だけを更新する――UpdatePanelコントロール
- 11.2.2 補足 UpdatePanelコントロールを利用する場合の注意点
- 11.2.3 非同期通信中であることを表す――UpdateProgressコントロール
- 11.2.4 一定時間おきに決まった処理を実行する――Timerコントロール
- 11.3 jQuery
- 11.3.1 jQueryの導入
- 11.3.2 jQueryの基本
- 11.4 jQueryによるAjax通信
- 11.4.1 サーバーサイドの機能を実装する
- 11.4.2 補足 ルーティング
- 11.4.3 Web API 呼び出しのクライアントページを実装する
- 11.4.4 補足 バンドル&ミニフィケーション
- 11.5 クライアントIDの制御
- 11.5.1 サーバーIDとクライアントID
- 11.5.2 クライアントIDの生成方法を決定する――ClientIDModeプロパティ
- 11.6 補足 Bootstrap
- 11.6.1 Bootstrapの有効化
- 11.6.2 レスポンシブデザイン対応のグリッドシステム
- 11.6.3 ページ上下に固定できるナビゲーションバー
- 11.6.4 入力フォーム
- この章の理解度チェック
- 付録A 本番環境への移行
- A.1 Internet Information Servicesへの配置
- A.1.1 IIS 10.0を準備する
- A.1.2 アプリケーションの配置
- A.2 Microsoft Azure への配置
- A.2.1 Azureの準備
- A.2.2 アプリケーションの配置
- 付録B 「練習問題」「この章の理解度チェック」解答
- コラム目次
- .NET Core
- Visual Studioのアップデート
- One ASP.NET
- ASP.NETをより深く学ぶための参考書籍
- Visual Studioによるデバッグの基本
- クエリビルダー
- レスポンスヘッダー
- 新たなクロスプラットフォーム対応の開発環境「Visual Studio Code」
- もう1つの ASP.NET「ASP.NET MVC」フレームワーク
- XMLの基礎知識
- Azure上のデータベースを参照するには
正誤表
| 該当頁 | 該当箇所 | 修正刷 |
|---|---|---|
| 訂正箇所 | 訂正事項 | 更新日 |
| p.31 | 図2.3 言語の種類 | 2刷 |
| [すべての言語]のまま | [C#]を選択 ※[ASP.NET Web アプリケーション(.NET Framework)]テンプレートの下部にC#と表示されるのを確認してください |
2020/06/17 |
| p.365 | 冒頭のコマンド 2行目 | 2刷 |
| > aspnet_regsql -S "(LocalDB)\MSSQLLocalDB" -E -ssadd -sstype p | > aspnet_regsql -S "(LocalDB)\MSSQLLocalDB" -E -d "C:\Data\SelfAspNet\SelfAspNet\App_Data\SelfAsp.mdf" -ed -et -t Album | 2020/06/17 |
FAQ
予めApp_Dataフォルダーの配下にdocフォルダーを作成してからお試しください。
更新日: 2020.05.09
お問い合わせ
書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。
お問い合わせの前にFAQ・正誤表をご確認ください。すでに掲載済みの内容については個別回答が難しい場合があります。