書籍詳細(ASP.NET MVC 5実践プログラミング)

ASP.NET MVC 5実践プログラミング 書影

ISBN: 978-4-7980-4179-7

ASP.NET MVC 5実践プログラミング

著者山田祥寛
出版社秀和システム
価格3,500円(税別)
判型B5変判・1色
ページ数568ページ
発売日2014年9月20日
対象レベル中級

ASP.NETのメインストリームフレームワークをマスターしよう

本書ではASP.NET MVC 初学者のために、基本的なフレームワークの構造からスキャフォールディング(自動生成)機能、ルーティング、ビューヘルパー、フィルター、モデルバインド、Ajax、単体テストの手法までを包括的に解説します。基礎はもちろん、さらにASP.NET Identityや国際化対応、Azureなども扱っています。本書掲載サンプルは、サポートサイトからダウンロードできます。
ASP.NET MVC 5実践プログラミング ロゴ

更新履歴

  • FAQ情報:2015年1月14日 更新
  • 正誤訂正:2023年1月16日 更新

目次

  • Chapter1 イントロダクション
  • 1-1 ASP.NETの全体像
  • 1-2 ASP.NET MVCとは?
  • 1-2-1 Webフォームの問題点
  • 1-2-2 ASP.NET MVCの特徴
  • 1-2-3 ASP.NET MVCの主な機能
  • 1-3 ASP.NET MVC利用のための環境設定
  • 1-3-1 前提となる環境
  • 1-3-2 Microsoft Web Platform Installerによるインストール
  • 1-3-3 ASP.NET MVCのソースコード
  • Chapter2 ASP.NET MVCの基本
  • 2-1 プロジェクトの作成
  • 2-2 コントローラーの基本
  • 2-2-1 コントローラークラスを作成する
  • 2-2-2 ルーティングの基礎を理解する
  • 2-2-3 補足:/App_Startフォルダー
  • 2-3 ビューの基本
  • 2-3-1 ビュー変数の設定
  • 2-3-2 ビュースクリプトの作成
  • 2-3-3 レイアウトの適用
  • 2-4 モデルの基本
  • 2-4-1 Entity Frameworkとは?
  • 2-4-2 Entity Frameworkのデータモデル「Entity Data Model」
  • 2-4-3 Entity Frameworkによるデータアクセス
  • 2-4-4 データ取得の基本
  • Chapter3 Scaffolding機能による開発
  • 3-1 Scaffolding機能によるアプリケーション開発
  • 3-2 一覧画面の作成(Indexアクション)
  • 3-2-1 Indexアクションメソッド
  • 3-2-2 Index.cshtmlビュースクリプト
  • 3-3 詳細画面の作成(Detailsアクション)
  • 3-3-1 Detailsアクションメソッド
  • 3-3-2 Details.cshtmlビュースクリプト
  • 3-4 新規登録画面の作成(Createアクション)
  • 3-4-1 入力フォームの作成(Createアクション&Create.cshtml)
  • 3-4-2 入力値の処理(Createアクション)
  • 3-5 編集画面の作成(Editアクション)
  • 3-5-1 Editアクションメソッド
  • 3-5-2 Edit.cshtmlビュースクリプト
  • 3-6 削除画面の作成(Deleteアクション)
  • 3-6-1 Delete/DeleteConfirmedアクションメソッド
  • 3-6-2 Delete.cshtmlビュースクリプト
  • Chapter4 ビュー開発
  • 4-1 Razor構文
  • 4-1-1 コードナゲット(インライン式)
  • 4-1-2 予約文字「@」のエスケープ
  • 4-1-3 コードブロック
  • 4-1-4 制御構文(コードブロック)
  • 4-1-5 サーバーコメント
  • 4-2 フォーム関連のビューヘルパー
  • 4-2-1 フォームを生成する - BeginFormメソッド
  • 4-2-2 ルート定義からフォームを生成する- BeginRouteFormメソッド
  • 4-2-3 モデルに関連付いた<input>、<textarea>要素を生成する- XxxxxForメソッド
  • 4-2-4 選択ボックス/リストボックスを生成する - DropDownListFor/ListBoxForメソッド
  • 4-2-5 列挙型から選択ボックスを生成する - EnumDropDownListメソッド
  • 4-2-6 選択ボックスの選択肢をグループ化する - SelectListクラス
  • 4-2-7 モデルと関連付かないフォーム要素を生成する - TextBox/Labelメソッドなど
  • 4-3 リンク/エンコード関連のビューヘルパー
  • 4-3-1 ハイパーリンクを生成する - ActionLinkメソッド
  • 4-3-2 ルート定義からハイパーリンクを生成する - RouteLinkメソッド
  • 4-3-3 アプリケーションルートからの絶対パスを生成する - Url.Content/Action/RouteUrlメソッド
  • 4-3-4 HTMLエンコードを無効にする - Html.Rawメソッド
  • 4-4 テンプレート関連のビューヘルパー
  • 4-4-1 テンプレートの標準の挙動
  • 4-4-2 テンプレートのカスタマイズ
  • 4-4-3 テンプレートを決定する方法
  • 4-4-4 モデル単位にテンプレートを決定する - DisplayForModel/EditorForModelメソッド
  • 4-5 ビューヘルパーの自作
  • 4-5-1 シンプルなビューヘルパー
  • 4-5-2 MvcView.Helpers名前空間の登録
  • 4-5-3 拡張メソッドによる定義
  • 4-5-4 TagBuilderクラスの活用
  • 4-5-5 応用:TagBuilderクラスによる複合的なタグの生成
  • 4-5-6 Razor構文で作成するビューヘルパー
  • 4-5-7 補足:インラインテンプレートの受け渡し
  • 4-6 アプリケーション共通のデザインを定義する - レイアウト
  • 4-6-1 レイアウトの作成
  • 4-6-2 レイアウトを適用するさまざまな方法
  • 4-6-3 レイアウトに複数のコンテンツ領域を設置する
  • 4-6-4 レイアウトを入れ子に配置する
  • 4-7 ビューの一部を再利用可能にする - 部分ビュー
  • 4-7-1 部分ビューの基本
  • 4-7-2 応答ストリームに直接出力する - RenderPartialメソッド
  • 4-7-3 部分ビューに先立ってアクションを呼び出す - Action/RenderActionメソッド
  • 4-8 ビューエンジン
  • 4-8-1 ASPXエンジンの利用
  • 4-8-2 ビューエンジンの無効化
  • 4-8-3 ビューエンジンの自作
  • 4-9 モバイル対応 - DisplayModes
  • 4-9-1 デスクトップ&モバイル環境の振り分け
  • 4-9-2 デバイス単位のビューの振り分け
  • 4-9-3 補足:モバイル判定のしくみ
  • Chapter5 モデル開発
  • 5-1 データモデルの作成
  • 5-1-1 基本的な規約
  • 5-1-2 規約のカスタマイズ
  • 5-1-3 Fluent APIによる規約のカスタマイズ
  • 5-2 マイグレーション
  • 5-2-1 マイグレーションの基本
  • 5-2-2 補足:Update-Databaseコマンドのさまざまな用法
  • 5-2-3 自動マイグレーション
  • 5-2-4 マイグレーションファイルで利用できる主なメソッド
  • 5-3 LINQ to Entities
  • 5-3-1 LINQとは?
  • 5-3-2 データの検索条件を指定する - where句
  • 5-3-3 データを並べ替える - orderby句
  • 5-3-4 取得列を明示的に指定する - select句
  • 5-3-5 重複のないデータを取得する - Distinctメソッド
  • 5-3-6 特定範囲のデータだけを取得する - Skip/Takeメソッド
  • 5-3-7 先頭のデータを取得する - Firstメソッド
  • 5-3-8 データをグループ化する - group句
  • 5-3-9 エンティティ同士を結合する - join句
  • 5-4 データ取得/変更のためのその他の機能
  • 5-4-1 関連を持ったエンティティの操作
  • 5-4-2 生のSQL命令を直接指定する - SqlQuery/ExecuteSqlCommandメソッド
  • 5-4-3 トランザクション処理を実装する
  • 5-4-4 同時実行制御を実装する - Timestamp属性
  • 5-5 入力値の検証
  • 5-5-1 検証機能の基本
  • 5-5-2 その他の検証属性
  • 5-5-3 自作の検証属性を実装する(サーバーサイド)
  • 5-5-4 自作の検証属性を実装する(クライアントサイド)
  • Chapter6 コントローラー開発
  • 6-1 モデルバインド
  • 6-1-1 バインド項目の制限 - Bind属性
  • 6-1-2 リストへのバインド
  • 6-1-3 ファイルのアップロード
  • 6-1-4 値プロバイダー
  • 6-1-5 モデルバインダーの自作
  • 6-2 ActionResult
  • 6-2-1 標準のActionResult派生クラス
  • 6-2-2 ビュースクリプトでページを生成する- ViewResultクラス
  • 6-2-3 処理をリダイレクトする - RedirectResult/RedirectToRouteResultクラス
  • 6-2-4 空のコンテンツを出力する - HttpStatusCodeResult/HttpNotFoundResult/HttpUnauthorizedResultクラス
  • 6-2-5 アクションをそのまま終了する - EmptyResultクラス
  • 6-2-6 テキストデータを出力する - ContentResultクラス
  • 6-2-7 例:データベースの内容をタブ区切りテキストで出力する
  • 6-2-8 例:データベースから動的にフィードを生成する
  • 6-2-9 指定されたファイルを出力する - FilePathResultクラス
  • 6-2-10 データベースに登録したバイナリデータを取得する - FileContentResult/FileStreamResultクラス
  • 6-2-11 例:アクションメソッドで動的にPDF文書を生成する
  • 6-2-12 ActionResult派生クラスの自作
  • 6-3 状態管理
  • 6-3-1 クッキーを取得/設定する - HttpCookieクラス
  • 6-3-2 セッションを利用する - Sessionオブジェクト
  • 6-3-3 一時データを保管する - TempDataオブジェクト
  • 6-4 フィルター属性
  • 6-4-1 フィルター属性の基本
  • 6-4-2 カスタムエラーページを定義する - HandleError属性
  • 6-4-3 HandleError属性で利用可能なプロパティ
  • 6-4-4 出力キャッシュ機能を有効化する - OutputCache属性
  • 6-4-5 リクエストパラメーターの妥当性を検証する- ValidateInput属性
  • 6-4-6 クロスサイトリクエストフォージェリ対策を行う - ValidateAntiForgeryToken属性
  • 6-4-7 SSL通信を強制する - RequireHttps属性
  • 6-4-8 上位のフィルター指定を上書きする- OverrideXxxxx属性
  • 6-5 フィルター属性の自作
  • 6-5-1 承認フィルターの自作
  • 6-5-2 例外フィルターの自作
  • 6-5-3 アクション/結果フィルターの自作
  • 6-5-4 コンテキストオブジェクト
  • 6-5-5 アクション/結果フィルターの実行順序
  • 6-6 セレクター属性
  • 6-6-1 HTTPメソッドに応じてリクエストを処理する- HttpXxxxx属性
  • 6-6-2 アクションメソッドを無効化する - NonAction属性
  • 6-6-3 アクション名を明示的に宣言する - ActionName属性
  • 6-6-4 セレクター属性の自作
  • Chapter7 ルーティング
  • 7-1 MapRouteメソッド
  • 7-1-1 引数url - URIパターンの定義
  • 7-1-2 引数defaults - 変数のデフォルト値
  • 7-1-3 引数constraints - 制約条件
  • 7-1-4 引数namespaces - コントローラークラスの検索先
  • 7-1-5 制約条件の自作
  • 7-1-6 特定のURIパターンをルートから除外する - IgnoreRouteメソッド
  • 7-2 属性ルーティング
  • 7-2-1 属性ルートの基本
  • 7-2-2 任意のパラメーターとデフォルト値
  • 7-2-3 制約条件を設定する
  • 7-2-4 ルートプレフィックスを定義する - RoutePrefix属性
  • 7-2-5 カスタムの制約条件を付与する
  • 7-3 エリア(区分)
  • 7-3-1 エリアの作成方法
  • 7-3-2 エリア情報の定義
  • 7-3-3 名前空間の登録
  • 7-3-4 エリア間のリンク
  • Chapter8 クライアントサイド開発
  • 8-1 バンドル&ミニフィケーション
  • 8-1-1 バンドル情報の定義
  • 8-1-2 JavaScriptライブラリ/スタイルシートのインポート
  • 8-1-3 コンテンツデリバリーネットワークの利用
  • 8-2 JavaScriptライブラリ/フレームワーク
  • 8-2-1 JavaScriptライブラリのインストール方法
  • 8-2-2 JavaScriptライブラリのIntellisense機能
  • 8-2-3 jQuery
  • 8-2-4 jQueryプラグイン
  • 8-2-5 Bootstrap
  • 8-2-6 TypeScript
  • 8-3 Ajax開発
  • 8-3-1 ページを部分更新する - PartialViewResultクラス
  • 8-3-2 ぐるなびWebサービスを利用する
  • 8-3-3 補足:Ajax呼び出しの際に進捗バーを表示する
  • 8-3-4 Ajax通信でJSONデータを利用する(サーバーサイド編)
  • 8-3-5 Ajax通信でJSONデータを利用する(クライアントサイド編)
  • Chapter9 単体テスト
  • 9-1 単体テストの基本
  • 9-2 モックライブラリMoq
  • 9-2-1 Moqの基本
  • 9-3 さまざまなテスト
  • 9-3-1 フィルター属性のテスト
  • 9-3-2 セレクター属性のテスト
  • 9-3-3 ビューヘルパーのテスト
  • 9-3-4 ルーティングのテスト
  • 9-3-5 IsAjaxRequestメソッドのテスト
  • 9-4 データベースを伴うテスト
  • 9-4-1 リポジトリクラスの準備
  • 9-4-2 単体テストの準備/実行
  • 9-4-3 補足:依存性リゾルバー
  • Chapter10 高度な話題(認証/国際化/クラウド対応)
  • 10-1 ASP.NET Identity
  • 10-1-1 ASP.NET Identityリリースの背景
  • 10-1-2 ASP.NET Identityの基本
  • 10-1-3 ASP.NET Identityの基本設定
  • 10-1-4 新規ユーザーの作成
  • 10-1-5 ログイン処理
  • 10-1-6 電子メールによるアカウント確認
  • 10-1-7 パスワードのリセット
  • 10-1-8 アカウントのロックアウト
  • 10-1-9 プロファイル情報の追加
  • 10-1-10 ロール単位のアクセス制限
  • 10-1-11 ソーシャルアカウントによるサインイン
  • 10-2 国際化対応
  • 10-2-1 国際化対応の基本的な手順
  • 10-2-2 ローカルリソースの定義
  • 10-2-3 リソース取得のためのビューヘルパー
  • 10-2-4 データモデルの国際化対応
  • 10-3 Microsoft Azureへの配置
  • 10-3-1 Microsoft Azureの準備
  • 10-3-2 アプリケーションの配置

正誤表

該当頁 該当箇所 修正刷
訂正箇所 訂正事項 更新日
p.5 下から4行目 4刷
Summy.js Sammy.js 2015/02/12
p.9 本文下から2行目 11刷
Controller(ModelとControllerとの橋渡し) Controller(ModelとViewとの橋渡し) 2019/08/08
p.38 Note ビュー変数を設定するもうひとつの方法 下から4行目 6刷
ViewBagではビュー変数の名前を文字列として表しますので ViewDataではビュー変数の名前を文字列として表しますので 2016/02/18
p.72 リスト3-5 ファイル名 9刷
Controllers/MemberController.cs Controllers/MembersController.cs 2018/05/02
p.78 リスト3-8 Views/Members/Create.cs.html 上から6行目 3刷
control-labelcol-md-2 control-label col-md-2
(labelとcolの間に半角スペースを入れてください)
2014/11/05
p.107 4-2-5項 見出し と 見出し下の本文2行目 -
EnumDropDownListメソッド EnumDropDownListForメソッド 2023/01/16
p.108 リスト4-8の下 本文1行目 -
EnumDropDownListメソッド EnumDropDownListForメソッド 2023/01/16
p.208 本文 下から10行目 6刷
Articleエンティティを取りだし、そのURLプロパティを取り出している Articleエンティティを取りだし、そのTitleプロパティを取り出している 2016/02/24
p.214 リスト5-32 Controllers/LinqController.cs 下から5行目 6刷
default:
articles= articles.OrderBy(a => a.Title);
default:
articles= articles.OrderBy(a => a.Title);
break;
2015/08/20
p.222 リスト5-47 LinqController.cs 上から4行目 9刷
where a.Url == "http://nothing.org/" where a.Url == "http://example.com/nothing/" 2018/07/06
p.231 上から3行目 3刷
コードはエラーとなります。 コードはエラーとなります(CommentオブジェクトのArticleIdがnull許容型の場合) 2014/11/01

FAQ

申し訳ございませんが、VBへの移植については、本書サポート外となります。
以下のようなサイトや他書籍を参照ください。
http://www.lancork.net/2014/12/asp-net-mvc-5-practice-programming-csharp-to-vbnet/ /> (Lancorkさま、情報ありがとうございます)

更新日: 2015.01.14

お問い合わせ

書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。

Powered by メールフォーム 『オレンジフォーム』