Upgrade to Pro — share decks privately, control downloads, hide ads and more …

dnx で実行できるコマンド、作ってみました

dnx で実行できるコマンド、作ってみました

タイトル
dnx で実行できるコマンド、作ってみました
Creating Custom Commands for dnx: A Practical Guide

概要
.NET開発における新しいツール実行方法として注目される「dnx」について、実際にコマンドを作成した経験を共有します。本セッションでは、dnxの基本概念から実装方法、実際の使用例まで、実践的な内容をお届けします。dnxを活用することで、.NETツールの実行がどのように変わるのか、具体的な事例を通じて解説します。
This session explores "dnx," an emerging tool execution method in .NET development, through hands-on experience in creating custom commands. We'll cover the fundamental concepts of dnx, implementation approaches, and practical usage examples. Through real-world cases, you'll learn how dnx transforms the way we execute .NET tools and discover practical techniques for building your own dnx-compatible commands.

登壇者
高丘 知央 (Tomohisa Takaoka)
株式会社ジェイテックジャパン CTO
Microsoft MVP for Developer Technologies (2024年11月-)

中小企業向けの受託開発において、イベントソーシング、CQRSなどのモダンなソフトウェアアーキテクチャを推進。オープンソースプロジェクト「Sekiban」(Event Sourcing and CQRS Framework)の開発者。

登壇日
2025年11月22日(土曜日)
.NET ラボ

https://dotnetlab.connpass.com/event/364122/

【大阪出張編】.NETラボ 勉強会 2025年11月

Avatar for Tomohisa Takaoka

Tomohisa Takaoka

November 22, 2025
Tweet

More Decks by Tomohisa Takaoka

Other Decks in Programming

Transcript

  1. 自己紹介 高丘 知央 - Tomohisa Takaoka X: @tomohisa GitHub: @tomohisa

    Works at: 株式会社ジェイテックジャパン、J-Tech Creations, Inc. JTS Group - 株式会社ジャパンテクニカルソフトウェア 品川 CTO: 中小企業の受託開発をモダンな開発スタイルで。イベントソ ーシング、CQRSなどのソフトウェアアーキテクチャに関するコン サル業務 Microsoft MVP for Developer Technologies from Nov 2024- OSS: Sekiban - Event Sourcing and CQRS Framework. 2 / 16
  2. 1-1. dnx - .NET ツールの新しい実行方法 dnx スクリプトとは .NET 10 SDKで導入された新しいツール実行スクリプト

    すべての引数がdotnet CLIに転送され、ツールの使用を簡素化 Nugetパッケージマネージャからコードを最初にダウンロードしてくれて実行してく れる。事前インストール不要。 基本的な使い方 dnx dotnetsay "Hello, World!" 従来の方法との違い: dotnet tool exec の代わりに dnx を使うだけで、より直感的にツールを実行できる 5 / 16
  3. 1-2. .NET 9までの方法:dotnet tool exec dotnet tool exec コマンド グローバルまたはローカルにインストールせずに**.NETツールを実行**

    dotnet tool exec dotnetsay "Hello, World!" 特徴 CI/CDや一時的な使用に特に有効 既定では最新バージョンを使用(明示的なバージョン指定も可能) ワンショット実行: ツールをダウンロードして実行するまでが1コマンドで完結 6 / 16
  4. 1-3. なぜ欲しいのか? 他のエコシステムでは当たり前の機能 Node.js: npx - パッケージをインストールせずに実行 npx create-react-app my-app

    Python: uvx - UV (高速パッケージマネージャー) のツール実行機能 Model Context Protocol (MCP) での活用 MCPサーバーの起動に広く使用されている グローバルインストール不要で、プロジェクトごとに異なるバージョンを利用可能 設定ファイルでツールを指定するだけで実行できる利便性 .NETエコシステムでも同様の体験を dotnet tool exec は長すぎる → dnx で他の言語と同等の開発者体験を実現
  5. 2-1. テンプレートのインストールが面倒 Sekiban DCB テンプレートの例 従来の方法:2ステップが必要 # 1. テンプレートをグローバルにインストール dotnet

    new install Sekiban.Dcb.Templates # 2. テンプレートを使ってプロジェクト生成 dotnet new sekiban-dcb-orleans -n Contoso.Dcb 問題点 グローバル汚染: 使い捨てのテンプレートでもシステムにインストールされる バージョン管理の困難: プロジェクトごとに異なるバージョンを使いたい場合に不便 手順が多い: インストールと実行の2ステップが必要 9 / 16
  6. 2-2. dnxがあれば... 1コマンドで完結 # インストール不要で直接実行! dnx CreateSekibanDcbTemplate メリット インストール不要: グローバル環境を汚さない

    必要な時に: 使いたい時だけダウンロードして実行 バージョン指定も簡単: @version で特定バージョンを指定可能 npx や uvx と同じ開発者体験を .NET でも実現 10 / 16
  7. 2-3. Sekibanをdnxでテンプレートを作るツールを作ってみた パッケージを作る Console アプリにする csproj にパッケージリリースの設定をする dotnet pack -c

    Release dotnet nuget push bin/Release/CreateSekibanDcbTemplate.1.0.0.nupkg --api-key API_KEY --source https://api.nuget.org/v3/index.json 11 / 16
  8. 2-4 リリースできました。 dnxpツール Sekiban DCBテンプレートをdnx経由で簡単 に実行 インストール不要で、すぐにプロジェクト生 成 .NET 10のdnx機能を活用

    使い方 # 1 コマンドでプロジェクト生成 dnx CreateSekibanDcbTemplate テンプレートのインストールから解放される開発体験 12 / 16
  9. まとめ .NET 10の新機能 dnx npx、uvxと同等の開発者体験を.NETでも実現 dotnet tool exec の代わりに短く直感的な dnx

    コマンド グローバルインストール不要で、必要な時にツールを実行 実際に作ってみた CreateSekibanDcbTemplateをNuGetにリリース Sekiban DCBテンプレートをdnx経由で簡単に利用可能 Console アプリとしてパッケージ化し、.NET 10のdnx機能を活用 15 / 16