Click here to Skip to main content
15,889,266 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: if vs. if and only if (iff) Pin
obermd19-Feb-21 3:22
obermd19-Feb-21 3:22 
RantWhen your justification for not using Tasks is people use Delphi and also you don't understand Tasks Pin
honey the codewitch18-Feb-21 2:29
mvahoney the codewitch18-Feb-21 2:29 
GeneralRe: When your justification for not using Tasks is people use Delphi and also you don't understand Tasks Pin
Dan Neely18-Feb-21 3:17
Dan Neely18-Feb-21 3:17 
GeneralRe: When your justification for not using Tasks is people use Delphi and also you don't understand Tasks Pin
honey the codewitch18-Feb-21 3:19
mvahoney the codewitch18-Feb-21 3:19 
GeneralRe: When your justification for not using Tasks is people use Delphi and also you don't understand Tasks Pin
Jörgen Andersson18-Feb-21 4:10
professionalJörgen Andersson18-Feb-21 4:10 
GeneralRe: When your justification for not using Tasks is people use Delphi and also you don't understand Tasks Pin
honey the codewitch18-Feb-21 4:15
mvahoney the codewitch18-Feb-21 4:15 
GeneralRe: When your justification for not using Tasks is people use Delphi and also you don't understand Tasks Pin
Jörgen Andersson18-Feb-21 4:16
professionalJörgen Andersson18-Feb-21 4:16 
GeneralNuGet is like a virus at times Pin
Marc Clifton18-Feb-21 1:13
mvaMarc Clifton18-Feb-21 1:13 
For small, well written packages, it's fine.

But the latest horror story is that I installed Quartz against my better judgement, to test it out. Quartz is a general purpose "job runner" and my first warning sign was that it was ported from Java.

Rule #1: Never install any package ported from Java.

The next thing I discovered is that whoever maintains Quartz decided that every single API method should be async, including initialization. Which, because I'm not calling the initialization from an awaitable method, meant I had to wrap the call in a Task(async () => initialize) call. WTF.

What made this worse was that the examples I found online were all written before this atrocity, so I had no idea what I was getting into.

Rule #2: Never trust online documentation, even the documentation provided by the package.

Furthermore, finding anything useful about why I have to do things "the Quartz way" was completely absent. Of course, the main reason for that is because it's a Java port.

Rule #3: If you can't find good examples explaining "why" in the package's online documentation, run.

Ultimately, yes, it worked. Seemed to work quite well. My coworker, who was pushing to use it (he loves packages rather than rolling-your-own) liked some of the features, but neither of us could figure out how to use those features, like error reporting / handling.

Rule #4: If it isn't obvious, it isn't worth it.

In the back of my mind, I kept wondering why I'm adding a package to our already bloated project that consists of thousands and thousands of lines of code, for 99% of features that I won't be using and can't figure out how to use, instead of writing my own KISS CRON job processor in about 200 lines of code, and one that is tailored to what I need in terms of querying what it thinks it should be doing, error handling, testing, etc. I'll post an article, BTW.

Rule #5: The KISS principle should be the first consideration when evaluating a package.

Which gets me to my point.

After making the command decision to ditch it, I uninstalled the package.

Unbeknownst to me, the NuGet package did not cleanly revert. I should have simply rolled back the entire set of commits to the branch. Stupid me. Instead, it left breadcrumbs in a config file that included various .NET framework packages, the most scary of which included a DLL for running unsafe code.

WTF does Quartz need to use unsafe code for?

Anyways, while everything worked fine on our development server, without my realizing what was going on with the config file, on the production server, the app blew up -- wouldn't even start. This was really my bad. I didn't realize (lack of inspecting the change logs) coupled with my own failure to not roll back but instead trust the NuGet uninstall process, that our production build was doing something (still don't know what) that was causing the runtime loader to fail. Possibly flags disallowing anything having to do with unsafe code. Possibly missing framework DLL versions that config was expecting specific version of. .NET did not fix DLL hell.

So between my errors, and NuGet package "management", and Quartz being bloatware, it's what Kirk says about Klingons: "I don't trust them and never will."

PraiseRe: NuGet is like a virus at times Pin
RickZeeland18-Feb-21 1:37
mveRickZeeland18-Feb-21 1:37 
GeneralRe: NuGet is like a virus at times Pin
F-ES Sitecore18-Feb-21 3:48
professionalF-ES Sitecore18-Feb-21 3:48 
PraiseRe: NuGet is like a virus at times Pin
RickZeeland18-Feb-21 7:40
mveRickZeeland18-Feb-21 7:40 
GeneralRe: NuGet is like a virus at times Pin
F-ES Sitecore19-Feb-21 1:49
professionalF-ES Sitecore19-Feb-21 1:49 
GeneralRe: NuGet is like a virus at times Pin
markrlondon21-Feb-21 16:28
markrlondon21-Feb-21 16:28 
GeneralIs it more difficult to find work as an older developer? Pin
Jacquers18-Feb-21 0:58
Jacquers18-Feb-21 0:58 
GeneralRe: Is it more difficult to find work as an older developer? PinPopular
OriginalGriff18-Feb-21 1:06
mveOriginalGriff18-Feb-21 1:06 
GeneralRe: Is it more difficult to find work as an older developer? Pin
Jacquers18-Feb-21 1:13
Jacquers18-Feb-21 1:13 
GeneralRe: Is it more difficult to find work as an older developer? Pin
sasadler19-Feb-21 6:14
sasadler19-Feb-21 6:14 
GeneralRe: Is it more difficult to find work as an older developer? Pin
Slacker00718-Feb-21 1:14
professionalSlacker00718-Feb-21 1:14 
JokeRe: Is it more difficult to find work as an older developer? Pin
Jacquers18-Feb-21 1:21
Jacquers18-Feb-21 1:21 
GeneralRe: Is it more difficult to find work as an older developer? Pin
Mircea Neacsu18-Feb-21 1:54
Mircea Neacsu18-Feb-21 1:54 
GeneralRe: Is it more difficult to find work as an older developer? Pin
Richard MacCutchan18-Feb-21 3:22
mveRichard MacCutchan18-Feb-21 3:22 
GeneralRe: Is it more difficult to find work as an older developer? Pin
Slacker00718-Feb-21 3:44
professionalSlacker00718-Feb-21 3:44 
GeneralRe: Is it more difficult to find work as an older developer? Pin
Matthew Dennis18-Feb-21 3:49
sysadminMatthew Dennis18-Feb-21 3:49 
GeneralRe: Is it more difficult to find work as an older developer? Pin
Richard MacCutchan18-Feb-21 3:51
mveRichard MacCutchan18-Feb-21 3:51 
GeneralRe: Is it more difficult to find work as an older developer? Pin
Slacker00718-Feb-21 4:26
professionalSlacker00718-Feb-21 4:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.