「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[ASP.NET MVC]]
--[[ASP.NET Core]]
---[[ASP.NET Coreへの移行]]

* 目次 [#b7dc983c]
#contents

*概要 [#s21b24c2]
[[MVC5>ASP.NET MVC]]との差異について。

*詳細 [#jecafb31]

**[[基盤部分>ASP.NET Coreへの移行]]の差異 [#v371dda5]

***[[フォルダ構成>ASP.NET Coreへの移行#xffddb5a]] [#d7aa0169]

***[[パッケージ・マネージャ>ASP.NET Coreへの移行#w4347dc8]] [#a0d7f438]

***[[構成>ASP.NET Coreへの移行#r671d85d]] [#g7618b69]
-[[初期化>ASP.NET Coreへの移行#h3f1560e]]
-[[DIのサポート>ASP.NET Coreへの移行#l75d198a]]

***[[ライブラリ>ASP.NET Coreへの移行#d22b8a0b]] [#c23a6530]
-[[System.Web>ASP.NET Coreへの移行#d22b8a0b]]
-[[Microsoft.Owin>ASP.NET Coreへの移行#gce2c3f9]]
-[[NuGetライブラリ>ASP.NET Coreへの移行#v0b54c37]]
-[[未分類のAPI>ASP.NET Coreへの移行#ie8a29fa]]

**ミドルウェア [#c26db810]

***[[認証>ASP.NET Coreへの移行#cd9d3413]] [#w89b1b65]

***[[EF Core>ASP.NET Coreへの移行#kfcd63f7]] [#u4cb51e3]

***[[MVC5>ASP.NET MVC]] との差異 [#u5fb846e]
-[[M:Model>#qeabb466]] [#dcf6fa4b]
-[[V:View>#y9c6bcbf]] [#i9c20449]
-[[C:Controller>#rfed4b43]] [#e066a360]
-[[M:Model>#qeabb466]]
-[[V:View>#y9c6bcbf]]
-[[C:Controller>#rfed4b43]]

*Model [#qeabb466]
非互換は少ない模様。

*View [#y9c6bcbf]

**Razor [#w6d9a557]
非互換は少ない模様。
-非互換は少ない模様。
-また、[[Razor Pages>ASP.NET Web Pages]]をプロジェクト内で併用可能。

**Tagヘルパー [#o6d55285]
従来のHtmlヘルパーは、
 @Html.Label("FirstName", "First Name:", new {@class="caption"}
などと記述していたが、~

Tagヘルパーでは、
 <label class="caption" asp-for="FirstName"></label>
と標準の HTML のように記述できる。

***ScriptTagHelper [#k7a9156e]

***EnvironmentTagHelper [#pa10e781]

***参考 [#f60a13a8]
-ASP.NET Core のタグ ヘルパー~
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/views/tag-helpers/intro
--ASP.NET Core の組み込みタグ ヘルパー~
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/views/tag-helpers/built-in/
--ASP.NET Core でタグ ヘルパーを作成する~
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/views/tag-helpers/authoring

-ASP.NET CoreのScriptTagHelperについて調べてみる - Qiita~
https://qiita.com/takasan/items/13fdd17a9254b74046d3
-ASP.NET Core の環境タグ ヘルパー~
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/views/tag-helpers/built-in/environment-tag-helper

**その他 [#y7924d3f]

***[[WebViewPage>ASP.NET MVCの利用方法#nf2840bc]] が無い [#v8a8cba3]
-RTMでは実装されていなかったようだが(?)、最近はあるらしい。
-継承する元がMicrosoft.AspNetCore.Mvc.Razor名前空間のRazorPageに変わっている。

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

-Will ASP.NET Core still support DisplayMode? · Issue #5116 · aspnet/Mvc~
https://github.com/aspnet/Mvc/issues/5116#issuecomment-237907785
>There aren't any plans to bring back Display Modes.~
I just commented on aspnet/Razor#751 so we can keep the discussion going on there. Thanks!

*Controller [#rfed4b43]

**共通 [#a659ae5a]

***[[Filters>.NET Standardへの移行#m32862a5]] [#i6a59208]

**MVC [#v190a577]
以下から、いくらか、影響を受ける。

***[[CookieAuthentication>ASP.NET Forms認証#y634ff92]] [#idd932d9]
-要求処理パイプラインの変更
-認証周りの API の変更

**WebAPI [#s35b1ee8]

***CORS [#s2a4c6cf]
CORSの構成方法が異なっている。

-Microsoft.AspNetCore.Cors

-参考
--ASP.NET のコアの間の原点の要求 (CORS) を有効にします。 | Microsoft Docs~
--ASP.NET Core で CORS を有効にします。 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/aspnet/core/security/cors

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

-Microsoft.AspNetCore.Mvc.WebApiCompatShim

-参考
--ASP.NET Core MVC > 詳細設定 > アプリケーション モデルの使用~
WebApiCompatShim でのアプリケーション モデルの使用法 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/controllers/application-model#application-model-usage-in-webapicompatshim
--ASP.NET Core MVC で HttpResponseMessage をそのまま HTTP レスポンスとして使う - Qiita~
https://qiita.com/TakahikoKawasaki/items/8bc8433332d01728c6e9

*その他 [#r781a3b9]

**ViewComponent [#m9a08e5d]
-[[部分 View>ASP.NET MVCの用語#t0b33738]]と似ている。応答全体ではなく、チャンクをレンダリングする。

-しかし、以下の点で[[部分 View>ASP.NET MVCの用語#t0b33738]]より強力と言える。
--[[Controller>#rfed4b43]]と[[View>#y9c6bcbf]]の間の関心の分離とテストの容易性の利点。
--パラメタとビジネス ロジックを含めることができる。

***用途 [#p4735e14]
[[部分 View>ASP.NET MVCの用語#t0b33738]]には複雑な、サイドバーのコンテンツなどの、~
再利用可能なレンダリング ロジックを部品化する。

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

***利用方法 [#u934263f]
-通常、[[Controller>#rfed4b43]]ではなく、[[View>#y9c6bcbf]](Layout)から呼び出される。
--@Component.InvokeAsyncメソッドで、ViewComponentを呼び出す。
--[[Tagヘルパー>#o6d55285]]で、ViewComponentを呼び出す。

-[[Modelバインディング>ASP.NET MVCの用語#t62a5795]]は使用せず、指定されたデータのみに依存する。

***構成 [#d1e5d67a]
ViewComponentは、以下の2つのパーツで構成される。

-Modelのようなクラス (通常、ViewComponent から派生)
-返される結果 (通常は[[View>#y9c6bcbf]]) 

***参考 [#ud8541bf]
-ビュー コンポーネント | Microsoft Docs~
https://docs.microsoft.com/ja-jp/aspnet/core/mvc/views/view-components

*参考 [#d425994d]
-ASP.NET MVC 6 の概要だけをサクッとまとめておきたい - しばやん雑記~
http://blog.shibayan.jp/entry/20141123/1416746894

**MSDN magazine [#j399dd88]

***ASP.NET Core [#v2370824]
-実際の ASP.NET Core MVC フィルター~
https://msdn.microsoft.com/magazine/mt767699
-ASP.NET Core MVC 向け機能スライス~
https://msdn.microsoft.com/magazine/mt763233
-Razor ページを使った簡単な ASP.NET MVC アプリ~
https://msdn.microsoft.com/ja-jp/magazine/mt842512

***Cutting Edge [#c2139e64]
-ASP.NET MVC Core ビューのガイドライン~
https://msdn.microsoft.com/ja-jp/magazine/mt845625

**内部リンク [#f61731d9]

***[[ASP.NET MVC]] [#m5f86a5f]
***[[ASP.NET MVCの用語]] [#ye27df22]
***[[ASP.NET MVCの利用方法]] [#c6d00b0b]

----
Tags: [[:.NET開発]], [[:.NET Core]], [[:ASP.NET]], [[:ASP.NET MVC]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS