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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shunsuke Tsuchiya
September 19, 2026
Technology
1.5k
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
550
俺俺最強開発環境
shunsock
2
840
The Future of Data Engineering in Findy
shunsock
0
850
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
全PRの83%が AIレビューだけでマージできるようになった開発組織は その後どうなったか @2026/10
athug
0
140
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
1
670
Incremental HTTP
kazuho
5
2.1k
Jetson Orin Nanoとk3sとローカルLLMで音声文字起こしシステム作ってみた
y_sera15
0
100
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
180
自作バイナリを動かす「入口」8選
puhitaku
2
1.2k
go-sqletch
moznion
0
130
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
620
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
0
1.6k
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
800
Essential architectural thinking (revised edition)
ufried
0
110
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
450
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Test your architecture with Archunit
thirion
2
2.4k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
560
The Curious Case for Waylosing
cassininazir
1
560
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
350
Code Reviewing Like a Champion
maltzj
529
40k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
The SEO identity crisis: Don't let AI make you average
varn
0
580
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
540
What's in a price? How to price your products and services
michaelherold
247
13k
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 感想・コメント お待ちしております