Ubuntu 16.04 LTS で ASP.NET Core MVC のプロジェクトを作成してみる

Ubuntu 16.04 LTS で ASP.NET Core MVC のプロジェクトを作成してみる
 
VsCode で編集できるのかな?と試そうと思ったけど、まずはプロジェクトの作成から試してみることにする
 
VsCodeで実行する場合
launch.json を作成する
Project.csproj を開いて code runner で起動する
※出力パネルが文字化けする場合 export LANG=ja_JP.UTF-8 後再起動
※.profile に自分は追加


※ $ dotnet publish -c Debug -r ubuntu.16.04-x64 Project.csproj
  $ dotnet ./bin/Debug/netcoreapp2.1/ubuntu.16.04-x64/publish/samp0001.dll
 (相当を実行 かな?)
Ctrl+Alt+M で終了する
参考にしたのは以下のサイト
dotnet new
Ubuntu 16.04 LTS で ASP.NET Core を試してみる

・プロジェクトを新規作成する


$ dotnet new mvc -au None
テンプレート "ASP.NET Core Web App (Model-View-Controller)" が正常に作成されました。
このテンプレートには Microsoft 以外からのテクノロジが含まれています。詳細については https://aka.ms/aspnetcore-template-3pn-210 をご覧くださ い。

作成後のアクションを処理しています...
'dotnet restore' を /home/tabizou/dev/code/core/samp0001/samp0001.csproj で実行しています...
/home/tabizou/dev/code/core/samp0001/samp0001.csproj のパッケージを復元しています...
Microsoft.NETCore.DotNetAppHost 2.1.0 をインストールしています。
Microsoft.NETCore.DotNetHostResolver 2.1.0 をインストールしています。
Microsoft.NETCore.DotNetHostPolicy 2.1.0 をインストールしています。
Microsoft.NETCore.Targets 2.1.0 をインストールしています。
Microsoft.NETCore.App 2.1.0 をインストールしています。
MSBuild ファイル /home/tabizou/dev/code/core/samp0001/obj/samp0001.csproj.nuget.g.props を生成しています。
MSBuild ファイル /home/tabizou/dev/code/core/samp0001/obj/samp0001.csproj.nuget.g.targets を生成しています。
/home/tabizou/dev/code/core/samp0001/samp0001.csproj の復元が 12.47 sec で完了しました。

正常に復元されました。

・作成された csproj の内容を比較する(2.0 と 2.1 の違いはあるんだけど)

$ cat samp0001.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

</Project>

・vs2017 Community で作成したプロジェクトのファイル

<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.8" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
</ItemGroup>

<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
</ItemGroup>

</Project>

・実行イメージを作成してみる

$ dotnet publish -c Release -r ubuntu.16.04-x64 samp0001.csproj
.NET Core 向け Microsoft (R) Build Engine バージョン 15.7.179.6572
Copyright (C) Microsoft Corporation.All rights reserved.

/home/tabizou/dev/code/core/samp0001/samp0001.csproj のパッケージを復元しています...
runtime.linux-x64.Microsoft.NETCore.DotNetAppHost 2.1.1 をインストールしています。
runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver 2.1.1 をインストールしています。
runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy 2.1.1 をインストールしています。
runtime.linux-x64.Microsoft.NETCore.App 2.1.1 をインストールしています。
MSBuild ファイル /home/tabizou/dev/code/core/samp0001/obj/samp0001.csproj.nuget.g.props を生成しています。
MSBuild ファイル /home/tabizou/dev/code/core/samp0001/obj/samp0001.csproj.nuget.g.targets を生成しています。
/home/tabizou/dev/code/core/samp0001/samp0001.csproj の復元が 44.21 sec で完了しました。
samp0001 -> /home/tabizou/dev/code/core/samp0001/bin/Release/netcoreapp2.1/ubuntu.16.04-x64/samp0001.dll
samp0001 -> /home/tabizou/dev/code/core/samp0001/bin/Release/netcoreapp2.1/ubuntu.16.04-x64/samp0001.Views.dll
samp0001 -> /home/tabizou/dev/code/core/samp0001/bin/Release/netcoreapp2.1/ubuntu.16.04-x64/publish/

・起動してみる

$ dotnet ./bin/Release/netcoreapp2.1/ubuntu.16.04-x64/publish/samp0001.dll
Hosting environment: Production
Content root path: /home/tabizou/dev/code/core/samp0001/bin/Release/netcoreapp2.1/ubuntu.16.04-x64/publish
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.

https://localhost:5001/ で正しく表示されることを確認