prota_csharp's profile picture. C#初心者向け情報発信中。Blazor+Azure連携・WPF/WinForms・生成AI活用など。個人事業主(メンター&情報発信)、元大手IT企業マネージャ、開発20年以上🔧「効率的で楽しい開発」を追求。 ブログ:http://prota-p.com/、YouTube:http://youtube.com/@prota_pro

プロ太@C#・博士(工学)・Microsoft MVP(.NET)

@prota_csharp

C#初心者向け情報発信中。Blazor+Azure連携・WPF/WinForms・生成AI活用など。個人事業主(メンター&情報発信)、元大手IT企業マネージャ、開発20年以上🔧「効率的で楽しい開発」を追求。 ブログ:http://prota-p.com/、YouTube:http://youtube.com/@prota_pro

置頂

私の自己紹介です。 ・💻 プログラミング言語の中ではC#が一番好き ・🛠️ 好きな開発環境はもちろんVisual Studio ・👨‍💻 尊敬する言語設計者はアンダース・ヘルスバーグ ・🤹 大手IT企業ではマネージャとして苦労も ・😊 今は個人事業主として毎日幸せにプログラミング お気軽にフォローください ✨


C#/.NETって、Java、C++、Delphi、Haskellとか他言語の既存コンセプトをうまく取り入れていますね。 「Compiler as a Service」(Roslyn)って、けっこう独自で新しいかなとか思ったけど、やっぱりこれもLispのマクロとか、昔からあるメタプログラミングの現代版って感じなのかなぁ。


C#で、フォルダ単位で依存関係の違反を自動チェックできないかなと思っていたら、NetArchTestというライブラリを発見。 これを使えば、プロジェクトに分割しなくても、依存関係をチェックできるようになるかな。 (静的チェックではなく、単体テストとして記述)


VSCodeのGitHub CopilotではGemini 3 Pro(Preview)が選べるようになってますね。 (Visual Studoではまだ選べないが…😅)


アンダース・ヘルスバーグ(C#の生みの親)のすごさを分かりやすく伝えるには… 「今の人気言語トップ10の中で、2つ(C# とTypeScript)を作った唯一の人物」 とかですかね😀 (唯一であってますよね、たぶん)


Aspireって、まさに「AI・クラウド時代のC#フルスタック開発」の中核だな…。 UI系と違って“基盤”だから、一度かたまると寿命も長くなりそうな気がする。


C# 14の新機能をみると、「痒いところに猛烈に手が届くアップデートの集合体」という印象ですね。 field キーワード周りの改善など、実務で“毎日効く”アップデートですね。 こういう丁寧な積み重ねこそが、C# という言語の強さだと思います。


C#が、後方互換保ちながらシンタックスシュガーで言語機能を拡張しまくれているのは、「コンテキストキーワード」の貢献もありますね。


契約書の甲乙はわかりにくいなぁ。 (慣れの問題かもしれないけど…) ハードコーディングせず変数にするのは良いことだけど、変数名がわかりにくい感じか。


.NET 10の新機能、AI・クラウド時代に「.NETでシステム全体をフルスタックで…」という強い意気込みを感じました! devblogs.microsoft.com/dotnet/announc… 一方で、(他と比べると相対的に)デスクトップ領域については、歴史と資産を抱えるがゆえの「苦悩」を、ほんのり感じました😅 ※あくまで個人の感想です。


C#14 の「拡張プロパティ」について ChatGPT に質問したら、 “クラスにフィールドを後付けできる機能(Mix-in!?)”みたいな説明が返ってきて面白かったです (※実際はできません) バッキングフィールドが生じる書き方をすると This member is not allowed in an extension block と怒られますね😅


BlazorサーバモードのSignalR使ったアーキテクチャ、けっこうぶっとんでますよね。 学生時代、研究室で「サーバ・クライアント意識せずに統一的にコードを書けるフレームワーク」みたいな研究がありました。 まさか、それを本当に実用フレームワーク化するとは…という感じです。


BlazorのRazorコンポーネント(*.razorファイル)って、コード変換時の介入も難しいし、実行時の内部構造とかも触りにくいな…。 開発支援系ツールつくるときは、Razorコンポーネントはツール開発者泣かせかもしれない😅


双方向バインディングのUI(Blazor 等)で、 「カスタムフィルタの条件ツリー編集」などの“木構造そのものを編集するUI”を作るときは、Single Source of Truth を意識すると安定しやすい気がします。 「UIで編集 → データ更新 → UI再構築」 この流れを意識すると、不整合が減るかと思います。


AIエージェントに開発させるなら、最低限の自動テストは用意しておくと安心ですね。 テストが“仕様の代わり”になるので、挙動ブレの検知が速くなります。 ただし、AIはテストが通らないとテスト自体を修正し始めることがあるので注意も必要です😆


AIエージェントで機能追加させるときに、あらかじめAIが苦手そうなところは技術検証し、それを指示に組み込むとよいですね。 C#でProtocol Buffersを使った機能を実装させてたんですが、protoファイルのプロジェクトへの追加方法など、あらかじめ指示しておいたら、うまくいきました。


Visual Studioで、ソリューションを読み込んだ時にプロジェクトを認識しなくなる現象が発生…。 .vs フォルダを削除したら復旧したので、内部キャッシュが壊れていた模様🤔 VSの動作がおかしい時は .vs フォルダ削除も1案ですね。


個人開発は、やっぱり毎日少しずつでも継続が大事ですね。 期間がちょっと空いてしまうと、頭のコンテキスト情報のキャッシュが消えてしまい、その再構築のオーバヘッドが増えますね…。


最近、Visual Studio+GitHub Copilot AIエージェントでコードを書いていくことが多いですが、 ・技術的負債の積み上がりをどう防ぐか ・AIがコードを生成するプロセスを、人が理解・検証できる単位にどう制御するか …というあたりが大きな課題かなぁと思っています。


Loading...

Something went wrong.


Something went wrong.