Skip to content

dotnet CLI: Enhancements Epic #49225

@MiYanni

Description

@MiYanni

Core Tenants

Note

We'll use t-shirt sizes (S, M, L) to gauge the amount of effort and impact.
A ? means an unknown amount of effort/impact.

Consistency

  • Surface (Schema/Format) Standards
    • Effort: L, Impact: L
    • Design standards and rules around CLI command surface
    • Refactor current CLI surface to meet those standards
      • Potential for breaking changes but aliases will be used to minimize impact
    • Implement deprecation mechanism
    • Refactor documentation to present a versioned CLI surface
  • Command Implementation (Shared Library)
    • Effort: M, Impact: M
    • Create public-facing (shippable) shared CLI library
    • Enhanced System.CommandLine features
      • All types require dotnet CLI specific implementations (eq. System.CommandLine.Option would have Microsoft.DotNet.Cli.Option [exact names TBD])
      • Custom help system
      • Additional features not present within S.CL (eg. option sets, argument ordering, etc.)
    • Shared command-specific options/arguments (or anything else that is reusable within the dotnet CLI domain)
  • Command Output (Output Stream Handling)
    • Effort: M, Impact: S/M
    • Review current command output and determine how to normalize
      • This has potential for "breaking changes" if users relied on commands outputting in a certain way
    • Refactor commands to use shared output schema (eg. allow for machine-readable formats, "--what-if" operational logic, etc.)
    • Shared color handling
    • Better use and implementation of resource strings
  • Telemetry
    • Effort: S, Impact: M
    • Review current telemetry schema
    • Update telemetry to better suit customer needs/usage
    • (Potential) Use different telemetry provider (for performance reasons)

Performance

  • Effort: M, Impact: M/?
  • Investigate general operational performance (eg. command-independent perf)
  • Investigate command-specific performance
  • Investigate AOT designs (or other potential start-up perf improvements)
  • Investigate OOP (out-of-proc) designs
  • Investigate cross-plat performance

AI

  • Effort: ?, Impact: ?
  • Review commands for potential AI interaction (eg. dotnet new would allow creation based on AI interaction instead of traditional explicit templates)
  • Determine how authentication would work with AI commands
  • Determine if any local LLMs could be useful/created for the dotnet CLI and related concepts (eg. MSBuild, NuGet, etc.)

New Features

  • Effort: ?, Impact: ?
  • Command input/prompting design (eg. interactive command usage)
  • Shared configuration (eg. global.json replacement specific to dotnet CLI)
    • Could be repo-specific, SDK-version specific, or global (?)
  • SDK/runtime installation management

Sub-issues

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions