loading...
Cover image for Search for .NET Tools with ToolGet

Search for .NET Tools with ToolGet

marcusturewicz profile image Marcus Turewicz Updated on ・3 min read

.NET Tools is a feature that was released with .NET Core 2.1 and provides the following functionality according to the docs:

A .NET Tool is a special NuGet package that contains a console application. A Tool can be installed on your machine on a default location that is included in the PATH environment variable or on a custom location.

For instance, you can install the dotnetsay tool globally with the following command:

$ dotnet tool install -g dotnetsay
You can invoke the tool using the following command: dotnetsay
Tool 'dotnetsay' (version '2.1.4') was successfully installed.

and then you can run it like this:

$ dotnetsay

        Welcome to using a .NET Core global tool!
    __________________
                      \
                       \
                          ....
                          ....'
                           ....
                        ..........
                    .............'..'..
                 ................'..'.....
               .......'..........'..'..'....
              ........'..........'..'..'.....
             .'....'..'..........'..'.......'.
             .'..................'...   ......
             .  ......'.........         .....
             .                           ......
            ..    .            ..        ......
           ....       .                 .......
           ......  .......          ............
            ................  ......................
            ........................'................
           ......................'..'......    .......
        .........................'..'.....       .......
     ........    ..'.............'..'....      ..........
   ..'..'...      ...............'.......      ..........
  ...'......     ...... ..........  ......         .......
 ...........   .......              ........        ......
.......        '...'.'.              '.'.'.'         ....
.......       .....'..               ..'.....
   ..       ..........               ..'........
          ............               ..............
         .............               '..............
        ...........'..              .'.'............
       ...............              .'.'.............
      .............'..               ..'..'...........
      ...............                 .'..............
       .........                        ..............
        .....

If you work from the command line, or work on CI/CD pipelines, .NET Tools can be really useful for you since they automate many tasks, can be installed with a simple one line command and you can create them yourself. But how do I know what tools are already available and how can I search for them?

The .NET docs have the following to say regarding finding of tools:

Currently, there isn't a Tool search feature in the .NET Core CLI. The following are some recommendations on how to find tools:

  • You can find .NET Tools on NuGet. However, NuGet doesn't yet allow you to search specifically for .NET Tools.
  • You may find tool recommendations in blog posts or in the natemcmaster/dotnet-tools GitHub repository.
  • You can see the source code for the Tools created by the ASP.NET team at the dotnet/aspnetcore GitHub repository.
  • You can learn about diagnostic tools at .NET Core dotnet diagnostic Tools.

Although these resources are good, wouldn't it be nice to be able to search for tools directly?

Introducing ToolGet

Although NuGet Gallery doesn't provide a way to search for .NET tools, the NuGet Search API does allow querying of tools. So, I took it upon myself to make a simple website that utilises this API to search for only .NET Tools, and I call it ToolGet:

https://www.toolget.net

Example ToolGet search

Search

Simply provide your search query in the text box and hit enter or the search button:

Example of loading more results button on ToolGet

Load more results

ToolGet displays 20 items at a time, and you can load more with the load more button:

Example ToolGet search of "format"

Link to NuGet

Each tool result provides a link to NuGet so you can find out more information about the tool; versions, authours, project site etc:

Example link to NuGet from ToolGet

Summary

ToolGet is a simple OSS website to allow searching of .NET Tools from NuGet and provides links to NuGet for each tool to access more information.

But... I am keen to see what you think of it. Is it useful? Did you find a bug? Could it be improved? What is it missing?

Let me know what you think !!

Resources:

Posted on by:

marcusturewicz profile

Marcus Turewicz

@marcusturewicz

Machine Learning Engineer, bassist, soccer player, .NET fan, native of the cloud and renewable energy advocate.

Discussion

markdown guide