「マイクロソフト系技術情報 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 ファイルが格納される。
その他のファイル  †
Program  †
Webアプリケーションのエントリポイント
Startup  †
appsettings.json  †
- 概要
- app.configのappSettings SectionをJSON化したもの。
 
 
- 環境毎に設定を切り替えることができる。
- appsettings.Production.json
ASPNETCORE_ENVIRONMENT ≠ Development 
- appSettings.Development.json
ASPNETCORE_ENVIRONMENT = Development 
 
bundleconfig.json  †
package.json  †
npmにおけるpackage.config的なファイル。
bower.json、.bowerrc  †
bowerにおける設定ファイル。
パッケージ・マネージャ  †
bower  †
概要  †
- 既定のVisual Studioと上手く統合されているとは言い難いので、
- CLIを直接実行するか、
 
- Extensionを使用して、
 
 
実行する必要がある。
※ バッチ化することを考慮すると、CLIの方が良さそう。
参考  †
npm  †
概要  †
- コチラも、既定のVisual Studioと上手く統合されているとは言い難いので、
- CLIを直接実行するか、
 
- Extensionを使用して、
 
 
実行する必要がある。
※ バッチ化することを考慮すると、CLIの方が良さそう。
参考  †
参考  †
タスク・ランナー  †
Visual Studioでは、GulpとGruntのタスク ランナーがサポートされている。
Gulp  †
Grunt  †
npmも、package.jsonで、タスク・ランナー的に使える。
参考  †
Microsoft Docs  †
.NET 開発基盤部会 Wiki  †
構成  †
初期化  †
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? メソッドが無い。
 
その他  †
エラー処理  †
開発者例外ページが非常に良くなっているようなのでこれを使わない手はない。
用途  †
以下の例外画面を構成できる。
- 開発者例外ページ
 
- カスタム例外処理ページ
 
- ステータス コード ページ
 
利用方法  †
「DIによる構成」で構成する。
参考  †
旧情報(1.0時代)  †
機能面  †
検討  †
立ち位置によってかなり変わってくる。
旧資産に縛られている場合  †
旧資産に縛られている場合はなかなか移行できないと思う。
と、個人的には(現段階では、まだ、)結構微妙と考えている。
- 下記の参考情報を見ると、現状、マイグレーションも困難である模様。
とは言え、時代に追随するためにはどこかのタイミングで飛び移る必要はある気はする。
しかし、なんとなく、まだ機が熟していないのかな?という感じの情報が散在している。
 
旧資産から解放された場合  †
旧資産から解放された場合は、思い切ったシフトができると思う。
Windowはエンタープライズでの利用が主であるが、
選定基準に合致する場合、思い切ったシフトができると思う。
所感  †
今後、メインストリーム、新技術サポートが、MVC6(MVC6)に移っていく可能性がある。
参考  †
移行事例  †
バグ、変更  †
on .NET Core or .NET Framework  †
ASP.NET Coreのプロジェクト・テンプレートに、
があったが(ASP.NET Core MVC のプロジェクト・テンプレート)、
時点から サポートプラットフォームは .NET Core のみに絞られた。
これを使用した場合、OS間の移行(Linux <---> Windows)が可能になる模様。
その他  †
参考  †
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, :移行