Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Goodbye ShellScript, Hello File-based App
Search
Shunsuke Tsuchiya
September 19, 2026
Technology
1.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Goodbye ShellScript, Hello File-based App
Shunsuke Tsuchiya
September 19, 2026
More Decks by Shunsuke Tsuchiya
See All by Shunsuke Tsuchiya
「👍」と「👎」の押しミスに震えない世界を作りませんか?
shunsock
1
560
俺俺最強開発環境
shunsock
2
840
The Future of Data Engineering in Findy
shunsock
0
870
Local Env as a Code with Nix
shunsock
5
2k
Getting Started with NixOS / NixOS を導入した話
shunsock
0
1.1k
contribution to astral-sh/uv
shunsock
0
1.1k
Other Decks in Technology
See All in Technology
GitHub、使う?使わない?
happysamurai294
0
140
詳解 never 型 - ボトム型の性質を深掘り
nealle
0
130
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
480
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
420
[General] 개발자로 해외 기업에서 일하기
skydoves
1
250
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
0
190
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
1
110
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
370
20261031_IoTLT_vol140_kitazaki_v1.pdf
kitazaki
0
150
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
550
AI Search (Foundry IQ) におけるRAGデータの準備と配置
ryomaru0825
1
130
キヨさん、67歳。AIコーディングエージェントに挑む
happysamurai294
0
140
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Amusing Abliteration
ianozsvald
1
370
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
410
Chasing Engaging Ingredients in Design
codingconduct
0
380
Evolving SEO for Evolving Search Engines
ryanjones
0
350
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
WCS-LA-2024
lcolladotor
0
950
Transcript
C# Kaigi 2026 in docomo R&D OPEN LAB. Goodbye Scripts,
Hello .NET 10 File-based App Shunsuke Tsuchiya (@shunsock)
Self Introduction 土屋 俊介 Company: 株式会社ナウキャスト GitHub, X: @shunsock OSS:
LazyNix / Timezone Translator shunsuke tsuchiya 2026
最近作っているOSS - 再現性のあるDevShellを簡単に作れるツール - YAMLによるシンプルな構文 - ASDF / Mise shunsuke
tsuchiya 2026 の上位互換を目指している 3
最近作っているOSS - .NET 10 がホストに入っている - DevShell shunsuke tsuchiya 2026
を起動すると .NET 11 に!! 4
最近作っているOSS 宣言するだけ (apt installとかしない) 2: 高い再現性 3: テストやタスクツール付き 1: shunsuke
tsuchiya 2026 5
話すこと 1: 課題 2: File-based app の解説 3: File-based app
shunsuke tsuchiya 2026 の使いどころ 6
AI x ShellScript = Garbege Factory クラスや構造体無し, 実行時評価 大量に発生するグローバル変数 set
-euo pipefail / # shellcheck disable=SC.... shunsuke tsuchiya 2026 7
Alternatives 誰でも読める美しい文法 型安全, 静的解析 高速な動作 shunsuke tsuchiya 2026 8
C# でスクリプトを書きたい でもプロジェクトファイルは作りたくない shunsuke tsuchiya 2026 9
All you need is File-based App .csproj 不要 1コマンドで実行 .NET
10 以降で利用可能 https://learn.microsoft.com/en-us/dotnet/core/sdk/file-based-apps shunsuke tsuchiya 2026 10
Script but on C# を開く 2: ← を書く 1: app.cs
3: dotnet run app.cs shunsuke tsuchiya 2026 11
Script but on C# shunsuke tsuchiya 2026 12
Script but on C# shunsuke tsuchiya 2026 13
None
便利な機能であることは分かった では、どうやって実現しているのだろうか shunsuke tsuchiya 2026 15
Next Topic は どのように機能しているのか File-based app shunsuke tsuchiya 2026
How it works メモリ上に .csproj を書き出している これで理解できたら、今日の話は聞かなくてOK shunsuke tsuchiya 2026
17
How it works cli .csproj File-based app builder shunsuke tsuchiya
2026 18
How it works 1: File-based app の判定 2: File-based app
の解釈 3: 通常プロジェクトとの統合 shunsuke tsuchiya 2026 19
How it works 1: File-based app の判定 --file --project .csproj
arg[1] 存在 File-based app 存在 通常 存在 通常 stdin, .cs shunsuke tsuchiya 2026 結果 ファイル File-based app 20
How it works 1: File-based app の判定 https://github.com/dotnet/sdk/blob/main/src/Cli/dotnet/Commands/Run/RunCommand.cs#L817 shunsuke tsuchiya
2026 21
How it works 2: File-based app の解釈 Tokenize shunsuke tsuchiya
2026 Parse Write XML MS build 22
How it works 2: File-based app の解釈 Tokenize shunsuke tsuchiya
2026 Parse Write XML MS build 23
How it works 2: File-based app の解釈 shunsuke tsuchiya 2026
How it works 2: File-based app の解釈 メンカタカラメアブラヤサイマシマシ“ “ メンカタ,
カラメ, アブラ, ヤサイ, マシマシ] [ [ Option { メンカタ }, Option { カラメ }, Option { マシマシ(target=[アブラ, ヤサイ]) } ] shunsuke tsuchiya 2026
How it works 2: File-based app の解釈 shunsuke tsuchiya 2026
How it works 2: File-based app の解釈 https://github.com/dotnet/sdk/blob/main/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileLevelDirectiveHelpers.cs#L378 shunsuke tsuchiya
2026
How it works 3: 通常プロジェクトとの統合 Tokenize shunsuke tsuchiya 2026 Parse
Write XML MS build 28
How it works 3: 通常プロジェクトとの統合 shunsuke tsuchiya 2026 ← プロジェクト情報
← ターゲットなどを記載 ← 依存パッケージなどを記載
How it works 3: 通常プロジェクトとの統合 shunsuke tsuchiya 2026
How it works 2: File-based app の解釈 https://github.com/dotnet/sdk/blob/main/src/Cli/Microsoft.DotNet.FileBasedPrograms/VirtualProjectBuilder.cs#L285 shunsuke tsuchiya
2026
Next Topic File-base app shunsuke tsuchiya 2026 の使いどころ
Example Coding AgentのHookで起動する コメントフォーマッター Stop word言い換えマン SKILL強制発動マシン 33 shunsuke tsuchiya
2026
Example Coding AgentのHookで起動する 「写像」「焼き込」「非空」「刻印」など AI Slopを検出するCLI 9月だけで150回、AIに修正依頼した。 AIのHookの他に、 Web HookやGitHub
Actionsなど 使える場所がそこそこある 34
Example AI からの入力を解釈する shunsuke tsuchiya 2026 35
Example AI からの入力を解釈する 組み込みのソースジェネレーター方式を利用 型ごとのメタデータと専用シリアライザーを C# コードとして生成 ※ リフレクション方式は使えないので注意 shunsuke
tsuchiya 2026 36
37
Conclusion File-based app の仕組みと活用 1: File-based app は .csproj をメモリ上で構築する仕組み
2: File-based app は C# の機能や既存試算を利用可能 3: Scriptの代わりとしてAIやCI/CDなどで使うと便利 shunsuke tsuchiya 2026 38
Thank you for Listening 感想・コメント お待ちしております