「C#」に関する日記

次>

バリューサーバーとAvalonia UI

バリューサーバー

ソフトウェアメンテナンス | メンテナンス・障害 | Value Domain(バリュードメイン)
2月にPHP8.4がうちのサーバーにもついに搭載されるようです。
既にPHP8.5も正式リリースされているので周回遅れ感はあるのですが、Deprecated属性が使えるようになるのは個人的に熱い!
結構既存の機能をDeprecated扱いにして段階的に削ったりしていましたからね。
私の作業のスケジュールとしては、手元のコードを8.3/8.4両対応にして自動テストを回しつつ、正式搭載後に切り替えて段階的に8.3のコードを置き換えていくことになるかな。

Avalonia UI

NuGet Gallery | Avalonia.ReactiveUI 11.3.8
浮き沈みランチャー2用に使おうとしていて、何もコーディングが進まないままほったらかしている間に、Avalonia.ReactiveUIが非推奨になっていました。
で、今後何を使うべきなのかというと、ReactiveUI.Avalonia
同じじゃないですか!!

とりあえず、NuGetで入れなおして名前空間を入れ替えるだけで現状は済みそうでした。
開発が進む前に気付いてラッキーだったのか、前提が変わるまで進まなかったのがだらしないのか…

Tably Music PlayerとFile.ReadAllLines

Tably Music Player

とりあえず、課題立てときました。

File.ReadAllLines(Today I Learned)

mifumi323/ReadAllLinesTest: .NETのFile.ReadAllLinesの最終行の扱いを確認するプログラム
普段何気なく使っているFile.ReadAllLines、最終行の改行コードの扱いが気になって、ちょっと確認してみました。
結論、最後の改行コードはあってもなくても同じ結果になる、つまり、最後に空行が発生したりはしないようです。

Avalonia UIとカービィのエアライダー

Avalonia UI

Avalonia UIでタイトルバーなしウィンドウ
無事記事公開しました。

カービィのエアライダー


最後のステージ手前でずっとでなおしリセマラ粘ってたらついにオール↑出た!!
これでロードトリップのクリアチェッカー完了!!
そのあとはまあ、すっきりと3周目もラスボスやっつけてクリア。


そしてエアライドもクリアチェッカーいくつか開けました。
ケイビオンの横穴探しも兼ねてフリーランをいろんなマシンで頑張ってみたり。
後はコックカワサキで順位を捨ててカレー投げるのに全力を注いだり…もしたけど、違うチェックばかり空きまくったなあ。

他の写真は以下から。
カービィのエアライダー(2025/12/13)の写真

アンパンマンDBとAvalonia UIとドラゴンクエスト10

アンパンマンDB(記事更新)

来週の放送情報。
きしめんさん再登場早いな。

Avalonia UI

本当は今日記事書いてしまう予定だったんですけど、できないと思っていた最大化最小化禁止が、つい最近の更新で簡単にできるようになったことがわかりました。
ということで、記事書き直し中です。
さすがに明日には書き終わるかな。

ドラゴンクエスト10(全員)

第24回アストルティア★ハッピーくじ『年末大勝負くじ☆2025』 (2025/12/5)|目覚めし冒険者の広場
くじ買った!

ドラゴンクエスト10とAvalonia UIと日記

ドラゴンクエスト10(ァォィョッュ)

  • クエスト「ガンバライオンの戦士たち/限界突破! レベル136」をクリアした!

はい無事クリア!
またしても30分かかってしまいました。

Avalonia UI

mifumi323/AvaloniaHideTitleBarSample
こんなの作ってました。
Qiitaとかにまとめなおしてもいいかもとか言ってたやつ、書くために。
まあ、このリポジトリがシンプルに結論なんですが、Qiitaのほうはちょっと文章書きます。

日記

Avaloniaタグ追加しました。
これまでの日記をまとめるのもそうだし、今後も書いていきたいので。

Visual Studio 2026とAvalonia Accelerateと浮き沈みランチャー2

今日はゲーム記のカービィディスカバリーのページにスターリーワールドの情報でも追記しようかなーなんて思ってたけど…

Visual Studio 2026


Visual Studio 2026 リリース ノート | Microsoft Learn
最新版来てました!
リリースノートにいきなり「という意味でしたか?」とか出てきてたり、AIが進歩しても翻訳は相変わらずのMSDNクォリティですが、ソフト本体は今のところいい感じです。
新機能はあまり使っていませんが、.NET 10とC# 14が普通に使えるようになったというのは大きいです。

Avalonia Accelerate

Avalonia Accelerate
順序的にはこっち先にやったんですが、Avalonia UIの追加ツールです。
無料版をひとまず入れてみました。
メールアドレス関連でちょっと躓くところがありましたが、それ以外はおおむね順調でした。


VS2026でも問題なく動きました!

浮き沈みランチャー2

ソリューション構成調整 by mifumi323 · Pull Request #11 · mifumi323/FLaunch2
さっき画面写真出したけど、.NET10&C#14に移行して、ソリューションもVS2026向けに切り替えました。
あと、書き忘れてたライセンス表記も。

非公開ツール

当然ながら非公開ツールにもいろいろあるわけで、名前も公表しない方針のツールも複数あるわけだけども、今日いじってたのはアンパンマンの録画の整理に役立てる系のツール。
8月に入ってからアンパンマンDB側で何かやっていたのはこれと連携させるためで、今日はツール側で受け取った情報をちゃんとした型にあてはめましょうというところ。
うーん、予定ではこの機能がさっさと完成して効率よくアンパンマンDBを更新できたり番組自体を楽しんだりできたはずなんだけど、結局ほとんど進んでないなァ。

技術的なところでは、null許容性とかも調整してた。

Avalonia UIとドラゴンクエスト10

Avalonia UI(Today I Learned)

どうやらウィンドウも普通に表示できる模様。
ビューモデルから親ウィンドウを直接たどる方法が見つからなかったので、メインウィンドウのインスタンスを静的プロパティに入れる必要があったけど、もっといい方法あるのかな。

ドラゴンクエスト10(しろいコキン)

カノック

  • クエスト「よみがえる王国/生きていた男」をクリアした!

突然、かつ今更、しかも季節外れのクリスマス衣装ですが、偽グランゼドーラのクエスト進めました。

(クエスト内容ネタバレ)

ひとくいドール
ボスのひとくいドール。
ニードルマンみたいなやつですね。
襲われてた人、めちゃくちゃモブ兵士顔で「誰?」って感じだったけど、たぶん塔に潜入してた時に何かされてた兵士かな。
ダイム老の孫という設定のようで、絶望に沈んでいた偽グランゼドーラにちょっとだけ希望が戻りました。

他の写真は以下から。
写真置き場「2025/02/25」

のんびりナマライザとAvalonia UIとドラゴンクエスト10

のんびりナマライザ

.NET Frameworkのバージョンを上げるだけの単純な修正。
CI関連の機能が古すぎて動かなくなっていたので、そっちも更新しました。
さて、特に新機能も本体のバグ修正もないわけだけど、いつリリースしようか…。

Avalonia UI(Today I Learned)

Avalonia UI
.NET向けのクロスプラットフォームUIフレームワーク。
Microsoftではなく、サードパーティ製です。
WPFみたいな感覚で使える模様。

ドラゴンクエスト10(しろいコキン)

人食い火竜 煉獄火炎

  • 食人火竜スレイヤーの称号を得た!

しろいコキンも人食い火竜やっつけました!
ミフミンのときの経験から、ハンマー盗賊が相性よさそうだったので、それ中心の編成で。

人食い火竜 獄炎テンペスト
ミフミンがやられたのはこの技、獄炎テンペスト。
さすがにこれが来るとわかっていれば、近寄ればいいだけなので難なくやり過ごせたのでした。
…と思いきや、効果範囲が正反対のスーパーノヴァをその後使われて、同じ感覚で近寄ったら、密着状態で見事に燃やされてしまったのでした。
まあ、最終的に炎耐性100%の優秀なサポたちがどうにかしてくれたわけですが。

アンパンマンDBと.NET 9

アンパンマンDB(記事更新)

来週の放送情報。

.NET 9

Visual Studio本体のバージョンを上げたら.NET9が使えるようになっていました。
WinUI3試してるプロジェクトでもさっそく適用。
今のところ、ビルドが問題なくできたのを確認できただけで、新機能とかはまだ見ていません。
C#13も使えるはずなんで、コードがもっといい感じになるはずなんですよね。
いつもの流れなら、普通にプログラムを組んでいたら、コード解析が新機能を提案してくるという形で触れることになると思いますが。

プログラミングとドラゴンクエスト10

プログラミング

予告通り、更新しました。
やっぱり選択ソートじゃねえか!

ドラゴンクエスト10(全員)

銃士ナスビス

  • クエスト「まもの博士の研究レポート」をクリアした!

時機を逃して同盟を組めずずっとできてなかったのですが、この度全員クリアしました。

毎月10日はDQ10で遊ぼう! ~もうすぐ協力チャレンジバトル開催! 仲間モンスター大特訓!!~ (2024/9/3)|目覚めし冒険者の広場
このイベントですな。
ァォィョッュはソロ派なので、極力同盟組まずに頑張りたかったのですが、やっぱり無理だったのでここは妥協して同盟組んでクリアしました。

他の写真は以下から。
写真置き場「2024/09/10」

WinUI 3

埋め込みリソースから画像を表示する方法がわからん。
実行ファイルやDLLと一緒にファイルとして配置したものから表示するのは簡単にできたけど。
本来はパッケージ化して使うものだからファイルとして配置しても大丈夫ってことなのかな。
非パッケージ化で使いたいんだけどな。

WinUI 3

高DPI対応、そもそも古いフレームワークで対応しようとするから面倒なんじゃないかと考えて、現状最新の.NET用Windowsデスクトップアプリケーション用フレームワーク「WinUI 3」を試してみました。
WinUI 3 - Windows apps | Microsoft Learn

UWPみたいに新しめなUI使えて、それでいてUWPみたいな制限は少なく、普通のEXEファイルとしてもビルドできます。
任意のプロセスの起動とか、Windows APIも呼び出せます。
もちろん、高DPI対応は、もっとも正確にDPI対応が行われるPerMonitorV2。

試しに画像と文字を置いてみました。


これは等倍。
画像ははっきりくっきり、文字も普通にいい感じですね。


これが200%。
画像は拡大されました。
ぼやけてしまいましたが、元の解像度が低かったし、これが本来の動作なのでとりあえずOKです。
文字はより一層はっきりくっきりして、高DPIに求めているものがしっかり出てくれた感じですね。

複数ウィンドウを扱うのができるかどうかが今ちょっとわからないのですが、一画面で収まるものなら問題なくできそう。

あと、DPI変更に反応して画像を差し替えるみたいなこともできたらいいですね。
このあたりかな。
How to get DPI with WinUI 3? - Microsoft Q&A

Misskey

C#用のライブラリ探してます。
Twitter(自称𝕏)と同時投稿みたいなことやってみたいんですよね。
まあ、単にそれだけならすでにそういうアプリはあるわけですが、やっぱり自分なりにアレンジしたい部分もあるわけで。
ということで…

syuilo/Misq: .NET Misskey library
Misskeyのメイン開発者しゅいろさんによる公式ライブラリ。
公式なので最も信頼性が高いと思われますが、機能としては認証と通信周りの最低限に絞ってあり、便利機能などは一切ありません。
Misskeyは開発がアグレッシブで、APIの仕様もよく変わるので、ライブラリ側の対応を待たずに自力でAPIの変化に追随できるという意味では、使いこなせば最も強いのかもしれません。
とはいえやっぱり、よくあるアプリよりちょっとアレンジを加えたい程度のことを、自力で全部頑張るのはつらいので、もうちょっと意識低めのライブラリが欲しいところです。

a32kita/MisskeySharp: MisskeySharp is a client library for .NET applications to utilize Misskey.
そこで、これ。
名前からしてMisskeyのC#用ライブラリって感じがしますし、サンプルプログラムも付属しています。
見た感じ、よく使いそうな機能はありそうですね。
こっちのほうを一度試してみたいと思います。

WPF

高解像度のモニタを買って拡大率の設定を上げたら自作のソフトが軒並みぼやけたので、Windows Formsから高DPIに標準対応してるWPFに変更するのを検討中。
UI全部作り直しだし、古くてモチベないやつもあるけど、簡単そうなのからやっていきたいとか思っています。
そういえばWPFより新しいC#向けのUIフレームワーク、あったよな…。
UWPはUI以外も全面的に変更になるしWPF以上に未来なさそうだから除外するとして。

Haxe(Today I Learned)


Haxe、興味は持ちつつも全然触ってなかったので、ちょっと手ごろなサンプルコードをAIに出してもらいました。
コマンドは少々修正が必要だったけど、コードの方は特に問題なくビルドできました。

出来上がったコードは、C#側は.NET Framework 2.0、PHP側はPHP 7.0相当のコードが出てきて、両者とも、Haxe自身の言語仕様やライブラリとの互換性のためのファイルがいくつか追加されていました。
C#の方は、丁寧にもDLLにまでビルドしてくれたので、コードで共有しなくても、このDLLをプロジェクトに追加すれば、Haxeで作ったライブラリをC#で使えることになります。
PHPの方は、パッと見た感じ、互換性用のファイルが、PHP 8.2ではエラーになりそうな感じだったので、何か追加対応をしてエラー解消するか、これのためのPHP 7.0サーバーを作るか、何か対応が必要そうです。

プロジェクト実質停止してるけど、funyakあたりでも何かしらの形で使ってみたいんですよね…。

アンパンマンDBとTGWSAdmin

アンパンマンDB

「ドロリンとバケ〜るカーニバル」の作品情報を更新
キャラ「フワリー」を更新
映画のこと、書いてきました。
で、書き方で昨年の映画を参考にしていたら、昨年の映画のヒロインの情報が全然書けてなかったので、ちょっと追記しました。

TGWSAdmin

スマホで撮った縦長画像がうまく処理できていなかったので修正しました。
以下のサイトに、やりたかったことそのままのサンプルがありました。

EXIFの情報に基づいて画像を回転する - smdn.jp

PropertyItemsを見て回転、ですね。
サンプルは3種類の回転しか対応していなかったので、反転の方も対応して取り入れてみました。

WinUI 3とアンパンマンDB

WinUI 3

Windows App SDK を使用して新しいプロジェクトを作成する - Windows apps | Microsoft Docs
いつぞやのProject Reunionの正式版ですね。
ちょっと触った感じでは、UWPと大差ない感じ?
グラフィカルなツールが、エラーで使えませんでした。
やりたいことも別に定まってないし、まだまだ様子見かな。

アンパンマンDB

PHPバージョンアップに伴う微妙なエラー、アンパンマンDBを中心に起こっているので、そちらを重点的に修正中です。

ドラゴンクエスト10とfunyak

ドラゴンクエスト10

しろいコキンも問題なく魔剣士に転職。
流石に三回目なので、話を聞き流しつつサポート仲間を連れてくる時間も惜しんで5分で完了。
職業スキルもなかなか強そうなので、使う武器を決めるまでは職業スキルだけでやりくりしてもそこそこ戦えそうです。

funyak

手作業でJSON形式のステージファイル作るのが面倒なので、YAMLでも作れるようにYamlDotNetを入れてみました。
で、YAMLでもJSONと同じ内容を読み込めることを保証するために、テストコードを作りたいんだけど、これまでの経緯から、テストコードを書く場所が2ヶ所になっていたんですね。
まあ、はっきり言って二重管理はバグのもとだし、何より面倒です。
なので、テストをNUnitに統一することにしました。
これはこれで、フレームワークを変えるレベルのことをしているので、結構面倒だったりするのですが…。

Haxe

Haxe - The Cross-platform Toolkit
Haxeについて調べてました。
複数のプログラミング言語のソースコードにコンパイルする言語です。
以前から興味出していたんですが、日記の方には書いてませんでした。
私はC#とPHPを中心的に使っているんですが、Webのフロントエンド向けにはJavaScriptがいいとか、やりたいことに対して使うべき言語がてんでバラバラなんですね。
Windows向けとWeb向けに同じものを取り扱う別のシステムを作ろうとしたら、同じものを違う方法で書き直すことになるわけで、二度手間になるわけです。
この共通ロジックをHaxeで書けば、C#とPHP、そしてJavaScriptにコンパイルして、同じものをいろんな場所で使えるようになるはずなのです。

次>