「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次  †
概要  †
※ 対象は、ASP.NET Core 2.0。
- 下記と異なり、新規作成したテンプレートに、
UOC(User Own Coding)部分を移行する形になるためコンバージョン手順は書かない。
 
- ざっくり、B / D層以外の、以下のような P 層の変更が多い。
- 脱 System.Web による API 変更
 
- 新しい DI による構成方法の変更
 
- 要求処理パイプラインの変更
 
- 認証周りの API の変更
 
- , etc.
 
 
選定基準  †
概要  †
以下に合致するケースに適合する。
- Linuxがサポートする、nginx + Dockerなどのクロスプラット フォームで、
ハイパフォーマンスを実現するマイクロサービスなどの新しいアーキテクチャに対応させたい場合。 
参考  †
事前準備  †
フォルダ構成  †
Properties  †
launchSettings.json  †
- 起動設定、構成管理ツールには登録されない。
 
- Visual Studio の [デバッグ] タブには、ファイル編集の GUI がある。
 
- 複数の起動設定をCommand Lineで切り替えることができる。
 
wwwroot  †
静的コンテンツを配置する。
依存関係  †
参照設定を行う。
その他のフォルダ  †
Controllers  †
MVC6の *.cs or *.vb ファイルが格納される。
Models  †
MVC6の *.cs or *.vb ファイルが格納される。
Views  †
MVC6の *.cshtml or *.vbhtml ファイルが格納される。
Pages  †
Razor Pagesの *.cshtml or *.vbhtml ファイルが格納される。
その他のファイル  †
appsettings.json  †
- app.configのappSettings SectionをJSON化したもの。
 
- 環境毎に設定を切り替えることができる。
- appsettings.Production.json
ASPNETCORE_ENVIRONMENT ≠ Development 
- appSettings.Development.json
ASPNETCORE_ENVIRONMENT = Development 
 
Program  †
Webアプリケーションのエントリポイント
Startup  †
bundleconfig.json  †
・・・
パッケージ・マネージャ  †
現在は、ASP.NET Coreの既定のパッケージ・マネージャになっている。
その他  †
bower  †
昔は、ASP.NET Coreの既定のパッケージ・マネージャだったもよう。
npm  †
- npm はもともと Node.js 上で動作するライブラリを管理するためのもだが、
Node.js スタイルのライブラリでもブラウザで実行可能な形式に変換して使用
できるようになったため、npm さえあればbowerが無くても困らない状況が生まれた。 
参考  †
構成  †
初期化  †
Web サーバ  †
スタートアップ  †
複数環境の構成  †
ASPNETCORE_ENVIRONMENT環境変数を使用して複数の構成を初期化できる。
- 環境名
- Development
 
- Staging
 
- Production
 
 
ライブラリ  †
未分類のAPI  †
- Request.IsAuthenticated? が無い
User.Identity.IsAuthenticated? に置き換える。 
- HttpNotFound?, HttpStatusCodeResult? が無い
NotFound? / StatusCode? メソッドを利用する。 
- OutputCache? が無い
ResponseCache? を使うか、データキャッシュに実装しなおす。 
ミドルウェア  †
サービス、フレームワークなどと呼ばれることもある。
ミドルウェアの種類  †
初期値  †
IServiceCollection?に含まれる初期値
- シングルトン
- System.Diagnostics.DiagnosticSource?
 
- System.Diagnostics.DiagnosticListener?
 
- Microsoft.AspNetCore?.Hosting.IHostingEnvironment?
 
- Microsoft.AspNetCore?.Hosting.Server.IServer
 
- Microsoft.AspNetCore?.Hosting.IStartup
 
- Microsoft.AspNetCore?.Hosting.IApplicationLifetime?
 
- Microsoft.Extensions.Logging.ILoggerFactory?
 
- Microsoft.Extensions.Logging.ILogger<T>
 
- Microsoft.Extensions.Options.IOptions<T>
 
- Microsoft.Extensions.ObjectPool?.ObjectPoolProvider?
 
 
- 一時的
- Microsoft.AspNetCore?.Hosting.IStartupFilter?
 
- Microsoft.AspNetCore?.Http.IHttpContextFactory?
 
- Microsoft.AspNetCore?.Hosting.Builder.IApplicationBuilderFactory?
 
- Microsoft.Extensions.Options.IConfigureOptions?<T>
 
 
MVC6  †
WebAPI  †
SPA  †
下記が参考になる。
非互換がある模様。
- FindAsync? メソッドが無い。
 
- SqlQuery? メソッドが無い。
 
旧情報(1.0時代)  †
機能面  †
乗換検討  †
立ち位置によってかなり変わってくる。
旧資産に縛られている場合  †
旧資産に縛られている場合はなかなか移行できないと思う。
と、個人的には(現段階では、まだ、)結構微妙と考えている。
- 下記の参考情報を見ると、現状、マイグレーションも困難である模様。
とは言え、時代に追随するためにはどこかのタイミングで飛び移る必要はある気はする。
しかし、なんとなく、まだ機が熟していないのかな?という感じの情報が散在している。
 
旧資産から解放された場合  †
旧資産から解放された場合は、思い切ったシフトができると思う。
Windowはエンタープライズでの利用が主であるが、
選定基準に合致する場合、思い切ったシフトができると思う。
所感  †
今後、メインストリーム、新技術サポートが、MVC6(MVC6)に移っていく可能性がある。
参考  †
ASP.NET Coreのプロジェクト・テンプレートに、
があったが(ASP.NET Core MVC のプロジェクト・テンプレート)、
時点から サポートプラットフォームは .NET Core のみに絞られた。
これを使用した場合、OS間の移行(Linux <---> Windows)が可能になる模様。
しばやん雑記  †
clock-up-blog  †
参考  †
microsoft.com  †
(Microsoft Docs)
.NET API Browser  †
https://docs.microsoft.com/en-us/dotnet/api/index
その他  †
ASP.NET Core ClockUpTips?  †
Tags: :.NET開発, :.NET Core, :ASP.NET, :ASP.NET MVC, :移行