| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
5,242 バイト追加 、 2022年10月23日 (日) 02:59
| [[.NET Core]] | [[C Sharp]] | [[ASP.NET]] | [[Razor]] | [[Docker]] | [[.NET Core Console]]
{{amazon|B078CXYZ6L}}
==[[ASP.NET Core]]==
----
*https://docs.microsoft.com/ja-jp/aspnet/core/getting-started/?view=aspnetcore-5.0&tabs=macos
*https://dotnet.microsoft.com/download/dotnet/5.0
*https://docs.microsoft.com/ja-jp/dotnet/core/install/macos
====SDK====----*[https://dotnet.microsoft.com/download/dotnet/ ダウンロード]#Visual Studio Code をダウンロードしてインストールします。#.NET SDK をダウンロードしてインストールします。#Visual Studio Code マーケットプレースから C# 拡張機能をインストールします。[[File:install_dotnetcore_sdk_for_mac.png|300px]] =====アンインストール1=====*例<pre>sudo rm -rf /usr/local/share/dotnet/sdk/6.0.200</pre> ===[[Ubuntu]]===----*[https://www.typea.info/blog/index.php/2022/04/16/ubuntu_nginx_asp_net_core/ Ubuntu+Nginx+ASP.NET Core]=====[https://docs.microsoft.com/ja-jp/dotnet/core/install/remove-runtime-sdk-versions?pivots=os-macos 削除]する場合=====macOS には、2 つの異なるランタイムをインストールできます。*ASP.NET Core ランタイムSDK<pre>$ cd /usr/local/share$ lsdotnet$ sudo rm -rf dotnet**ASP.NET Core アプリを実行します。 .NET ランタイムが含まれます。</pre>
*.NET ランタイム
**このランタイムは最も単純なランタイムであり、他のランタイムは含まれていません。 <pre>sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version<blockquote/pre====プロジェクト作成====----*[[.NET アプリとの互換性を最善にするには、"ASPCore]]*[https://docs.microsoft.NET Core ランタイム" をインストールすることを強くお勧めします。com/ja-jp/dotnet/core/tools/dotnet-new?tabs=netcore21 プロジェクトテンプレート]<pre>$ dotnet new webapp -o aspnetcoreapp</pre>*開発証明書を信頼<pre>$ dotnet dev-certs https --trust</pre>*アプリの実行<pre>$ cd aspnetcoreapp$ dotnet watch run</blockquotepre>*https://localhost:5001/ にアクセス[[file:aspdotnet_run_on_mac.png|400px]]
===サブフレームワーク===
====[[ASP.NET]] Web API====
----
*[[ASP.NET]] Web API のランタイム環境は、[[ASP.NET]] MVC以外のアプリケーションから利用できるように、[[ASP.NET]] MVCランタイム環境から完全に切り離されている。
*以下の点がMVCよりも優れている
====dotnet new====
*[[.NET Core]]
*[[Visual Studio Code]]
*https://docs.microsoft.com/ja-jp/dotnet/core/tools/dotnet-new?tabs=netcore21
$ dotnet new mvc
 
==MVC==
===コントローラー===
}
====IAction[[Rhttps://docs.microsoft.com/ja-jp/aspnet/core/web-api/action-return-types?view=aspnetcore-5.0 コントローラーの戻り値]]esult====----*特定の型*IActionResult*ActionResult<T> =====IActionResult=====----
{|class="wikitable"
!結果
====実行====
----
http://localhost:58697/Hello/Index
 
[[File:0245_dnet_core_controller.jpg]]
 
===ルーティング===
*プロジェクト直下のStartup.cs(Configureメソッド)で定義
&lt;error statusCode="500" redirect="InternalError.htm"/&gt;
&lt;/customErrors&gt;
==Web API==
*https://docs.microsoft.com/ja-jp/aspnet/core/tutorials/first-web-api?view=aspnetcore-5.0&tabs=visual-studio
 
==[[Docker]] [[LInux]]イメージを [[Mac]] で実行==
*https://docs.microsoft.com/ja-jp/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-5.0
===ローカルで実行===
<pre>
$ git clone https://github.com/dotnet/dotnet-docker
$ cd dotnet-docker/samples/aspnetapp/aspnetapp
$ dotnet run
</pre>
[[File:dotnetasp_docker.png|400px]]
===Dockerで実行===
*[[Docker]] Desktopをインストール
*[[Visual Studio Code]] に[[Docker]]拡張機能をインストール
[[File:mac_vscode_docker.png|400px]]
 
<pre>
$ cd dotnet-docker/samples/aspnetapp
</pre>
*aspnetapp という名前をつけ、Dockerfile を探し(末尾にピリオド)実行
*完了したらイメージを確認
<pre>
$ docker build -t aspnetapp .
:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aspnetapp latest fedab8c51899 4 minutes ago 210MB
</pre>
*実行
<pre>
docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp
</pre>
*実行 http://localhost:5000/
[[File:aspdotnet_run_docker_mac.png|400px]]
 
==環境の切り替え==
 
* [https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/configuration/?view=aspnetcore-6.0 ASP.NET Core の構成]
* [https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/environments?view=aspnetcore-6.0 ASP.NET Core で複数の環境を使用]
* [https://docs.microsoft.com/ja-jp/aspnet/core/migration/50-to-60-samples?view=aspnetcore-6.0 ASP.NET Core 6.0 サンプル]
 
 
環境変数 DOTNET_ENVIRONMENT、ASPNETCORE_ENVIRONMENT(優先)
 
# Development : [https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/error-handling?view=aspnetcore-6.0#developer-exception-page 開発者例外ページが有効]
 
# Staging
# Production : DOTNET_ENVIRONMENT と ASPNETCORE_ENVIRONMENT が設定されていない場合既定値
 
 
* ASPNETCORE_ENVIRONMENT を使用してアプリを起動するときに現在のセッションに ASPNETCORE_ENVIRONMENT を設定するには、コマンド プロンプトまたは PowerShell で次のコマンドを使用する
<pre>
$Env:ASPNETCORE_ENVIRONMENT = "Staging"
dotnet run --no-launch-profile
</pre>
 
*ASP.NET Core 6.0
<pre>
var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
ApplicationName = typeof(Program).Assembly.FullName,
ContentRootPath = Directory.GetCurrentDirectory(),
EnvironmentName = Environments.Staging,
WebRootPath = "customwwwroot"
});
 
Console.WriteLine($"Application Name: {builder.Environment.ApplicationName}");
Console.WriteLine($"Environment Name: {builder.Environment.EnvironmentName}");
Console.WriteLine($"ContentRoot Path: {builder.Environment.ContentRootPath}");
Console.WriteLine($"WebRootPath: {builder.Environment.WebRootPath}");
 
var app = builder.Build();
</pre>
 
==Tips==
===error NU1101: パッケージ Microsoft.AspNetCore.SpaProxy が見つかりません===
*nuget のソースを再構築する
<pre>
C:\workspaces\aspdotnetangular\aspdotnetangular.csproj : error NU1101: パッケージ Microsoft.AspNetCore.SpaProxy が見つかりません。ソース Microsoft Visual Studio Offline Packages には、この ID のパッケージが存在しません。 [C:\workspaces\aspdotnetangular\aspdotnetangular.sln]
</pre>
 
<pre>
> dotnet nuget list source


1. Microsoft Visual Studio Offline Packages [有効]

C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
</pre>
<pre>
> dotnet new nugetconfig --force
</pre>
 
<pre>
> dotnet nuget list source
登録されているソース:
1. nuget [有効]
https://api.nuget.org/v3/index.json
</pre>
 
===サーバー証明書の検証をスキップ===
- https://qiita.com/TsuyoshiUshio@github/items/f238a2a2c1483c287e4b
<pre>
System.Net.Http.HttpRequestException: The SSL connection could not be established
</pre>
 
<pre>
var httpClientHandler = new HttpClientHandler();
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPlicyErrors) => true;
var httpClient = new HttpClient(httpClientHandler);
 
</pre>

案内メニュー