The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
I've only just recently started using Newtonsoft for JSON. I assumed there was probably another way to get it besides NuGet, but I haven't had the time to research alternatives. Can you take a moment to describe your workflow in this regard?
Recently though, I'm keep getting stuffed by conflicts, bugs and wierdities.
Recently? I've never had NuGet behave properly. And that BS about changing something in some config file to override the version number, well, it's just that, BS.
If I can, I compile the source directly and add to my project the necessary DLL's. This is often fraught with problems, as people can't seem to provide source code that actually compiles, or doesn't compile with the .NET framework that I'm using, or doesn't provide a SLN file, or has all sorts of project kruft that I don't need or care about.
Failing #1 (happens often enough) I create a separate project, do the PM NuGet BS, grab the DLL's from the appropriate .NET version folders, put them in a "Libs" folder that my real project then references, and delete the temporary project.
And the very elephanting last thing I need/want is for some package to update itself, breaking code, breaking other dependencies, etc.
One problem with NuGet is Visual Studio itself. It assumes you will organize everything at the solution level, so if you're working with a code base with multiple solutions, there are package folders littered everywhere!
Then there are out and out bugs in MSVS. Try centralizing your downloaded packages into one package folder and it all starts going south...
Anyway I've done pretty much what Marc describes above.
I create a ThirdParty solution that I use to download all NuGet packages I want to use. They all get downloaded into the ThirdParty solution's package folder, where literally everything in the package folder gets put into source control.
This pattern allows me to download and keep multiple versions of the same NuGet package so that legacy applications are able to use an older version if, for some reason, it is withdrawn.
From there, any other solutions that want to use a NuGet package will simply use a file reference for the dll directly from the ThirdParty package folder.
Source code from other vendors are included as projects to the ThirdParty solution and again those libraries can be referenced from a solution as a file reference.
Another thing you might want to consider is taking the specific packages you want your project(s) to use, and building your own custom NuGet feed with them. Granted, it's a bit of a hassle, but at least you'll have full control of the packages.
Thinking back to how MicroSoft would build the O/S and take the COMPUTER and save it in a vault, in case they had to go back and change anything.... Because... Well... Managing changing environments, and recompiling to get the same result was NEXT TO IMPOSSIBLE...
Now, we have IDEs (and plugins) that depend on the same code that they are likely to use, such that changing one of the DLLs you are working with runs the risk of breaking either the IDE or the code you need.
Then generating a Cross Product (times multiple packages) to increase that risk.
So... The answer is a tool to make adding more packages EASIER...
Suddenly: Doing the same thing, over and over, and expecting a different result comes to mind...
I (and the company I work for) was late to package management, and even now we avoid it where possible, but some Nuget packages have crept in out of necessity. When I first started with it about 2-3 years ago, it worked flawlessly every time for me (though admittedly our usage was light).
Unfortunately it seems to have been broken and then gotten worse with every iteration released since then. I really don't know why. I had a problem the other day where a project showed a broken reference, but Nuget insisted the package was installed ok. Checking the csproj file showed it was referencing version 9.x.x.x of a package, but the packages folder contained only 8.x.x.x. No amount of cajoling would convince Nuget that it needed to download the new version even though VS knew the reference was broken. Only thing that worked was forcing a reinstall of the package.
Having said that not all problems are caused by Nuget itself. Strong named packages are evil - we have some solutions that have a mix of .Net 4 and .Net 4.5 projects in them that all reference the same package (don't ask). All the assemblies ship and run together and it all works fine until you get strong named package and you can't reference the newer version from the .Net 4 projects. Then you're in a world of pain trying to manage the dependencies.
On top of that, at least one of the Microsoft provided Azure packages decided it would be a good idea to rename an entire namespace (or move types to another namespace at the very least), so upgrading from version X to version Y is breaking at the source level with no explanation or release note to say so.
When it works I prefer it to downloading and running installers, then having to manually locate the right assemblies (are they in the gac? in a folder? which folder? somewhere under program files or program files x86? what was the company name again?) etc. Especially nice when you don't have to do this on build servers. Sadly the experience is so broken we do everything we can to avoid it now.
Really the only thing I want from Nuget is for the package restore to work properly, i.e I add a package to a project and check in, my colleague gets latest and builds, and the package is downloaded and referenced correctly on their PC. We've had zero success with this in the last year or so. It's always broken and people are always checking in csproj changes just to fix references/broken reference paths. I really don't get why since it used to work.
Haven't tried Paket - sort of appealing, but I'm led to believe it lacks a GUI so it's a non-starter for some of my colleagues (and I prefer the GUI myself anyway).
Last night, my son was taking an online test for a summer college course (on his Win10 machine) when his machine suddenly rebooted.
The machine finally came back up and the disk I/O was at 100%.
He couldn't do anything.
Microsoft antimalware exe was going crazy. He has Norton AV also so he doesn't have a (known) virus.
We tried to kill everything -- just to get back into the test which is timed. The 100% I/O persisted as we killed tasks but you can't really kill the antimalware exe which was eating up I/O like crazy.
We will simply have to upgrade him to an SSD now too.
Such a crazy h/w upgrade path that Microsoft seems to be enforcing.
I've had MS anti-malware process running for a few days now, sucking up 30% of my CPU. And that's with SSD's. When I try to kill the process, I get "access denied."
Followed the instructions here and rebooted, which fixed it, then Windows Imaging something or other fired up and started consuming 10% of the CPU, but fortunately was able to kill that. This stuff is ridiculous.[/edit]
I thought the same thing, but the built-in antimalware on Win10 cannot be removed that I know of.
Normally, the Norton install and the OS takes care of that.
If you check out my article, you will see that there is definitely seems to be something up with Win10.
Thanks for the input.
Removed, probably not, but it should the smarts to disable itself when it sees you're installing an alternative AV. Or rather, Norton should be registering itself as an AV so Defender should disable itself.
Try removing Norton, then reinstalling it. I'd say something didn't get triggered properly the first time around, and Defender is too dumb to realize it.
You cannot rule the possibility out of being infected by a known virus, even if you install all the major products. There is also no known anti-virus that claims a 100% detection-rate.
It is an important point to make, since some companies "expect" that they are completely safe when a virus-scanner is installed. It's like using a condom; safer then no lubber, but not a guarantee.
FWIW, even my parents laptops are running without a scanner; they don't open any email-attachments, and while they can download crap, they can't execute it. Never had any problems, and still running with their original Vista installation
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
I think if the developers were forced to use the code they've written, it would be a different world. Force all Microsoft developers to use Windows 10 and see what happens when THEIR machine reboots at will.
Talking of forced updates, has anyone experienced this?
Busy writing document/coding/browsing/whatever when machine stops responding completely. No mouse, no keyboard. Only way out is to restart it. Then loads of updates are installed, sometimes taking more than half an hour to complete.
This has happened to me on two desktop pcs and three laptops, all running WinX (pro and home).
It's an incredibly irritating behaviour especially when trying to book a flight or complete an order online.
This has never happened to my Linux box...
We're philosophical about power outages here. A.C. come, A.C. go.
This has happened to me, my wife and my son on Win10.
My wife was in the middle of paying a bill, had just clicked the submit button -- perfect timing, Microsoft!!!
I've had the issue a couple of times in the past.
It's absolutely terrible.
My wife, a non-tech user, has asked, "why does Microsoft believe they are allowed to do this without warning me?"
That's the 64 dollar question.
That's what baffled me. It was an independent association. It did not need to touch the DB at all. After waiting for half an hour or so, I see it had checked out and deleted everything under context. It did not create anything new. So, I was left with one EDMX file and plenty of errors in data access project as none of class files were present.
At that point, I left for home. I don't understand why are these things (burn in hell all you fancy JS libraries) popular. They are taking away my control from my code and my database. How can it be good?
Note: Now before you point that I am using .Net and I anyways have less control than C or C++, I know that and .Net framework just works unlike these things.
This song is a big band jazz piece in a Latin-infused hard bop style with a rhythm section that combines a double bass and bongo drums and also has an extensive alto saxophone solo.
Thus spoke Wikipedia, I'm not that knowledgeable about jazz
Anyway, it's the intro music to Cowboy Bebop, a legendary (and in my opinion overrated) Japanese anime series.
Overrated or not, the series got me hooked (unfortunately it's only 28 episodes).
I finished the series, but I'll be listening to the soundtrack for some time to come