Skip to content

Use $HOME/.config/Microsoft/ASP.NET instead of $HOME/.aspnet in unix-like environments #43278

Open
@etki

Description

@etki

Is there an existing issue for this?

  • I have searched the existing issues

Is your feature request related to a problem? Please describe the problem.

Henlo. This is a classic issue raised in any project.
Currently ASP.NET pollutes user $HOME directories by placing an unnecessary folder there:

const baseFolder =
  process.env.APPDATA !== undefined && process.env.APPDATA !== ''
    ? `${process.env.APPDATA}/ASP.NET/https`
    : `${process.env.HOME}/.aspnet/https`;
// Use*NIX conventions for a folder name.
retVal = new DirectoryInfo(Path.Combine(homePath, ".aspnet", DataProtectionKeysFolderName));

// Use*NIX conventions for a folder name.
retVal = new DirectoryInfo(Path.Combine(homePath, ".aspnet", DataProtectionKeysFolderName));

This is a common pain for a long time for many people on unix-like platforms. I, as a user, want to have a sane output of directory listing, however any search that includes hidden dot-directories brings serious distraction when every tool strives to create a separate directory there:

find $HOME -maxdepth 1 -name '.*' | wc -l
70

Describe the solution you'd like

There is a long-standing and widely adopted solution for that called XDG convention. Long story short, it defines several folders for common usage (configuration, state, cache, etc.) which can be additionally configured via environmental variables, and suggests that applications should create sub-directories there and store their own files in an organized fashion. In example above JS code uses AppData folder, which is the experience i expect as user; XDG convention provides AppData folder equivalent for unix-like environments.

I suggest adopting XDG convention and bring some relief to end users during one of the major releases, and also placing ASP.NET folder within Microsoft folder, since without any grouping .config listings are a pain as well.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions