ひでぼ~blog

C#ときどきゲーム

2023-01-01から1年間の記事一覧

VS2022のhttpファイルで環境毎のパラメータを用意する

実行環境 VS2022 17.8.3 .NET 8 httpファイルを用意する 適当なhttpファイルを用意します。HostAddressとParameterは後述の別ファイルで定義します。 GET {{HostAddress}}?q={{Parameter}} httpenv.jsonを用意する httpenv.jsonを作成してhttpファイルと同じ…

FakeTimeProviderを試す

C#

.NET 8からDateTimeに依存した処理のテストに役立つTimeProviderとFakeTimeProviderという仕組みが追加されたので試していきます。 実行環境 VS2022 17.8.1 .NET 8 準備 NuGetパッケージをインストールします。これでFakeTimeProviderが使えるようになります…

コードを書くためにサブスクライブしているもの

C#でASP.NET Coreを使ったWeb開発をメインでやっている私がコードを書くためにサブスクライブしているものをあげていきます。 ReSharper 言わずと知れたVisual Studioの拡張機能です。本家よりも強力なIntelliSence、括弧の自動補完などなどいろんな機能に助…

Swashbuckle.AspNetCore.Cliでswagger.jsonを出力する

CI/CDでswagger.jsonを出力したかったのでやってみました。 実行環境 VS2022 17.7.4 .NET 7 Swashbuckle.AspNetCore.Cli 6.5.0 Swashbuckle.AspNetCore.Cliをインストールする プロジェクトのルートで.NET ツールをインストールします。 dotnet new tool-man…

EFCoreのTimestampで楽観的排他制御を行う

EFCoreのTimestampを使って楽観的排他制御をやってみます。 実行環境 VS2022 17.6.5 EFCore 7.0.10 SQL Server 2022 Entityを用意する 次のようなEntityを用意しました。 public record Todo { public int Id { get; set; } public string? Content { get; s…

EFCoreのSaveChangesAsyncをoverrideして共通処理を差し込む

DBなどの永続化層のデータを更新する際に作成日や更新日などの日付を更新したいことがよくあります。そのあたりの処理を共通化してみたいと思います。 実行環境 VS 2022 17.6.5 .NET 7 EF Core 7.0.4 Entityを用意する ITimeStampというインタフェースを持つ…

EFCoreでChangeTrackerの内容を確認する

EFCoreのChangeTrackerについて今まで雰囲気で分かった気になっていたので、理解を深めるためにDbContextのデータをいろいろ操作しながらChangeTrackerの内容を確認してみます。 実行環境 VSCode + C# Dev Kit .NET 7 Microsoft.EntityFrameworkCore.InMemor…

Azure Communication Servicesのメール送信を試してみる

Azureでメールが送れるサービスが使えるようになったとのことで試してみました。 Azureでリソースを作成する Azure Portalから以下3つのリソースを作成します。 Communication Services Email Communication Services ドメイン Communication Servicesの作成…

C#でChatGPTとのお喋りを試してみる

ChatGPTが非常に流行っているので試してみることにしました。 ここではC#のコンソールアプリケーションでChatGPTと会話ができるように実装し、その過程と結果を紹介します。 実行環境 Visual Studio 2022 17.5.3 .NET 7 OpenAIのAPIはこちらのライブラリを使…

EFCore 7.0の一括更新・一括削除を試す

久しぶりにEFCoreを触ってみたら 一括更新・一括削除( ExecuteUpdate / ExecuteDelete ) という良さげな機能が追加されていたので試してみました。 今までは一度SELECTした後にUPDATEなりDELETEしていたのがSELECTしなくても良くなりました。 実行環境 Visua…

Visual Studio 2022のIntegrated Http Clientを試す

Visual Studio 2022のバージョン17.5から、VSCodeの拡張機能REST Clientと同じようなHTTPリクエストを実行できる機能が追加されたそうなので試してみました。 marketplace.visualstudio.com 実行環境 Visual Studio 2022 17.5 WebAPIを準備する MinimalAPIで…

CSSの三角関数を試す

CSSでサイン、コサイン、タンジェントが使えるようになると聞いたので試してみました。 現時点ではまだ一部のブラウザしか対応していないようです。今回はFireFoxを使います。 caniuse.com 次のようなHTMLを書いてみました。ボックスの中にボールが3つ縦に並…