EntityFramework Core の ver.3.0 から、"所有されているエンティティ型"に関したテーブル構造が変わってしまった
EFCore の "所有されているエンティティ型" .NET プログラミングにおけるデータベースアクセスライブラリの定番である、EntityFrame Core (以下、EFCore)。 EFCore を用いたデータベースを読み書きするプログラム開発において用いられる技法のひとつとして、"Code First" と呼ばれる作り方がある。 すなわち、EFCore を基盤とした C#...
View ArticleVisual Studio 2019や dotnet CLI での "発行"処理時に、発行したファイルを Zip ファイルにまとめる方法
背景 Visual Studio や dotnet CLI を使っての、C# による ASP.NET Core アプリ開発における話。 一般的な ASP.NET Core Web アプリケーションは、インターネット上に配置して利用してもらうものだ。 しかし今回の案件はちょっと変わってて、開発した Web...
View ArticleASP.NET Core + Angular の組み合わせの Web アプリで、Angular 側にもアプリ自身のバージョン番号を埋め込む
背景 サーバー側実装に ASP.NET Core、クライアント側実装に Angular (本投稿時点で v8) の組み合わせによる Web アプリ開発の話。 昨今は micro service 化であるとか、サーバー側実装は Server less プラットフォームを使うとかも多いのかもと思う。 しかし今回は上記のとおり、サーバー側実装と Angular 側実装とが、Visual Studio /...
View ArticleTwitter 認証を実装した ASP.NET Core 3.1 Web アプリで、Twitter 認証時にキャンセルをしたら、アプリがクラッシュした件
背景 ASP.NET Core 3.1 による、C# で実装した自作 Web アプリでの話。 昨今の Web アプリ用フレームワークの例に漏れず、ASP.NET Core においても、いわゆる "Twitter アカウントでサインイン" といった外部認証を実装することは容易である。 例えば Twitter での認証の仕組みを組み込みたい場合は、下記公式ドキュメントなどを参考に実装すればよい。...
View ArticleMSBuild の WriteLinesToFile で、改行、あるいはセミコロンを含むテキストを、ファイルに書き出す方法
ビルドスクリプト "MSBuild" C# プログラミングなどで使われるビルドスクリプト MSBuild のお話。 すなわち、C# プログラミングなどにおいて、"プロジェクトファイル" と呼ばれる、例えば拡張子 .csproj の、XML 書式のあのファイルが、実は MSBuild (エムエスビルド) スクリプトファイルである。 最近は .NET Core の進出により、プロジェクトファイル...
View Article(エディタのXML自動整形でレイアウトが崩れてしまわないよう) プロジェクトファイル外に NuGet パッケージリリースノートを書く
プロジェクトファイルをエディタで編集するのは容易 昨今の C# プログラミングにおける話。 とくに Windows OS 上で Visual Studio を使っての開発場面を想定している。 最近では、XML 形式である C# プロジェクトファイル (.csproj) を、Visual Studio のプロジェクトのプロパティ表示 GUI 経由ではなく、テキストエディタで直接 XML...
View ArticleASP.NET Core で静的ファイルを認証で保護する
"Microsoft Docs" サイトに記載のやり方は好きになれず... C# 等による Web アプリ開発フレームワーク "ASP.NET Core" を用いた、サーバー側実装での話。 数週間ほど前から、新しい ASP.NET Core Web アプリ開発の案件が始まった。 この案件では、この Web...
View Article認証が有効な Blazor Wasm アプリで、アクセストークンなしで匿名アクセス可能なエンドポイントに HTTP リクエストを送信する
C# で Single Page Application (SPA) を実装できるフレームワーク "Blazor (ブレイザー)"、その WebAssembly 版を使っての SPA 開発中の話。 プロジェクトテンプレートから認証有効 な Blazor Wasm アプリを作るのは簡単 ある日、ASP.NET Coreサーバーでホストされている、認証対応の Blazor WebAssembly...
View ArticleASP.NET Core Blazor アプリで Razor コンポーネントパッケージを使用時、「HTTP 404...
C# で Single Page Application (SPA) を実装できるフレームワーク "Blazor (ブレイザー)" を使っての SPA 開発中の話。 はじめに ― "Razor Class Library" パッケージについて Blazor アプリ開発においては、Blazor...
View ArticleEntityFramework Core のエンティティを名前変更したら、テーブル削除/新しい名前でテーブル新規作成のマイグレーションコードが生成されてしまった
C# による、リレーショナルデータベースにアクセスするプログラムを実装していての話。 SQL Server などのリレーショナルデータベースにアクセスする C# プログラムを作成する際、採用しているデータベースアクセスライブラリは、もうここ数年は EntityFramework Core (以下 EFCore) ばかりである。 さてそんな、EFCore...
View ArticleEntityFramework Core で、スカラー値を取得する SQL 文を実行して結果を得る
C# による、リレーショナルデータベース (今回は SQL Server が対象) にアクセスする、.NET Core 3.1 アプリケーションを開発していての話。 今回案件も、C# でリレーショナルデータベースを読み書きする際の定番ライブラリ EntityFramework Core (以下 EFCore) を採用。 EFCore のバージョンは 3.x だ。 EF Core のありがたさ...
View Article数 GB のファイルを HTTP で POST できるか? - 2020年 ASP.NET Core 版
実は11年前(!)にも試してみてたテーマ 今回は C# による Web アプリケーション開発、とりわけサーバー側実装の話。 いわゆる ASP.NET Core における話だ。 で、ASP.NET Core による Web サーバー実装で、実際のところ、いったいどれくらいのサイズのファイルをアップロード可能なのか? というのが今回のテーマだ。 実はこのテーマ、なんと 11年前 (!) に...
View Article続・数 GB のファイルを HTTP で POST できるか? - 2020年 ASP.NET Core 版
10GB 超でも POST できた、けど、効率はよくない前回のブログ記事にて、何の工夫もない input type=file な form から、これまた何の工夫もない ASP.NET Core コントローラーへ、10GB を超えるファイルを HTTP POST 送信し、ファイル保存できたことを記した。 その仕掛けとしては、POST...
View Article自己完結 + 単一ファイル生成 を指定して発行した .NET 5 Windows Forms アプリに、ビジュアルスタイルが適用されない
配置先に .NET のインストールが不要の「自己完結」配置モード Windows OS 上で Visual Studio を使っての、Windows Forms アプリの開発における話。 ついに .NET 5 が公式リリースとなったことを踏まえ、手持ちの .NET Framework ベースで作成されている Windows Forms アプリを .NET 5 に移植を開始した。 そして、.NET...
View Article.NET の単体テストを並列実行する - テストフレームワークごとの違い
C# など .NET プログラム開発における、単体テストプロジェクトの実装・実行の話題。 自分が抱えているとある案件の単体テストプロジェクトにおいて、単体テストプロジェクト内の複数のテスト (テストメソッドや、テストパラメータ) を、1つずつ順番に実行するのではなく、並列実行したい状況が発生した。...
View Article.NET 5.0 (あるいは .NET Core) における、DateTime.Now の分解能を測ってみた
事の発端 .NET 5.0 実行環境における、C# を使ったプログラミングでの話。 とある案件で、1桁ミリ秒台ごとに発生するイベントを、その発生日時とともに記録する必要に迫られた。 当方、10年来の C# プログラマの感覚だと、ある基準時点からの経過時間で記録するだけであれば、System.Diagnostics.Stopwatch クラスを使うところだ。 しかしながら今回の要件としては、...
View ArticleSkiaSharp を使って .ico を読み込むんだけどその前に、.ico に含まれるアイコン画像のサイズを把握する話
プロローグ C# によるプログラミングでの話。 今回は、.ico 形式の画像ファイルを、.png 形式の画像ファイルに変換する要件が発生した。 そのような要件では、とりわけ Windows のデスクトップ向けエディション上での実行でよければ、System.Drawing.Icon クラスで実現可能だ。 しかし今回は訳あって、System.Drawing.Icon が使えない縛りが発生。...
View ArticleC# ソースジェネレータで、対象プロジェクトの既定の名前空間を取得する方法
C# でのプログラミングにおける話。 C# の ver.9、収録される .NET SDK のバージョンでいうと .NET SDK 5.0 からになるが、"ソースジェネレータ (Source Generators)" という機能が使えるようになった。 この "ソースジェネレータ" とは何かというと、いうなれば、C# コンパイラに対するある種の "アドイン"...
View ArticleSystem.Text.Json 時代の読み取り専用プロパティを持つオブジェクトのデシリアライズ
C# でのプログラミングの話。 昨今の C# プログラミングでは、オブジェクトの JSON 文字列へのシリアル化/逆シリアル化を行なうには、System.Text.Json アセンブリおよび同名の名前空間の、JsonSerializer クラスを活用することも多いと思われる。 そして他方、昨今の C#...
View ArticleEntity Framework Core で「勇者が左右の手に持つ装備を、装備マスタから選択する」モデルを実装する方法
架空のシナリオ -「勇者の冒険ゲーム」を制作中 リレーショナルデータベースへのアクセスに Entity Framework Core を使った、Code First スタイルによる、C# プログラミングの話。 架空のシナリオとして、「勇者の冒険ゲーム」を制作中だとする。 このゲームのモデリングにおいて、まず、以下のような「装備マスタ」のエンティティ型を用意する。 public class...
View Article