マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

MVC5との差異について。

詳細

基盤部分の差異

フォルダ構成

パッケージ・マネージャ

設定・構成

ライブラリ

MVC5 との差異

Model

非互換は少ない模様。

View

Razor

  • 非互換は少ない模様。
  • また、Razor Pagesをプロジェクト内で併用可能。

Tagヘルパー

従来のHtmlヘルパーは、

@Html.Label("FirstName", "First Name:", new {@class="caption"}

などと記述していたが、

Tagヘルパーでは、

<label class="caption" asp-for="FirstName"></label>

と標準の HTML のように記述できる。

EnvironmentTagHelper?

ScriptTagHelper?

全体的に、Globbing patternsによる指定が可能。

  • asp-append-version
    srcにファイルのバージョンを追加するかどうか(キャッシュ対策)
  • asp-src-include
    複数のファイルを読み込む。
  • asp-src-exclude
    • asp-src-includeファイルから除外する。
    • asp-src-include属性と組み合わせて使用する。
  • fallback
    • asp-fallback-src
      src属性に指定したファイルの読み込みに失敗した場合に読み込むfallbackファイル。
  • asp-fallback-test
    • asp-fallback-srcと組み合わせて使用する。
    • ファイルの読み込みに失敗したかどうかの判定を行うためのスクリプト。
  • asp-fallback-src-include
    • asp-fallback-srcと組み合わせて使用する。
    • ファイルの読み込みに失敗した場合、fallbackファイル一式を指定する。
  • asp-fallback-src-exclude
    • asp-fallback-src-includeと組み合わせて使用する。
    • 除外するfallbackファイルを指定する。

HTML系のTagHelper?

  • LabelTagHelper?
  • LinkTagHelper?
  • AnchorTagHelper?
  • ImageTagHelper?
  • FormTagHelper?
    • InputTagHelper?(input)
    • TextAreaTagHelper?(textarea)
    • SelectTagHelper?(select)> OptionTagHelper?(option)
  • FormActionTagHelper?(form)
  • RenderAtEndOfFormTagHelper?

その他

  • Cache
    • CacheTagHelper?
    • CacheTagHelperBase?
    • DistributedCacheTagHelper?
  • Validation
    • ValidationMessageTagHelper?
    • ValidationSummaryTagHelper?
  • Extensions
    • TagHelperOutputExtensions?

参考

その他

WebViewPage が無い

  • RTMでは実装されていなかったようだが(?)、最近はあるらしい。
  • 継承する元がMicrosoft.AspNetCore?.Mvc.Razor名前空間のRazorPage?に変わっている。

Display Mode が無い

レスポンシブ以外で PC とスマートフォンに対応できない。
#独自にヘッダを参照して、Viewを振り分けるなどの対応が必要になる。

Ajax.BeginForm? が無い

  • Ajax.BeginForm?がサポートされない。
    また、Controller.JavaScriptメソッド、JavaScriptResult?クラスが無くなっている。
  • 必要に応じて、独自のJavaScriptResult?を実装することが推奨されている。

Controller

共通

Filters

Routing

Routingの構成方法が異なっている。

  • 以下のようなパラメタが使用可能。
    • [controller]
    • [action]
  • Routeに統一(RoutePrefix?が無くなった)

MVC

以下から、いくらか、影響を受ける。

要求処理パイプラインの変更

認証周りの API の変更

WebAPI

CORS

CORSの構成方法が異なっている。

  • Microsoft.AspNetCore?.Cors

Shim

Shimを利用して互換性を上げ移行性を上げることができる。

  • Microsoft.AspNetCore?.Mvc.WebApiCompatShim?

SPA

JavaScriptServices?

その他

MVCのDI

MVCの各要素への依存関係の挿入方法が用意されている。

参考

ViewComponent?

  • 部分 Viewと似ている。応答全体ではなく、チャンクをレンダリングする。
  • しかし、以下の点で部分 Viewより強力と言える。
    • ControllerViewの間の関心の分離とテストの容易性の利点。
    • パラメタとビジネス ロジックを含めることができる。

用途

部分 Viewには複雑な、サイドバーのコンテンツなどの、
再利用可能なレンダリング ロジックを部品化する。

  • ログイン パネル
  • ショッピング カート
  • 動的なナビゲーション メニュー
  • 新着情報の記事
  • タグ クラウド
    タグ付きのコンテンのアクセス頻度を一括集計してテキスト表示する

利用方法

  • 通常、Controllerではなく、View(Layout)から呼び出される。
  • ViewComponent?の呼び出し方法には、以下の2つの方法がある。
    • @Component.InvokeAsync?メソッドで呼び出す。
    • Tagヘルパーで呼び出す。

構成

ViewComponent?は、以下の2つのパーツで構成される。

  • Modelのようなクラス (通常、ViewComponent? から派生)
  • 返される結果 (通常はView)

参考

参考

MSDN magazine

ASP.NET Core

Cutting Edge

内部リンク

ASP.NET MVC

ASP.NET MVCの用語

ASP.NET MVCの利用方法


Tags: :.NET開発, :.NET Core, :ASP.NET, :ASP.NET MVC


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-02-10 (月) 15:35:00 (1527d)