MindscapeHQ / raygun4net

Raygun provider for .NET
https://raygun.com
MIT License
123 stars 91 forks source link

Suggestion: Consolidate some of the Raygun packages? #388

Closed DamienDennehy closed 6 years ago

DamienDennehy commented 6 years ago

I recently installed Raygun on a new project, and I've got to admit I got confused as to which package I should use.

image

Are all of these really necessary?

CmdrKeen commented 6 years ago

We are looking at some ways to consolidate. However there are three things at play:

  1. When we first delivered nuget packages there were limitations in multitargeting that led to us having to break things apart. Some of those issues have been resolved in years gone by.
  2. If we do now make the changes, we need to be careful not to make existing package users lives harder (ie left thinking they're up to date when not, smooth transition process etc).
  3. Raygun is used in a lot of different ways. So looking at the list you can see some folks want things signed, some don't. Some want web support, some don't. Some want data to support azure, some don't. One uber package has the benefit easy install, but do consider that it'll pull an ocean of dependencies for all the different ways people use Raygun into your app (which personally, I hate - I was always one of the folks dropping the 'why the heck does a blank project have 32 default dependencies!).

Open to suggestions here. As mentioned, we'd like to simplify but I want to be transparent about the reasons for how things are and the trade offs that were made at the time.

DamienDennehy commented 6 years ago

Yeah I see where you're coming from. We've had our own struggles with NuGet packages here and even internally where we can control things a little we still had people using the wrong packages.

I guess a lot of the problem is legacy stuff as .NET has changed massively in the last two years. I don't think dependencies are as big an issue with PackageReference now (I removed 40 packages from our Android app today), but that required manual intervention on my part.

Not expecting a change here, but it would be great if a little guidance could be issued going forward.

QuantumNightmare commented 6 years ago

Hi Damien,

Most of the packages here target a single type of application. The type of application is included in the name. This includes:

Any that end with ".signed" are just strongly named versions of the other packages.

The last 2 can not be used by themselves. They are dependencies shared by a couple other packages that allow them to be installed into the same application without causing conflictions. These used to be marked as not-listed, but a bug in NuGet at one stage meant that unlisted packages weren't automatically downloaded. The name "Core" here is a bit confusing due to the naming of ".NET Core". One day we may rename this to "Common" and see if we can unlist all versions of that again.

3 of the items in the screenshot are duplicated which further makes this list overwhelming.

Finally The top package - Raygun4Net - supports just about everything else: WPF, WinForms, WinRT, Xamarin, console applications, ASP .NET web apps, WebForms, Windows Phone, Universal Windows Apps, .NET 2.0, 3.5 and 4.x apps.

I hope that helps explain the set of packages. Let us know if you have questions about any of this.

-Jason Fauchelle

DamienDennehy commented 6 years ago

Hi Jason,

Fair point on the duplicated items - I updated the screenshot to fix this issue.

Ok thanks. I'll instruct my team that if all possible, use Raygun4Net on a project, if not fall back to the other packages.

-Damien

QuantumNightmare commented 6 years ago

Hi Damien,

I would recommend thinking about it the other way around. If you're working on one of those types of applications like Mvc or WebApi, then those are the packages you'd want to use. If no such specialized package matches the app you're working on, then use Raygun4Net.

Alternatively, the documentation for Raygun4Net starts off with a list of .NET frameworks. You can find the type of application you're working on in that list, and find that the set up instructions will mention which package to use: https://raygun.com/docs/languages/net

Let me know if you have further questions or thoughts around this.

-Jason Fauchelle

DamienDennehy commented 6 years ago

Happy to close this off, thank you.