Quantcast
Channel: ひでぼ~blog
Browsing latest articles
Browse All 40 View Live

Image may be NSFW.
Clik here to view.

Docker環境でC#プログラム実行時にローカルのAWS認証情報を渡す

AWSSDKのAPIを使ってAWSのサービスを使う際、ユーザーのホームディレクトリにある.aws/credentialsを使って認証されますが、ローカルのDockerで実行時にはこれが無いためAPIの呼び出しに失敗します。 docker-compose.ymlで認証情報を共有できるようにします。実行環境Visual Studio 2022 Version 17.2.0.NET 6ASP.NET...

View Article


Image may be NSFW.
Clik here to view.

MinecraftConnectionを試す

C#でマイクラがアツイという噂を聞いたので試してみます。準備サーバーマインクラフトのサーバーをあらかじめ用意しておきます。 Dockerで動かすのが一番ラクそうだったのでこちらのDockerイメージを使ってサーバーを動かしました。hub.docker.comdocker...

View Article


Image may be NSFW.
Clik here to view.

C#11のrequiredメンバーを試す

.NET7のRC版がリリースされてC#11を試せるようになったみたいなので新しく使えるようになったrequiredメンバーを触ってみます。準備.NET 7をインストールしておきます。この記事を書いてる時点では7.0.100-rc.1というバージョンでした。dotnet.microsoft.comVS2022でコンソールアプリを作成し、ターゲットフレームワークを.NET 7にします。...

View Article

Image may be NSFW.
Clik here to view.

税金の支払いを催促する詐欺サイトのソースコードを読んでみる

国税庁になりすまして税金の支払いをさせようとするSMSが届いたのでURLを開いてサイトのソースコードを読んでみました。www.ipa.go.jpとりあえずサイトにアクセスしてみるPCからGoogle Chromeのシークレットモードでサイトにアクセスしてみます。 PCでアクセスした場合は404 NotFoundとだけ表示されました。なので、Dev Toolsで疑似的にiPhone...

View Article

xUnit.netのTheoryDataを試す

xUnit.netのTheoryDataを使ってテストコードを書いてみます。実行環境Visual Studio 2022 17.2.0.NET 6xUnit 2.4.1このような名前と年齢を結合した文字列を返すメソッドのテストコードを書いてみます。publicstring GetFullNameWithAge(string lastName, string firstName, int age)...

View Article


Image may be NSFW.
Clik here to view.

ASP.NET Core 7のIParsableを試す

ASP.NET Core 7から使えるようになったIParsableを使ってモデルバインドをしてみます。やることコントローラのアクションで、"2022/12/31,2023/01/01"のような文字列をDateRangeという日付の区間を表すクラスにバインドして受け取れるようにしてみます。// string => DateRangeにバインドする [HttpGet("DateRange")]...

View Article

Image may be NSFW.
Clik here to view.

CSSの三角関数を試す

CSSでサイン、コサイン、タンジェントが使えるようになると聞いたので試してみました。...

View Article

Image may be NSFW.
Clik here to view.

Visual Studio 2022のIntegrated Http Clientを試す

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

View Article


Image may be NSFW.
Clik here to view.

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

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

View Article


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

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

View Article

Image may be NSFW.
Clik here to view.

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

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

View Article

EFCoreでChangeTrackerの内容を確認する

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

View Article

Image may be NSFW.
Clik here to view.

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

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

View Article


Image may be NSFW.
Clik here to view.

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

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

View Article

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

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

View Article


Image may be NSFW.
Clik here to view.

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

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

View Article

FakeTimeProviderを試す

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

View Article


Image may be NSFW.
Clik here to view.

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

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

View Article

Image may be NSFW.
Clik here to view.

検証属性付きのrecordからswagger.jsonを生成するときの悩み

ASP.NET Coreでリクエストパラメータにrecordを使った場合に出力されるswagger.jsonにRequired等の属性が反映されない問題があったのでまとめました。 問題になっているのはだいたい次のIssueと同じ内容です。github.com最近はエンドポイントのリクエストパラメータにrecordを使うことが多く、次のようなパラメータを作ってASP.NET...

View Article

Image may be NSFW.
Clik here to view.

Dockerを使ったパルワールド専用サーバの構築方法

パルワールドの専用サーバを建ててみたかったのでDockerコンテナを使ってやってみました。実行環境Docker Desktop for Windows専用サーバの準備docker composeで簡単に専用サーバのコンテナを作ってくれるRepositoryがあったのでありがたく使わせてもらいます。github.comgit clone後にプロジェクトルートで実行します。docker compose...

View Article

Image may be NSFW.
Clik here to view.

WebApplicationFactoryを使ってASP .NET Core WebAPIでE2Eテストを試す

実行環境.NET 8Visual Studio 17.8.3xUnit 2.4.2準備ASP .NET Core WebAPIのプロジェクトとユニットテストのプロジェクトを作成し、ユニットテストのプロジェクトからWebAPIのプロジェクトを参照するように設定しておきます。...

View Article


Image may be NSFW.
Clik here to view.

BlazorのStream Renderingを使ってYoutubeから大量のコメントを取得・表示する

BlazorのStream Renderingを使ってYoutubeの動画から取得した大量のコメントを表示してみようと思います。実行環境Visual Studio 2022 17.9.6.NET...

View Article


Image may be NSFW.
Clik here to view.

GitHubのPull Request Templateを作成する

PRを作るときテンプレートがあると便利なので試してみました。テンプレートの作成テンプレート(pull_request_template.md)を作成してリポジトリの以下のいずれかの場所に置きます。リポジトリのルートディレクトリdocs.githubなんとなくGitHub関連のファイルは.githubにまとめて置いておきたいので.githubにテンプレートを作りました。## 変更したこと ##...

View Article

ConsoleAppFramework v5を試す

ConsoleAppFramework v5がめちゃくちゃ良いらしいという噂を聞いたので試してみました。github.com実行環境.NET 8Visual Studio 2022 17.10.3ConsoleAppFramework 5.2.1シンプル構成で実行してみる一番シンプルな構成で実行してみます。using ConsoleAppFramework; ConsoleApp.Run(args,...

View Article

Image may be NSFW.
Clik here to view.

EFCoreのグローバルクエリフィルターを試す

永続化層から論理削除されたデータの取得などに便利なグローバルクエリフィルターを試していきます。実行環境Visual Studio 2022 17.10.5.NET8データを用意する次のようなテーブルから、公開日(PublishedDateTime)を過ぎているデータのみ取得するようにしてみます。DbContextとEntityはこんな感じです。publicclassAppDbContext :...

View Article


Image may be NSFW.
Clik here to view.

ReSharperを日本語化する

ReSharper 2024.2からUIの日本語化ができるようになったのでやっていきます。実行環境Visual Studio 2022 17.11.2ReSharper...

View Article

DIコンテナを自前で実装してみる

ASP.NET Coreなどで今では当たり前のように使われるDIの仕組みですが、実際のところどうやって実装されているのかよく分かっていなかったので自前で実装して理解を深めようと思います。目指すもの次のようにDIコンテナへの型の登録とインスタンスの解決をできるところを目指します。var container =new DiContainer(); // コンテナに適当なサービスを登録する...

View Article

Guid.CreateVersion7()を試す

.NET9から新しくBCLに追加されたGuid.CreateVersion7()を試していきます。実行環境.NET Fiddle.NET9 RC2Version7?Guid.CreateVersion7()はUUID Version 7を実装したGuidです。従来のGuid.NewGuid()ではUUID Version 4のUUIDが作られます。UUID Version...

View Article

Image may be NSFW.
Clik here to view.

ファイルスコープ名前空間を有効にしたい

C#10から使えるようになったファイルスコープ名前空間ですが、 こんな感じのコードが、namespace MyNamespace { classMyClass { } } こんな感じでnamespace MyNamespace; classMyClass { } namespace のあとにくる{}を省略してインデントが減るので個人的にかなり気に入っています。...

View Article



Image may be NSFW.
Clik here to view.

GitHub Actionsで日本の祝日一覧を定期的に取得する

国が公開している祝日の一覧のcsvがあります。www8.cao.go.jpこのcsvを定期的に確認して、自分のリポジトリで管理しているcsvと差分があればプルリクエストを作成するActionsを作ってみます。権限の設定Actionsの権限を設定します。Settings→Actions→GeneralからWorkflow permissions セクションで、 "Read and write...

View Article
Browsing latest articles
Browse All 40 View Live