EFCoreのオプティミスティック同時実行制御を有効にするために、rowversionを追加する

前提条件 EFCoreのオプティミスティック同時実行制御を有効にするために、テーブルにrowversionが必要になる。 DB Firstでの業の場合、スキャフォールドでのリバースエンジニアリングが必要になる。 今回やりたいこと Not NullなRevision カラムをAlter Tabl…

SQLServerのContainerを起動を待機するgithub Actionsを書く

CIを回す際に永続化レイヤーが欲しくなる問題 業務アプリケーションのServiceやエンドポイントを開発していると、Testの実行時に実際の永続化レイヤーへの接続が欲しくなる。 github.com name: .NET CI on: pull_request: jobs: build: runs-on: ubuntu-late…

外向きの静的 IP アドレスを設定しない状態で、.NET8でHttpRequestを送るための改善を行いたい

前提条件 ASP.NET Core 8 環境 Google CloudのCloud Run等で外向きの静的 IP アドレスを設定しない状態(IPが固定できている場合には問題は起こらない。) 発生する現象 System.Net.NetworkInformation.NetworkInformationException (13): Permission denied…

RouteHandlerAnalyzer が InvalidOperationException をスローする に対する対処を行う

事前条件 .NET8 projectである 現象 Analyzerの警告でタイトルのエラーが出力される。 対処方法 <PropertyGroup> <NoWarn>$(NoWarn);AD0001</NoWarn> </PropertyGroup> を、設定する。 関連Issue github.com

github の Container RegistryにimageのPushを行う

github の Container RegistryにimageのPushを行い、Pullを行う 事前条件 環境変数:CR_PAT にpersonal access tokenを設定して、docker loginが済であること イメージをpushする(kashilogdbをsampleに使う。) docker tag kashilogdb ghcr.io/creatiovitae/ka…

WindowsでgithubのContainer Registryにログインする

事前条件 Windows のpower shellでの場合を記述している。 prompt等の場合、環境変数の設定は、set キーワードを利用するため、注意すること。 personal access token(classic)を作成する 開発者設定から作成を行う。 power shellで操作を行う 環境変数を設…

githubの開発者設定を開く

githubの開発者設定を開く業をよく忘れるのでメモっていく 事前条件 github.comにログイン状態であること github.com SettingからDeveloper Settingsを開く 〇settingsは以下 github.com 〇Developer Settingsは以下 github.com 開発者設定 is 何 github ア…

VisualStudio2022 上のGit Toolでrebaseしていきたい

Using Rebase in VisualStudio お昼のお仕事でrebaseしておいてねって話をしたときに、mergeをする人が多い印象を受けた。 恐らく、別に悪意を持ってmergeをしているわけではない気がするのでVisualStudioの操作に課題がある気がしてきたのでまとめていく。 …

サブドメイン&サブディレクトリでの運用を考える

前提条件 asp.net core&Containerでのアプリケーションホストを行うケースである。 cloud runでの利用を考える お昼のお仕事ではGCPを現在利用しているので、hostする環境はGCP、LBはGLBという構成である。 cloud run&asp.net coreの組み合わせでサブディ…

Settings/OptionValuesを環境変数 / Secretへ登録する判断ポイントを考える

Settings/OptionValuesを設定ファイルに含めるかどうか、環境変数で直接挿すか、Secret経由で環境変数を挿すか問題 Settings/OptionValuesを設定ファイルに含めるかどうか 設定ファイルに含めるかどうかは、最悪漏れた時に個人情報漏洩等も含めたセキュリテ…

IReadOnlyDictionary<TKey, TValue>. GetValueOrDefault(...)の中身を見てみる

IReadOnlyDictionary<TKey, TValue>. GetValueOrDefaultと、.TryGetValue、どちらが良いのかわからなかったのでコードを見てみる github.com 拡張メソッドなので、最初にArgumentNullException.ThrowIfNullでのnull検査が入っているものの、基本的には.TryGetValueのwrapの</tkey,>…

C#11で追加されるfile Keywordを多用してしまいそうな件

github.com メソッドチェインしたいけど、internalにしたくない案件ってあるよね C#の拡張メソッドって、コード読んだときに、自然に読ませたい意図で使いたくなる時が当然あります。 が、拡張メソッドはprivateは不許可なので、ですよねえ、というお気持ち…

vs2022の診断をインラインで表示する が便利だっていう話

vs2022の解像度足りない問題 テストエクスプローラーは出しておきたい コンテナウインドウも出しておきたい ターミナルも。。。 エラー一覧も。。。 出力も。。。 ということでエディター領域の下側にエラー一覧とか置きがちなんですが、エディター領域の下…

デスクトップを導入した

パワーが足りなかったのでデスクトップを急場しのぎで導入した 実際に導入したのは5月なので2か月以上前になります。 なぜ導入したのか dockerやIDEをヘビーに使う場面が増えてきたため、ramが不足がちになってきた。 thinkpad x1 yoga gen6の1185G7だとシン…

dotnet format が動くようになった話

4.12のSDKのアップデートで修繕されました うれしい☺

dotnet format が動かない話に動きがあった話

しばらくの間、dotnet formatが動いてない github.com 上記Issueを引いたものの、SDKのバージョンをフォールバックする等のワークアラウンドを取る業に時間を割く余裕もなかったので放置気味だった。 github.com 6.0.202 SDKにて解消するというお話なので、…

WIP:RookieがASP.NET Coreの開発をスタートする際に読んでほしいもの

WIP: tutorials C # docs.microsoft.com

dependabotの依存アップデートで除外Projectの設定方法がわからない話

自動生成するようなMock Projectをslnに含めたいが、依存アップデートには含めたくない問題 dependabotの依存アップデートをしたところで、自動生成ツール側が対応してくれないと結局またロールバックしてしまうので、ignoreしたいものの、dependabotのdocを…

VisualStudio2022のテストエクスプローラーがうまく駆動しなかった場合の修繕

普段VisualStudio2022でテスト実行をしている勢が、テストエクスプローラーがうまく動かない問題に遭遇した話 尚、お昼の仕事をしているときに出てきた現象なので残念ながら文字のみでお送りする。 前提条件 xUnit ASP.NET Core Mvc 6 VisualStudio2022 Pro …

命名:IsExistsを考える

IsExists多すぎ問題 昼の仕事でIsExists...というメソッド名を目にする機会があった。 気持ちはわかるものの、Existは動詞なので、be動詞は不要だよねという話をしつつ、折角なので記事を書いてみようと思う。 be動詞じゃなくてもboolを使ってもいい 説明す…

VisualStudio2022 17.1でC#もコード定義ウインドウが使えるようになった話

C++では以前から使えたらしいコード定義ウインドウがVS2022 17.1 で、C#でも使えるようになりました。 これによって、今までは[ 定義に移動 ]や [ 定義をここに表示 ] を選択する手間があったのが、カーソルを当てるだけで、コード定義ウインドウ内にコード…

.NET Framework => .NET Core vNext を考える

前提条件 .NET Coreへのマイグレーションは.NET CoreがGAになった当初から課題としてある。 今年はMicrosoftもDeveloper Dayが開催されていて、そこでマイグレーションの話題のSessionがあった。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 from 日…

SQL Server Management Studio でInsert文を自動生成する(たぶん何億番煎じかくらいだと思う)

テストコード用のテストデータを手組しているという話題 永続化層込のTestを行っている場合、container上でテストコードを動かす際に、セットアップでテストデータを投入する必要がある 「パワーのあるチームは、適切にマスクを行った検証用Databaseのサンプ…

エンドポイントのリソース設計と404について考える

ステータスコード論争があったのでいい機会なので纏めてみる 個人的には、管理するエンドポイントによってWayが異なることは勘弁してほしいという気持ち。 前提条件 URLはリソースである。 404について考える case1: hoges/ => hogeのコレクションリソースを…

ボーイスカウトルール

野山をきれいにする 久しぶりにプログラマが知るべき97のことを読む 個人的に好きなのはボーイスカウトルールの項 コードをチェックアウトした時よりもチェックイン後の方が美しくなるようにする。 これは、自分のためのみならず、他人のために必要なこと。 …

VisualStudio2022でようやく改行設定が試験的に追加されて嬉しい話

今まで「不要な改行✂」みたいなくそコメントを人間がわざわざコードレビューで書いていたんですが、ようやく.editorconfigで制御できるようになりそうで嬉しい。 が、試験段階だからなのか、まだコードクリーンアップには対応してないみたい。 dotnet format…

VisualStudio2022でProject毎にタブを色分けする

地味に嬉しいProject毎のタブ色分け機能 ここにチェックを入れる。 VisualStudio CodeのPeacockの時も感じましたが、視覚的にわかりやすいのは良いですね✨

PRのつくり方を考える

ここ数年くらいPRのつくり方について、尊敬する先輩に教えて頂いたりと色々試行錯誤があったので折角なので纏めていく。 TL;DR big commitは避ける。1story /taskに対してPRは複数用意していい。とにかくbig commitは避ける。 review結果は反映するものでは…

EF Core 6 のリバースエンジニアリングがNull許容参照型に対応したのが嬉しい話

EF Core6 は.NET6実装 EF Core5は.NET Standard 2.1での実装だったので、.NET Core 3.1以降であれば利用が可能でした。 対してEF Core 6は.NET 6での実装なので.NET 6での利用に限定されます。 これは、.NET Core 3.1が2022年11月、.NET5が2022年2月?でEOLに…

NU1605を対処する

NU1605がBuild時に上手くいかないケースがある 自分が遭遇した現象 ローカルでのBuild(VisualStudio2022)ではBuildはPass。 ローカルでのBuild(dotnet build)ではBuildはPass。 Cloud BuildでのCI時のBuildはPass Cloud Runへのdeploy時のBuildはError …