Giter Site home page Giter Site logo

joelverhagen / nugettools Goto Github PK

View Code? Open in Web Editor NEW
49.0 3.0 18.0 1.41 MB

A website containing some various tools to help understand NuGet.

Home Page: http://nugettools.azurewebsites.net/

License: MIT License

C# 82.84% JavaScript 0.54% CSS 0.24% PowerShell 0.30% HTML 16.08%

nugettools's Introduction

NuGet Tools

A website containing various tools to help understand NuGet.

Live Website

You can visit NuGet Tools at http://nugettools.azurewebsites.net/.

Local development

You should be able to open the solution file (NuGetTools.sln) in Visual Studio and launch the Knapcode.NuGetTools.Website project to start the website. This will allow you to use the web interface for the version of the NuGet client SDK (e.g. NuGet.Frameworks and NuGet.Versioning packages) that is used directly by the project.

If you want to have additional NuGet client versions available, run the Invoke-DownloadPackages.ps1 script to download all available versions of the NuGet client packages from NuGet.org.

Supported features

  • Parse a NuGet framework
  • Parse a NuGet package version
  • Parse a NuGet package version range
  • Test NuGet framework compatibility
  • Compare two NuGet package versions
  • Test the "get nearest" NuGet framework algorithm
  • Test if a version satisfies a version range
  • Test the "get best version match" algorithm
  • Switch between different NuGet versions.

Future

I'd like to add the following features in the future:

  • Determine first available version dynamically -- it's hard coded today
  • Interacting with real NuGet packages (either uploaded or from a source)
  • Better copy-pasting so you can easily get a snippet to drop in an email or document
  • REST API

nugettools's People

Contributors

0xced avatar dependabot[bot] avatar joelverhagen avatar therzok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nugettools's Issues

Enable providing the dependencies section, for it has an effect in selecting the nearest framework

In net461 projects, nuget may select the netstandard as the Nearest Framework, see the example

An empty dependency group in the dependencies section will modify the Nearest Framework to be ,e.g, net45.

So, the dependencies section should be exist and evaluated in the same way as nuget tool.

   <dependencies>
    <group targetFramework="net45"/>    <!-- without this line nuget will select netstandard15 as nearest -->   
    <group targetFramework=".NETStandard1.5">
    <dependency id="System.Collections" version="4.0.11-rc2-24027" />
    <dependency id="System.Console" version="4.0.0-rc2-24027" />
      ........
 </group>

Page output should mention input

Framework compatibility:

net45 (net45) projects support netstandard1.0 (netstandard1.0) packages.

Parse version:

Mention input in bold

clone and run doesn't work

The repo readme doesn't have instructions for getting started, so I tried cloning the repo, opened the sln and pressed F5. When my browser opens, I get this error message:

ArgumentNullException: String reference not set to an instance of a String.
Parameter name: s
System.DateTimeParse.Parse(string s, DateTimeFormatInfo dtfi, DateTimeStyles styles, out TimeSpan offset)

Here's a screenshot of some more info:
image

net472 does not show net472 as first choice

Steps

  • Visit link
  • The first item in the list is net463.
  • Also broken for net471, net47, and net48.

Expected

The framework itself should be listed first.

Note

When I check with net463, it is it's own first item. My guess is the site isn't fully supporting net47*+ yet.

For the record, your project rocks! Thank you for doing it.

Consider UX improvements provided by Nikolche

  • Version Range > Find Best Version: never call satisfies... more logic exists that satisfies does not do
  • Axe the Version Range > Version Satisfies page, there is no NuGet scenario that directly calls it.
  • Version Range > Find Best Version: sort by preference, consider yellow/green
  • New tool: Version > Sort Versions
  • Version > Version Comparison: consistent wording, flip/flop order of A B

/cc @nkolev92

.NET framework projects can reference .NET Standard packages, and vice versa

I'm seeing the following results on the "Check framework compatiblity" page:

image

But based on my testing I can create a .NET Standard 2.1 class library (2.0 even), and reference NuGet packages that don't supply any .NET Standard targets with no ill effects other than a warning. E.g. here's a project definition:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="IPNetwork2" Version="2.0.4" />
  </ItemGroup>

</Project>

When I attempt to build that, it builds just fine, other than giving me this warning:

/home/ankh/misc_code/ntfsbad/git/agentautomation/framework/lib/Framework/Framework.csproj : warning NU1701: Package 'IPNetwork2 2.0.4' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project.

I think this is a consequence of a recent "compatibility mode" feature introduced to .NET Standard that is documented here. Is this something that the tool should account for?

Deprecated TFMs

dnxcore50, dotnet5.4, etc. Suggest hiding deprecated frameworks by default and showing warnings when about their deprecation when users search for them.

PS: awesome tool, would be nice to make official. I was looking for good ways to explain framework compatibility on StackOverflow and this was the only good tool I could find.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.