More Related Content Similar to The Twelve-Factor (A|M)pp with C# (20) More from Yuta Matsumura (15) The Twelve-Factor (A|M)pp with C#4. #aadojo
C# の歴史
バージョン リリース年 主な機能
1.0 2002年 クラス、構造体、インターフェイス
2.0 2005年 ジェネリック、匿名メソッド、null 許容値型
3.0 2007年 自動実装プロパティ、匿名型、LINQ
4.0 2010年 dynamic キーワード
5.0 2012年 非同期 (async, await)
6.0 2015年 自動プロパティ初期化子、文字列補間
7.0 2017年 Tuple、パターンマッチング、ローカル関数
8.0 2019年 null 許容参照型、静的ローカル関数
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-version-history
16. #aadojo
Deployment まで繋がる Git サーバー選び
• Git をホスティングできるサービスはたくさんある
• 実行環境への展開まで行うことができるサービスを選定し
たほうが良い
• CI/CD (Continuous Integration, Continuous Delivery)
17. #aadojo
Deployment まで繋がる Git サーバー選び
サービス CI/CD
GitHub GitHub Actions
GitLab GitLab CI/CD
Bitbucket Bitbucket Pipeline
Azure DevOps Repos Azure DevOps Pipelines
AWS CodeCommit AWS CodePipeline
26. #aadojo$ dotnet new webapp -n UserSecretSample
$ dotnet user-secrets init
$ dotnet user-secrets set "App:Title" "AADOJO"
// アプリケーション内で設定値を取得する
Console.WriteLine(Configuration["App:Title"]);
$ dotnet run
AADOJO
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
...
30. #aadojo
.NET Core CLI
コマンド 機能
dotnet new プロジェクトの新規作成
dotnet restore パッケージの復元
dotnet build プロジェクトのビルド
dotnet run プロジェクトの実行
dotnet test 単体テストの実行
dotnet pack プロジェクトのパッケージ化
dotnet publish
プロジェクトの展開
(=実行形式ファイルの生成)
32. #aadojo$ dotnet publish --self-contained --configuration Release --runtime win-x64
.NET Core 向け Microsoft (R) Build Engine バージョン 16.4.0+e901037fe
Copyright (C) Microsoft Corporation.All rights reserved.
D:¥tmp¥MyApp¥MyApp.csproj の復元が 414.92 ms で完了しました。
MyApp -> D:¥tmp¥MyApp¥bin¥Release¥netcoreapp3.1¥win-x64¥MyApp.dll
MyApp -> D:¥tmp¥MyApp¥bin¥Release¥netcoreapp3.1¥win-x64¥MyApp.Views.dll
MyApp -> D:¥tmp¥MyApp¥bin¥Release¥netcoreapp3.1¥win-x64¥publish¥
36. #aadojo
ASP.NET Core のホスト方式
• Web ホストと 汎用ホストの2種類
• Web ホスト:Web アプリケーションとして実行する構成
• 汎用ホスト:Web 以外のシナリオで同様の初期構成を行う
• ホスト起動時に以下のリソースをカプセル化する
• ミドルウェア、ログプロバイダー、DI、設定値、
HTTP サーバー (Web ホストのみ)
45. #aadojo$ dotnet run
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
Application started now...
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: D:¥tmp¥12factor¥src¥HostApplicationLifetimeSample
Application stopping now...
info: Microsoft.Hosting.Lifetime[0]
Application is shutting down...
Application stopped now...
52. #aadojo
ASP.NET Core の豊富なログプロバイダー
種別 ログプロバイダー
ビルトイン Microsoft.Extensions.Logging.Console
ビルトイン Microsoft.Extensions.Logging.Debug
ビルトイン Microsoft.Extensions.Logging.EventSource
ビルトイン Microsoft.Extensions.Logging.TraceSource
ビルトイン Microsoft.Extensions.Logging.AzureAppServices
ビルトイン Microsoft.Extensions.Logging.ApplicationInsights
サードパーティ Log4Net
サードパーティ NLog
サードパーティ SeriLog