From cd8f1fe74ab04cdd680336d2392e2b3bc63b4603 Mon Sep 17 00:00:00 2001 From: Jon Douglas Date: Fri, 23 Jun 2023 17:30:15 -0500 Subject: [PATCH 1/3] Initial draft --- proposed/2023/vs-filters.md | 83 +++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 proposed/2023/vs-filters.md diff --git a/proposed/2023/vs-filters.md b/proposed/2023/vs-filters.md new file mode 100644 index 000000000..6e6966133 --- /dev/null +++ b/proposed/2023/vs-filters.md @@ -0,0 +1,83 @@ +# Visual Studio Filters & Sorting Options + +- [Jon Douglas](https://github.com/JonDouglas) +- 2023-06-23 + +## Summary + + +This proposal represents a common ask for more filters and sorting options in the NuGet Package Manager experience in Visual Studio. + +## Motivation + + +As NuGet continues to expand as a package ecosystem, there has become a dire need for being able to filter and sort packages through one's daily management in their IDE of choice. While NuGet.org supports a plethora of filters and sorts on the search experience today, we'd like to bring these similar experiences to the various tabs(browse, installed, etc) in Visual Studio to help aid various jobs-to-be-done when it comes down to package management. + +## Explanation + +### Functional explanation + + + + +When a developer is using Visual Studio to search and manage NuGet packages, they will see a new filter and sort experience. + +The browse filter experience will allow the developer to filter results based on common concepts such as "frameworks", "prerelease", "owners", "download count", "license", and "created on". + +The installed filter experience will allow the developer to filter results based on all the **browse filter** and additional package status filters such as "deprecated", "vulnerable", and "update". + +To apply filters, the developer will click the new filter button next to the search box. This will open up a new window of the possible filtering options to choose from. + +When a filter is selected, the filter will show up as a pill/badge affordance in the package list which can be removed by clicking on the "X" associated with the pill/badge. For some filters, they will support multiple values such as frameworks, owners, and licenses. For other filters, they will only support one value such as prerelease, download count, created on, etc. For filters that have popular values but also have custom values, a input box will be provided. For example the license filter will have popular OSS licenses, but with the ability to insert the name of a not well known license as well. + +Whenever a filter is applied, it will additionally show up in the Visual Studio search box so that developers get used to the search prefix syntax and can apply filters more quickly in the future. + +The sorting experience will allow the developer to sort these options on common concepts such as "alphabetical", "version", "relevance", "downloads", and "recently updated". + +The sorting options will show up as a dropdown in the package list. + +### Technical explanation + + + +## Drawbacks + + + +The NuGet package manager experience in Visual Studio today somewhat has these filtering concepts built into the default tabs such as "Browse", "Installed", "Update", and "Consolidate". There is however limited sorting options in Visual Studio for package management. By implementing this work, we may be re-inventing a small portion of work such as the current concept of the "Update" and "Consolidate" tabs such as the "update available" package status filter. + +## Rationale and alternatives + + + + + +One major challenge with search filtering experiences today is knowing the [supported search prefixes](https://learn.microsoft.com/en-us/nuget/consume-packages/finding-and-choosing-packages#search-syntax). Technically one who knows or finds the documentation on this topic could use these in Visual Studio, but it should be more visual and easy to find in the product itself through the means of a user interface that one can interact with. + +This concept plays off of inspiration for new package management UI concepts we've designed in the past while also taking on contemporary UI/UX concepts found in popular applications such as Etsy, Spotify, AirBnB, and more. + +Additionally, the advanced search experience helps users learn the current prefixes that are supported while also being consistent with other platforms such as how GitHub implemented advanced search. + +## Prior Art + + + + + +- [NuGet Visual Studio Package Manager UI vNext](https://github.com/microsoft/vscode-dotnettools/issues/62#issuecomment-1582471743) +- [GitHub](https://github.com/search) and [GitHub Advanced Search](https://github.com/search/advanced) +- [Etsy](https://www.etsy.com/search) +- [Airbnb](https://www.airbnb.com/?adults=2&search_mode=flex_destinations_search) +- [Spotify](https://open.spotify.com/search/rock) +- [Google](https://www.google.com/search) + +## Unresolved Questions + + + + + +## Future Possibilities + + +- There is additionally a concept of "dependency sorting" which would sort dependencies based on the correct order to maintain compatibility such as updating versions. This could be a helpful feature if feasible / done correctly. From 6225561b2aa85ddfe55024344155c7ec82ff8973 Mon Sep 17 00:00:00 2001 From: Jon Douglas Date: Mon, 26 Jun 2023 12:55:17 -0500 Subject: [PATCH 2/3] Adds very bad mockups --- .../resources/VSFilter/PackageOptions.png | Bin 0 -> 2429018 bytes .../VSFilter/PackageOptionsAndStatus.png | Bin 0 -> 2654711 bytes .../2023/resources/VSFilter/PillsAndSort.png | Bin 0 -> 2763356 bytes proposed/2023/vs-filters.md | 6 ++++++ 4 files changed, 6 insertions(+) create mode 100644 proposed/2023/resources/VSFilter/PackageOptions.png create mode 100644 proposed/2023/resources/VSFilter/PackageOptionsAndStatus.png create mode 100644 proposed/2023/resources/VSFilter/PillsAndSort.png diff --git a/proposed/2023/resources/VSFilter/PackageOptions.png b/proposed/2023/resources/VSFilter/PackageOptions.png new file mode 100644 index 0000000000000000000000000000000000000000..68b70032e07e81358103c5f10d2405f917b3d837 GIT binary patch literal 2429018 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