1. 【初心者歓迎】C#だけでWebゲームを1時間で作る javascriptやAJAX不要!Blazorの凄さを体験する
C#のみでJavaScriptやAJAX不要でWebゲームを作成する方法を解説。Blazor ServerのWebSocket通信により、@onclickイベントなどでリアルタイムにUI更新が可能。箱入り娘パズルゲームの実装を通じて学ぶ。
主なトピック:
- Blazor Server: WebSocketを使った双方向通信でC#のみでリッチなWeb UIを構築できるフレームワーク
- WebSocket: HTTPリクエスト不要でリアルタイム通信を実現、オンラインゲームなどで使用される技術
- @page / @code: HTMLとC#コードを同一ファイルで記述できるRazor構文
- イベント処理: @onclickや@onmousemoveなどでクライアント操作をサーバー側で処理
- CSS Grid: 盤面レイアウトの実装に使用
- その他: Visual Studio、インタラクティビティ型、StateHasChanged etc...
(コード例あり)
2. NHK「新プロジェクトX」プレステ開発の舞台裏に迫る。10月11日20時放送
NHK総合で10月11日20時放送の「新プロジェクトX」にて、プレイステーション開発の舞台裏を特集。90年代初頭のリアルタイム3DCG実現という無謀な挑戦と、異端の技術者たちの熱きドラマを紹介する番組告知。
主なトピック:
- プレイステーション: 発売から約30年、ソニーのゲーム事業の始まりとなった革命的ゲーム機
- 3D技術: 2Dゲーム全盛期に臨場感あふれる3Dを導入した革新的技術
- 半導体開発: 長年日の目を見なかった技術がゲーム機開発で開花
- ソニーの変貌: "エレキの雄"から世界的エンターテインメント企業への転換
- その他: 異端の技術者、組織の垣根を超えた開発 etc...
3. uvxで誰でも使えるPython自作ツールを手軽に公開する方法
uvxを使えばPyPI登録不要でGitHubから直接Pythonツールを実行可能。--fromオプションでリポジトリ指定し、pyproject.tomlとconsole_scriptsエントリポイントを設定すれば、誰でも簡単に使えるツールを公開できる。
主なトピック:
- uvx: Pythonパッケージマネージャーuvの機能でPyPI登録せずGitHubから直接実行可能
- --from オプション:
uvx --from git+https://github.com/user/repo tool-nameでGitHubリポジトリを指定 - console_scripts: pyproject.tomlでCLIエントリポイントを定義し簡潔なコマンド実行を実現
- uv tool install: 頻繁に使うツールをグローバルインストールして常時利用可能に
- MCPサーバ: 自作MCPサーバの設定もuvxで簡略化、絶対パス不要で環境依存を回避
- その他: uv tool list/upgrade/uninstall、PyPI登録 etc...
(コード例あり)
4. 【C#】C# 14 / .NET 10 の新機能 (RC 1 時点)
C# 14と.NET 10のRC 1時点での新機能を紹介。Extension membersやFirst-class Span Typesなどの言語機能、LINQのLeftJoin/RightJoin、System.Text.Jsonの強化など、広範な機能追加を解説。
主なトピック:
- Extension members: 拡張メンバーによる既存型の機能拡張
- First-class Span Types: Span型の第一級サポートで高パフォーマンス処理を実現
- LINQ拡張: LeftJoin/RightJoin/Shuffle/Sequenceなど新しいクエリ操作を追加
- System.Text.Json: プロパティ重複禁止、JsonSerializerOptions.Strict、PipeReader対応など強化
- slnx: 新しいソリューションファイル形式でslnを置き換え
- その他: field keyword、Null-conditional assignment、Async LINQ、WebSocketStream etc...
5. Microsoft Agent Framework (C#) 入門 その1「雑感」とハローワールド
Microsoft Agent FrameworkはSemantic KernelのAgent機能とProcess Frameworkを整理し、Microsoft.Extensions.AIベースで再設計された新フレームワーク。ChatClientAgentでシンプルにエージェント作成でき、マルチエージェント機能も充実。
主なトピック:
- Agent Framework: Semantic Kernelから進化、Microsoft.Extensions.AIベースでAgent機能に特化
- ChatClientAgent: IChatClientベースでエージェント作成、ツール自動呼出しやチャット履歴管理が簡単
- マルチエージェント: シーケンシャル/ハンドオフ/グループチャットなどのパターンを提供
- AgentWorkflowBuilder: ワークフロー定義と実行、エージェントの入れ子も可能
- Semantic Kernelの課題: 破壊的変更回避のため複雑化、新フレームワークで整理
- その他: InProcessExecution、WebSocketベース、Azure OpenAI etc...
(コード例あり)
6. C#のrecord型で一意な識別子を持ちたい
record型でエンティティを実装する試み。EqualsとGetHashCodeをオーバーライドし一意な識別子(Id)での同一性判定を実現。ただし推奨はせず、特殊用途(CQRS Read側など)に限定すべきと結論。
主なトピック:
- EntityRecordBase: record型でエンティティを実装するための抽象クラス、Id比較に特化
- 一意な識別子(Id): EqualsとGetHashCodeをIdのみで判定するよう変更し同一性を保証
- IComparable実装: ComparableEntityRecordBaseでソート機能を追加、自然順序での並べ替え
- 制約と課題: record本来の値による等価性を崩すため直感的でなく認知負荷が高い
- 推奨しない立場: 通常はclassで実装すべき、特殊用途のみrecord検討
- その他: 値オブジェクト、プライマリコンストラクタ、ドメイン駆動設計 etc...
(コード例あり)