2024-01-01から1年間の記事一覧
はじめに GitHub Actionsで特定のフォルダ以下のファイルが変更されたときのみワークフローを実行するにはpathsを使うと思います。 # srcフォルダ以下のファイルが変更されたときのみ実行する on: pull_request: paths: 'src/**.cs' ただjob単位で条件をつけ…
はじめに 今回はC#でプロジェクトを構築している前提でPRを出した際にコードカバレッジの増減を表示してくれるCIの作り方を紹介したいと思います。 コードカバレッジの増減表示具体的にはcoverlet.collectorとoctcovというOSSを利用して実現していきます。gi…
はじめに 今回はYetAnotherHttpHandlerを用いてUnityでHTTP/2を扱う方法を紹介したいと思います。 はじめに 背景 概要 環境 インストール方法 使い方 さいごに 背景 まず.NETが提供するHttpClientですが、.NET Core3.0以降であればHTTP/2に対応しています。 …
はじめに record (class)やrecord struct、readonly record structはとても便利な機能なのですが、たまにEqualの処理どうなってたっけ・プロパティのアクセシビリティなんだっけと私はよくなります。 // record : record classと同じ意味 public record Reco…
はじめに 今回は指定したジョブが成功したかを監視するステータスチェックジョブを作成してBranch Protectionに指定する方法を紹介したいと思います。複数のジョブがあったときに、一つでも失敗してしまうとマージができなくなるようにしていきます。 はじめ…
はじめに UI ToolkitのTwoPaneSplitViewというVisualElementがあるのですが、それがめちゃくちゃ便利です。2つの要素をリサイズできるようにしつつ分割して表示してくれるものになります。 docs.unity3d.com TwoPaneSplitViewよくコードからTwoPaneSplitView…
はじめに UnityはMonoからCore CLRへの移行を進めていますが、Core CLRがくると.asmrefが使えなくなるみたいです。そのあたりを軽く調べてみたので、そのまとめを書き残しておきたいと思います。また現時点ではまだ開発中なので、今後変わるかも知れないので…
はじめに 今回はterraformを利用してCloudRunを構築しminimal API(ASP.NET Core + .NET 8)で構築したWebサーバーをデプロイする方法を紹介したいと思います。具体的には以下の操作をしていきます。 terraformによるCloud Run構築 ASP.NET Coreによるプロジェ…
はじめに 今回はSystem.Text.Jsonの[JsonRequired]について書きたいと思います。www.nuget.orglearn.microsoft.com はじめに 前提 [JsonRequired]について 前提 System.Text.Jsonでデシリアライズする際に、[JsonRequired]が付与されていないプロパティに対…
はじめに RiderにはBreakpointにてEvaluate and log(評価して記録)というブレークポイントに到達したときに値の評価しログ出力できる機能があります。 Evaluate and log JetBrains Rider では、任意の行、メソッド、例外ブレークポイントをトレースポイント…
はじめに 今まで.gitignoreで.ideaフォルダ以下のものはGitにあげないようにしていました。 # gitignore /.idea/ただ最近知ったのですが、どうやら一部はGitにあげたほうが良いらしいです。今回はそのことについて書きたいと思います。 はじめに .ideaとは g…
はじめに 今回はローカルにあるnupkgから.NET Toolとしてインストールをして利用する方法を紹介したいと思います。 はじめに 概要 nupkgの作成方法 nuget.configの作成方法 dotnet tool installを行う 参考 概要 nuget.orgからインストールする際にはあまり…
はじめに 今回はUI Toolkitで画面いっぱいに何かを表示したいときの方法を紹介したいと思います。 画面いっぱいに表示している様子 はじめに UI Builderと実際の見た目が異なる 原因 対処法 参考 UI Builderと実際の見た目が異なる BackgroudColorを赤色に設…
はじめに 先日、SourceGeneratorを利用したパフォーマンスの良いEnumユーティリティを提供するライブラリを公開しました。 github.com.NET標準API や 世界最速のenumライブラリ FastEnum よりもパフォーマンスが良いライブラリ RapidEnum リリースしました!…
はじめに 今回はGITHUB_OUTPUTに書き込む際に>>ではなく| tee -aを用いることでログに書き出せることについて書きたいと思います。めっちゃ小ネタです。 はじめに 概要 説明 概要 タイトルにもある通り、GitHub ActionsでGITHUB_OUTPUTに書き込む際に| tee -…
はじめに 今回はBOM無しのUTF-8でファイルに書き込む方法について紹介したいと思います。 はじめに やり方 やり方 encoderShouldEmitUTF8Identifierをfalseに指定したUTF8Encodingを利用します。 learn.microsoft.com // BOM付きUTF-8で書き出す File.WriteA…
はじめに 今回はSemantic Versioningを簡単に扱えるようになるMS製ライブラリのNuGet.Versioningを紹介したいと思います。 www.nuget.org はじめに 概要 使い方 概要 Semantic Versioningをプログラムで扱うためにはNuGet.Versioningを推奨されています。 Nu…
はじめに 今回はRider2024.2から登場したExtracting common codeについて紹介したいと思います。blog.jetbrains.com はじめに 概要 おまけ やり方 概要 Extracting common codeを用いることで、重複したコードを抜き出してよしなにコードを綺麗にすることが…
はじめに 今回はSourceGeneratorにてAttributeArgumentSyntax.NameColonがnullな場合と値が格納されている場合の違いについて書きたいと思います。learn.microsoft.com はじめに その前に 取得するには 違い 補足 その前に まず前提としてSyntaxTreeは構文解…
はじめに 今回はMessagePack-CSharpでCustom Formatterを作成する方法を紹介したいと思います。github.com はじめに 概要 環境 やり方 Custom Formatterの作成 Resolverの作成 よりパフォーマンスを上げるために MessagePackSerializerOptionsへの設定 実験 …
はじめに 今回は個人的にデバッグをする上で覚えておきたい機能一位であるImmediate Windowを紹介したいと思います。pleiades.io Immediate Windowを利用している様子 はじめに 概要 使い方 1. デバッグ実行する 2. プログラムが一時停止する 3. Immediate W…
はじめに Xを見ていたらこのようなものを見つけました。TIL: you can add C# syntax highlighting to a string literal by adding /* lang=c#-test */ above it: https://t.co/Tr7A8UzUY1 pic.twitter.com/WLcDDz8mhz— Daniel Cazzulino (@kzu) 2024年7月24…
はじめに SourceGeneratorにてRegisterPostInitializationOutputを用いてAttributeを定義するのは、公式も紹介しているようなよくある手法です。 RegisterPostInitializationOutput:... It is particularly useful for adding attribute definitions to the …
はじめに 今回はVYamlを用いてYAML(Unityで利用される特殊な形式を含む)をシリアライズ・デシリアライズする方法を紹介したいと思います。github.com はじめに UnityとYAML VYamlとは インストール方法 Unityの場合 基本的な使い方 命名規則 あらかじめSchem…
はじめに 今回はISymbol.ToDisplay(SymbolDisplayFormat.FullyQualified)を用いてSymbolの完全修飾名を取得する方法を紹介したいと思います。 learn.microsoft.com はじめに やり方 実験 動作しないケース やり方 ISymbol.ToDisplay(SymbolDisplayFormat.Ful…
はじめに 今回はchecked・uncheckedキーワードについて取り上げたいと思います。 unchecked { int x = int.MaxValue; // -2147483648 int y = x + 1; Console.WriteLine(y); long a = -100; // 18446744073709551516 ulong b = (ulong)a; Console.WriteLine(…
はじめに 今回はSourceGeneratorでブレークポイントを用いたデバッグをRiderでする方法を紹介したいと思います。Rider公式で紹介されていて、今まで頑張ってテストコード書いてデバッグしてましたがもっと手軽にできることを知って衝撃を受けました。もっと…
はじめに 今回はUnityでIncremental Source GeneratorのAdditionalTextsProviderを利用する方法を紹介したいと思います。 はじめに その前に AdditionalFilesを利用してファイルを読み込む Unityでの場合 ちょっとした裏技(?) その前に どこかのバージョン…
はじめに 今回はRiderを日本語化しようという記事になります。 日本語化した状態 はじめに やり方 参考 やり方 Riderを開き、メニューバーよりFile -> Settingsを選択。 File -> SettingsタブバーからPluginsを選択し、Japanese Language Packを検索しインス…
はじめに 今回はRiderのショートカットである"どこでも検索(Search Everywhere)"について紹介したいと思います。 pleiades.io Shift2回を押してどこでも検索を利用している様子個人的にRiderで覚えて欲しい機能一位でして、これがないともうコード書けません…