[解決] .NET 5.0 の xUnit 単体テストプロジェクトに app.config を配置しても読み取れない
C# による Windows OS 用のアプリケーション開発における話。 .NET Framework 製の古いプログラムを .NET5.0 に移植を進めたりすることがある。 そのような古いプログラムでは、System.Configuration.ConfigurationManager クラスを使い、その静的プロパティ AppSettings[]...
View ArticleEntity Framework Core + Code Style で、指定名のマイグレーションまでに留めてマイグレーションする
ライブラリ Entity Framework Core (以下、EFCore) を使って、SQL Server などのリレーショナルデータベースに読み書きする、C# プログラミングにおける話。 とりわけ、"Code First" と呼ばれる、C# コード側でデータベースの構造 (テーブルや列) を記述し、その記述に従ってデータベース側を自動で構築・更新 (マイグレーション)...
View ArticleMSBuild スクリプトで、既存の Item 群から、指定の条件を満たす Item だけを、別の Item に取り込む方法
C# プログラミングなどで使われるビルドスクリプト MSBuild のお話。 いわゆる .csproj ファイルの話だ。 もっとも、普通 (?) の .NET プログラマは、そうそう凝った MSBuild スクリプトを書くことはないと想像される。 まぁ、.NET Core 世代の SDK スタイルになって、パッケージ参照とか、多少は直接編集することは割と一般的になったかもしれない。...
View ArticleC# での Web アプリ開発で、要求 URL 中のクエリ文字列をいい感じに読み取る - 特に Blazor WebAssembly (とりわけ .NET...
C# による Web アプリケーション開発における話題。 とりわけタイトルの件を、自分の備忘録的に本ブログにメモする回。 近代の C# (.NET) による Web アプリケーション開発においては、要求 URL 中のクエリ文字列を自前のコードで読み取ることは、まず滅多に発生しない。...
View Article.NET - オプションパターンでアプリケーション構成を型付きで取得するが、一部だけ動的に読み取りたい
オプションパターン C# 等における .NET アプリケーション開発における話題。 .NET アプリケーション開発においては、appsettings.json やコマンドライン引数、はたまた環境変数などから指定される "設定情報" (アプリケーション構成) を取得するカラクリのひとつとして、"オプション パターン" という方法が用意されている。 例えば一般的な構成の ASP.NET Core Web...
View ArticleEntity Framework Core 上で C# の文字列補間を使って安全に SQL 文を実行するが、SQL 文そのものを動的に組み立てたい
C# を使ったプログラミングにおけるデータベースアクセスにおいて、広く使われているデータベースアクセスライブラリ「Entity Framework Core」(以下 EFCore)。 EFCore を使ってのリレーショナルデータベース (例えば Microsoft SQL Server などのような) へのアクセスでは、まず滅多に生の SQL 文を C# ソースコード上に記述することはない。 C#...
View Articleリリースから 6 年も経ってはじめて Visual Studio Code の Ctrl + J キーボードショートカットを知った件
エディタ部分とターミナルウィンドウ間のフォーカス移動が辛い プログラマ界隈では今や著名であろう高機能エディタ "Visual Studio Code"。 自分ではあまりメインでは使っていないのだが、ちょっとした JSON ファイルの編集であるとか、PowerShell スクリプトの作成などでちょくちょくと出番があり、自分の中では常に PC にインストールするソフトウェアの筆頭だ。 その Visual...
View Article[失敗談][C#] あえて async/await しないでドヤ顔してたら本番環境で ObjectDisposedException
C# プログラミングにおける、自分としてはとても恥ずかしい、大失敗ネタ。 とある要件から、以下のようなシグネチャを持つメソッドを実装していた。 ValueTask<Value> ReadValueAsync(Stream stream); そこへ、さらに追加要望が発生し、上記メソッドとほぼ同じ動作とするが、Stream...
View ArticleMicrosoft.TypeScript.MSBuild を含む Blazor プロジェクトを GitHub Actions 上でビルドしたらエラー
TypeScript を含む .NET Core 3.1 な Blazor プロジェクト .NET Core 3.1 の頃から構築・保守してきたとある Blazor アプリ開発における話。 その Blazor アプリでは、若干ながら JavaScript を必要とする場面があり、少量の JavaScript ファイルを含むプロジェクト構成となっていた。 なお、生の JavaScript...
View Article.NET Framework アプリを単一ファイル化するのに ILRepack を使う... が、似たような NuGet パッケージがいっぱいあるぞ問題
.NET Framework でも単一ファイル化 .NET Core 3.x および、その後継である .NET 5 や 6 などの SDK では、ビルド後に出力される .dll ファイル群をまとめてひとつの実行ファイルに変換する、「単一ファイル生成」の機能が備わっている。 しかしながら .NET Framework アプリで同じように「単一ファイル化」したい場合、SDK によるサポートはない。...
View ArticleGitHub Actions のワークフロー内で Microsoft SQL Server データベースを読み書きする単体テストを実行する
本物の SQL Server データベースに読み書きする単体テスト 極めて希なケースだとは思うのだが、とある単体テストプログラム内で、やむなく、実際の MS SQL Sever データベースに対する読み書きを行なうテストを実装した。 自分の開発環境は Windows OS なので、その開発環境に SQL Server LocalDB がインストールされていることを要件として、SQL Server...
View Articlepackage.json で type: "module"を設定していると、TypeScript による Playwright...
"Playwright" とは、Web ブラウザを自動操縦して Web アプリケーションのエンド・ツー・エンドテストを行なうことを目的としたソフトウェア製品のひとつ。 昨今の例に漏れず、"Playwright" にも、いろんなプログラム言語へのバインディングが用意されている。 今回は TypeScript + Node.js 上での、自分にとってはじめての Playwright...
View Article.NET 6 の ASP.NET Core Web API 新規プロジェクトでベースパスを指定したら HTTP 404
ルートではなくその下のパスに Web アプリを配置 .NET の Web アプリケーションフレームワーク ASP.NET Core プログラミングでの話。 イントラネット向けの ASP.NET Core Web アプリの場合、配置先のサーバー 1 台に複数の Web アプリを同居配置しているケースがある。Virtual Host でも実現できるが、異なるベースパスに配置することも、よく見聞きする。...
View Articleスタンドアロンな Blazor WebAssembly アプリを発行、オンプレミスの IIS に配置したら HTTP 500 エラーになった件
スタンドアロン Blazor Wasm アプリを Win11 Pro の IIS に配置 とあるスタンドアロンの Blazor WebAssembly アプリを、手元の Windows 11 Pro 上の IIS に配置する機会があった。 「dotnet publish -c...
View Article"React での ASP.NET Core"テンプレートで生成されるプロジェクトの仕組みを調べてみた
Visual Studio や .NET SDK を使って、フロントエンドは React、バックエンドは ASP.NET Core を用いた Web アプリケーション開発における話。 最近の Visula Studio または .NET SDK のプロジェクトテンプレートから上記構成のプロジェクトを新規作成すると、 React...
View Articleフロント側は Next.js で構築する ASP.NET Core プロジェクト、およびそのローカル開発環境を、セキュア接続 (https) 必須で構築する
フロントエンドは Next.js、バックエンドの API サーバーは ASP.NET Core を用いた Web アプリケーション開発を、Visual Studio や .NET SDK を使って行なう話。 フロントエンドを、(Next.js ではなく) 素の React で作る場合は、前回の投稿でも触れたが、Visula Studio または .NET SDK...
View Article複数の .NET プロジェクトに対し、共通の1箇所で同じバージョン情報を設定する、6 つの方法
こんなシナリオ 例えばこんなフォルダ構成の .NET アプリケーションプロジェクト = AppA と AppB の 2 本があったとして、 📂Projects ├ 📄Projects.sln ├ 📂AppA │ └ 📄AppA.csproj └ 📂AppB └ 📄AppB.csproj これら AppA と AppB...
View ArticleSelenium WebDriver C# バインディングのリモートセッションを通して ".xpi"ブラウザ拡張機能をインストールし、テストする方法
Selenium で Mozilla ブラウザ拡張の E2E テストを書く Web ブラウザをリモート操作する WebDriver の一つである "GeckoDriver" (通称 "FirefoxDriver") は、リモート操作のセッションで ".xpi" Mozillaブラウザ拡張ファイルをインストールする機能を提供している。 この機能は、手元で開発中の Mozilla...
View ArticleAzure App Service に配置した ASP.NET Core アプリで、App Service 上に設定した接続文字列を...
今まで GetConnectionString メソッドで App Service に設定した接続文字列を取得できなかったことなんて無かったんですが... 先日、Qiita 上の下記投稿が目に留まった。 上記投稿内容によると、Azure App Service 上に配置した ASP.NET Core アプリ (Blazor Server) で、App Service 上で設定した接続文字列を...
View ArticleC# で SendGrid を使ってメール送信するプログラムを書いていたが、TLS を効かせたらサーバー証明書の例外
C# で、SMTP で、メールを送信するぞ C# によるプログラミングにおける話。 ここ最近はメールを送信するプログラムを書く機会もめっきり無くなっていたのだが、久しぶりにそのようなプログラムを作成する機会が発生した。 メール送信のインフラストラクチャとしては、その筋では大手 (ですよね?) の SendGrid を選択。 SendGrid を使ってメール送信を行なう場合は、SendGrid...
View Article