-
Notifications
You must be signed in to change notification settings - Fork 0
MS_ASPNETMVC
- 戻る(ASP.NET)
- ASP.NET MVC
- ASP.NET Web Forms
- ASP.NET Core MVC
ASP.NET MVC は、Microsoft が開発・提供している、
Model View Controller (MVC) パターンをベースとした
ASP.NET アプリケーションを開発するための
- Web アプリケーションフレームワーク。
- MVC アーキテクチャの Web UI テクノロジ。
補足(最新化): 本ページが扱う「ASP.NET MVC」は
.NET Framework 上の MVC 5 までを指す。
MVC 6 は開発途中で ASP.NET Core MVC として
作り直された(ASP.NET Core MVC を参照)。新規開発は ASP.NET Core MVC を使う。
ただしSystem.Web.MvcとMicrosoft.AspNetCore.Mvcは別物で、
名前空間も型も異なるため、ソースの互換性は限定的である。
以下のように言われている。
.NET で Model-View-Controller モデルでの開発を行うためのフレームワークで、
Java などの MVC アーキテクチャに慣れた開発者にとってはなじみやすいフレームワークである。
豊富なサーバー コントロールにより、HTML レンダリングが行われるため、
画面設計・画面構築において高い生産性を確保することができた。
コレに対して、ASP.NET MVC は、
-
サーバー コントロールがなく(代替に Html ヘルパーが存在する)、
HTML も開発者が記述しなければならない分、生産性は劣るが、
HTML/CSS/JavaScript に対応した、よりきめ細やかな画面デザインが実現できる。 -
JavaScript フレームワークとの親和性が高い。
Ajax の普及により jQuery などの JavaScript フレームワークを利用することが
増えてきているが、JavaScript フレームワークを併用する場合には
ASP.NET MVC の方が開発が容易となる場合もある。 -
その他、ASP.NET Web Forms では困難であった
単体テストの自動化が容易になるなどの特徴がある。
移行メモ: 元ページは「JavaScript フレームワーク都の親和性」と
なっていたので「との親和性」に正した。補足(単体テストが容易になる理由): Web Forms のコードビハインドは
Pageを継承し、HttpContextに強く依存するため、
テストのためにランタイムを立ち上げる必要があった。MVC の Controller はただのクラスで、
- アクション メソッドは
ActionResultを返す純粋な関数に近い- 依存はコンストラクタで注入できる
ため、
newしてメソッドを呼ぶだけでテストできる。
これが「テスト自動化が容易」の実体である
(テスティング・フレームワークを参照)。
ASP.NET Web Forms vs ASP.NET MVCを参照。
以下のように言われている。
-
Struts 等の MVC フレームワークに慣れた Java 技術者の取り込み。
-
HTML/CSS/JavaScript による RIA 開発
- HTML/CSS デザインを重視(流用)するインターネット系システム
- JavaScript を多用した RIA アプリケーション
- jQuery UI を使用した RIA アプリケーション
- jQuery Mobile を使用したモバイル・デバイス向け RIA アプリケーション
-
テスティング・フレームワークを使用した、
画面からの単体テストの自動化がフィットする案件
補足(この記述の時代性): jQuery UI / jQuery Mobile はいずれも
現在は開発が終了している(jQuery Mobile は 2021 年に非推奨)。
「RIA」という語自体も、Flash / Silverlight 時代の用語であり、
現在は SPA(Single-page application)が
その位置を占めている。現在の判断軸に置き換えると、次のようになる。
要件 選択 サーバー レンダリングで十分・SEO が要る ASP.NET Core MVC / Razor Pages 画面が高度にインタラクティブ SPA(React / Vue)+ Web API C# で完結させたい Blazor
ASP.NET Web Forms vs ASP.NET MVCを参照。
-
ASP.NET MVC Framework - Wikipedia
http://ja.wikipedia.org/wiki/ASP.NET_MVC_Framework -
ASP.NET MVC 開発を始める前に理解しておきたいこと - Qiita
http://qiita.com/kazuhisam3/items/f056819172d2b6d36a8c
Insider.NET ASP.NET MVC入門 - @IT
http://www.atmarkit.co.jp/ait/subtop/features/dotnet/aspnetmvc_index.html
-
第1回 ASP.NET MVC フレームワーク 基本のキ
- ASP.NET MVC とは?/ASP.NET MVC を利用するための準備
- Hello, World アプリケーションを作成する(1)(2)
- ユーザー・パラメータを受け取る/アクション・メソッドでポスト・データの取得
- 入力フォームに検証機能を追加する
-
第2回 スキャフォールディング機能で軽々 DB 連携アプリケーション
- Entity Data モデルを作成/コントローラ・クラスを作成
- Index / Details / Create / Edit アクション・メソッド&ビューを定義
- ビューの部品化
-
第3回 ActionResult オブジェクトでアクション操作も自由自在
-
ViewResult/RedirectToRouteResult -
ContentResult/JsonResult/PartialViewResult -
JavaScriptResult/FileResult
-
-
第4回 フィルタ属性による認証/キャッシュ/セキュリティ対策の実装
- ページ・キャッシング機能を有効化する:
OutputCache属性 - アプリケーションに認証機能を追加したい:
Authorize属性 - カスタム・エラー・ページを有効化する:
HandleError属性 - 妥当性を検証:
ValidateInput属性/CSRF 対策:ValidateAntiForgeryToken属性
- ページ・キャッシング機能を有効化する:
移行メモ: 元ページの目次は
「artialViewResult」「プリケーションに認証機能を」のように
先頭文字が落ちていたため補った。補足:
ValidateAntiForgeryTokenはビュー側の@Html.AntiForgeryToken()と
セットで機能する。片方だけでは効かない点に注意
(ASP.NET Core では[ValidateAntiForgeryToken]/
[AutoValidateAntiforgeryToken]に相当。フォーム タグ ヘルパーが
自動でトークンを埋め込むため、既定で有効になっている)。
連載:ASP.NET MVC入門【バージョン3対応】 - @IT
http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/index/
- 第0回 Web アプリケーション・フレームワークの新たな選択肢
- 第1回 Controller - View 開発のキモを押さえる
- 第2回 Entity Framework コード・ファーストでモデル開発
- 第3回 モデル・バインドとアノテーション検証の実装
- 第4回 検証属性の自作とクラス・レベルのモデル検証
- 第5回 新しいビュー・エンジン「Razor」の基本を理解しよう
- 第6回 テンプレート機能でビュー開発を効率化
- 第7回 レイアウト/部分ビューでアプリ共通のデザインを定義
- 最終回 テスト自動化でアプリケーションの品質向上
- モック・ライブラリ Moq の利用方法
- データベース・アクセスを伴うテスト
特集:ASP.NET 4.5新機能概説(3):ASP.NET MVCの新機能 - @IT
http://www.atmarkit.co.jp/ait/articles/1304/23/news056.html
書籍転載:ASP.NET MVC 5 実践プログラミング - Build Insider
https://www.buildinsider.net/web/bookaspmvc5
-
[導入編]Chapter1 イントロダクション
- 1-1 ASP.NET の全体像 https://www.buildinsider.net/web/bookaspmvc5/010100
- 1-2 ASP.NET MVC とは? https://www.buildinsider.net/web/bookaspmvc5/010200
- Web フォームの問題点 / ASP.NET MVC の特徴 / ASP.NET MVC の主な機能
-
[基本編]Chapter4 ビュー開発
- 4-1 Razor 構文 https://www.buildinsider.net/web/bookaspmvc5/040100\ コードナゲット(インライン式)/予約文字「@」のエスケープ/コードブロック/制御構文/サーバーコメント
- 4-2 フォーム関連のビューヘルパー https://www.buildinsider.net/web/bookaspmvc5/040201\
BeginForm/BeginRouteForm/XxxxxFor/DropDownListFor/ListBoxFor/
EnumDropDownList/SelectList/TextBox/Label - 4-3 リンク/エンコード関連のビューヘルパー https://www.buildinsider.net/web/bookaspmvc5/040301\
ActionLink/RouteLink/Url.Content/Url.Action/Url.RouteUrl/Html.Raw - 4-4 テンプレート関連のビューヘルパー https://www.buildinsider.net/web/bookaspmvc5/040401\
テンプレートの標準の挙動/カスタマイズ/決定方法/
DisplayForModel・EditorForModel
-
[基本編]Chapter5 モデル開発
- 5-3 LINQ to Entities https://www.buildinsider.net/web/bookaspmvc5/050301\
where/orderby/select/Distinct/Skip・Take/First/group/join
- 5-3 LINQ to Entities https://www.buildinsider.net/web/bookaspmvc5/050301\
-
[応用編]Chapter8 クライアントサイド開発
- 8-2-5 Bootstrap https://www.buildinsider.net/web/bookaspmvc5/080205
補足(
Html.Rawの注意):Html.Rawは HTML エンコードを無効にするため、
ユーザー入力を渡すと XSS になる。
Razor は既定で@出力を自動エンコードしており、それが安全側の設計である。
「エンコードされて困る」場面では、まず
そもそも HTML を入れる必要があるかを疑うこと。
-
ASP.NET MVC 5 開発メモ(VB.NET ベース)
http://aspmvc.tokumori-domain.com- MVC 導入編 / MVC 基本編(ビュー)/ MVC 基本編(モデル)/ トラブルシュート
-
MVC 6 → ASP.NET Core
-
ASP.NET MVC のチュートリアル / コンテンツ マップ(MVC 2 〜 4)
https://learn.microsoft.com/previous-versions/aspnet/dd381412(v=vs.108) -
ASP.NET MVC フレームワーク 正式版 入門:CodeZine
http://codezine.jp/article/corner/295
Tags: 移行, .NET開発, ASP.NET, ASP.NET MVC
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。