Setting Up .NET Core on RHEL
developers.redhat.com
developers.redhat.com
It seems that the product is beginning to turn into .NET 5 (Core) instead of the original intentions of leaving behind the legacy chains.
Between the switch back to MSBuild, RC# breaking changes and the promise of even more breaking changes post-release, I've become a little disheartened.
Change in itself isn't bad, but .NET Core was supposed to be about open communication, and the later changes were never discussed within the actual community, instead it was decided by MS alone.
Hell, in this article, it took multiple attempts to get it configured when its in the release-candidate stage. No idea where this was going it was more of a rant than anything apologies for anyone who actually read it.
It was made for tools, not to be written by hand.
I think that the hate usually comes from the PDP-11 programming crowd, whose only tools are the CLI and an editor.
Yeah, like it has been with .NET development on platforms where Visual Studio doesn't exist (read: all of them except Windows).
"should be" is a very different creature from "is", and is also very different from "will be".
> the hate usually comes from the PDP-11 programming crowd, whose only tools are the CLI and an editor.
Also known as "the every other platform except Windows" crowd, which apparently is substantial enough that even the one outlier -- Microsoft -- finally is trying to move in line with the rest of the world by allowing Bash and Linux tools in Windows 10.
You can be dismissive all you want, but that doesn't change the reality that CLI+editors are modern development (see also: almost every new language's ecosystem pivoting on CLI tooling and editor plugins), not the past.
I am yet to see iDevices and Android developers being PDP-11 devs or guys doing development on our Fortune 500 customers, regardless of the customer OS.
But enough empty hot-air "name-dropping"; just cool your bluster, dude. You don't have to get all "look at me I'm better than you, I have all the best words, great words like 'Fortune 500'" just because you don't like CLIs.
...but people too often end up needing to read or write it by hand. That's the problem with XML. (Well, the other problem is that there is lots of data for which you'd want tooling for which a text-based markup format isn't ideal in the first place.)
Compare Maven's pom.xml with a MSBuild file. Both XML, both verbose, but other than that, radically different.
I think a lot of people's issues with MSBuild are more to do with how Visual Studio uses MSBuild than with MSBuild itself. MSBuild has just about always supported wildcards and deeper incremental and partial build support, but Visual Studio hasn't. A lot of the hoops in hand-crafting an MSBuild file are there mostly if you want to make sure that Visual Studio can open the file...
As a result the new solution must also cater to the new recruits they're trying to draw. I doubt many of those would like MSBuild, since it's not even liked by existing .NET devs :)
I personally don't care much if it's XML or json, I just want it to be simpler and easier to use. And the RC1 demos of adding nuget packages by typing 1 readable line into project.json certainly where that.
[1] The default tortoise-svn merge tool (it's name I can't remember having switched to kdiff) is particularly horrid sometimes.
Let me assure you, that yes people do. Sometimes that's the only option to getting the build working like you want/need to.
Csproj-files are more or less Turing complete, so you can do lots and lots of things that the standard GUI tools will never permit you to.
Sometimes yes, a targeted intervention into the .csproj file is the best/only way.
My organization for example used to be all PHP and JavaScript. This whole "static language" thing is new to them. They tried C# and thought it was the greatest thing since sliced bread, (along with Go). So they heard about Microsoft going "open source" and decided to give it a spin. Now with the 'boiling the ocean' article ringing true for many, people are starting to get some heartburn about having to get in bed with Microsoft.
I stand over in the corner and raise my hand occasionally and say, "How about Java?" every now and then.
Microsoft can fix their platform issues but Java the language can't really be meaningfully improved. So, in my opinion, it's still Microsoft's game to win or lose.
For example getting back to an environment that uses MSBuild and Visual Studio for builds, dependency management, continuous integration and whatnot, after having used Maven, SBT, Leiningen and their ilk, feels like going back to the nineties. Even worse, your IDE of choice needs plugins to have working refactoring and it still can't handle automatic downloading of source code for third party dependencies, but at the same time manages to be bloated, and you still consider it the best IDE ever.
I also think .NET developers get too fixated on Java the language. We've got Netty, Apache Spark, Hadoop and Cassandra and we've got Clojure, Scala, JRuby and Groovy.
In other words a big ecosystem powered by what proved to be a multi language runtime not just in marketing brochures.
If you're already well into it all, then one more thing is just one more thing.
Depending on how hard you look that is true for every language driven by open source: case and point is Javascript front end frameworks (Now the dust is settling a bit, and there seems to be Angular2/React/Ember, both with varying levels of overlap) Competition is a good thing. Choices are a good thing. What eventually happens is larger frameworks eventually emerge as winners, and absorb the good ideas out of the smaller frameworks. Spring Boot is an example of this.
> The solution to every Java problem is just more: more tools, more syntax, more languages.
That's the solution for 'Enterprise Consultants/Architects' maybe, but we normal java programmers just favor simple tools and jars these days. For example, I would roll over dead before I had to use Spring again, but I would much rather use some simple jars to stitch together an API like Jackson and Jersey, at worse, using something minimal like Dropwizard.
There are issues on github where they are working through various designs; people are giving feedback, they are listening to them, iterating, improving - they written blogs about why, again taking feedback responding etc
So that's pretty early community on-boarding - its not like they have already designed and implemented it without consultation and did a surprise change - its still in an open design phase.
From one of the end comments:
> If you want to work out how it should be made and be in the design team that talks about it... please do. [Link to MS Career Page]
Making it easier to port to .NET Core https://blogs.msdn.microsoft.com/dotnet/2016/05/27/making-it...
Changes to Project.json https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-t...
Scott Hunter, Damain Edwards and Jon Galloway recently did a live community standup video about them https://youtu.be/YJsQ3tnS7Ew?t=10m39s
Its OSS, nothing stopping you...
My company often does the same with things like refactoring or source control strategy. Good people are needed for project work so some intern gets to do a massive refactoring with bad results.
Maybe I am too old for it, when I was 12 I had time to put linux on my pentium 100 then switch processor to amd and wonder that it worked becuase motherbord was still designed for "pentium" but now I just need stuff to work.
So I am not going to spend time on RC and convince my boss that this is latest shiny thing we should do our big project in. Just like the guy from boiling ocean...
At that point, you could develop on Windows or Mac, but at some point you will have to get acquainted with Linux.
For servers Linux is at least as nice if not nicer than Windows. Just don't start tinkering like you did when you were 12 :)
But sorry, I'm just unwinding a bit on HN, after work.
I actually don't have a primary OS anymore because with c9 I can have a sane env over https.
I'd consider "Windows" to be a family of related operating systems (but usually referring to the "Windows NT" OS). "Linux" as well, using the name of the kernel to refer to a family of different OSes built on top of it (while excluding others, in its common use).
They have a ridiculous installation script with hardcoded distros in it instead of simple packages or hell, even an AppImage.
I guess what I am trying to say is that our experience with different systems impacts how productive we are with them.
I just install what I think of as standard dev tools. I guess they are not standard on Windows. Hence my pain... I pretty much would have to install cygwin to get something I'd be close to comfortable working with -- at which point a virtual machine is just easier (and then I can install the same OS as on the server I'm deploying on anyway).
Whereas I guess for you .NET core is a standard thing and it is (still) not a standard thing on Linux. Hence your pain.
Also, IME almost every new language targets Linux/Unix before it targets Windows unless it's some proprietary language/made by Microsoft. Example: for a long time you couldn't even get 64bit versions of Rust for Windows while they were available on other platforms for a while.
It's getting harder to deny: Even MS has added a Linux ABI to attract developers (I'm not interested though). Lots of people on Windows (and OS X) even go through the trouble of running Linux virtual machines just for a dev environment.
Then I give up, because I am not going to fiddle with it for hours just to find out that package from PPA does not work becaue I have not copied it to correct directory and I have not changed permissions to correct ones.
Ok I can setup ftp/http/ssh on linux server with apt-get and changing configs, no problem. But If I have to add some aditional stuff it gets messy very quick.
>the thing for me with linux, you do it three times to get anything running
Meanwhile, I just spent a few hours editing reg keys and firewall rules to enable a Windows Jenkins worker when it takes about 30 seconds to add a Linux worker via SSH.
We have six production nodes sitting behind a load balancer at three sites. That's 18 total nodes, all of which we're paying to run on Windows Server.
If we could run these 18 nodes on Linux, even with the associated support contract, we could see significant savings. All of this is a drop in the ocean compared to our database costs (we're using a massive Oracle database) but the savings could be enough for an extra employee.
You can argue the pros/cons of .Net in general, but we find it allows us fairly good productivity. We've also moved a lot of front-end logic into HTML/JS/CSS so if we ever moved platforms we aren't as tied, but right now MVC/EF is working fine.
I look at the two, and all I see is lots more brackets in C#. Maybe the syntax for lambda expressions is better? In fact, this write up (https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visu...) seems to favor VB. Can someone enlighten me?
VB.NET is a C# skin. VB6 was an excellent productive environment, whose problems were the Basic language and its warts, and the community of which a significant percentage were clueless.
People who hate VB.NET hate it because it's basically a needlessly verbose skin of C#. People who hate VB6 hate it because they hated it 10 years ago when it was still dying (and they don't even remember why). The bottom line is that today no one actually likes either VB environment.
With Anders being one of the main architects of C# and thanks to Borland's mismanagement, it kind of took Delphi's place on that equation.
C# is definitely the more popular language, so there's no reason to waste time on VB. Nearly every open source project, sample code on stack overflow, etc will be in C#.
First post: rant about some perceived slight by MS. Response to first post: yeah, that's what they do. They killed this thing I loved after I used it for a while.
Some other post: Embrace Extend Extinguish.
One small post: I think its ok! <- down vote down vote down vote...no such thing as group think here!
You guys are so negative.
and then the C# devs rightfully laugh at that idea.
But technically Java is one of the more favorable languages we have out there in the world. Go look at tooling like Scala, Maven, how easy it is to get something running on a *nix box.
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } }
public class HelloWorld { public static void Main() { System.Console.WriteLine("Hello, World!"); } }
I also hear the "faster" argument, but have yet to see any meaningful benchmarks proving this. In fact I see more showing the opposite, but maybe I am not looking hard enough?
Your point about the difference between the languages is definitely true re: Java 6. Java stagnated for a few years there while C# was improving with things I'd actually use. Java 8 is definitely an improvement and ultimately I think it would boil down to ease of use and familiarity when comparing them.
One thing I don't miss about java is server configuration. At the same time, I'm definitely relying on IIS doing things behind the scenes I probably don't know about.
Also, I know this is nitpicky, but having to press CTRL+K, CTRL+C, then CTRL+K,CTRL+U to comment/uncomment just feels obscene to me. I understand you can modify the shortcuts, and I am being petty, but CTRL or CMD+/ toggle comments off/on just feels much better, and that's probably one of the most used ones for me which is why I am probably nitpicking about it.
For the latter, that's more runtime than language, for which Mono and .Net Core cover for reliably running on *nix.
Full disclosure: I'm one of those hippies that believes Java's/C#'s model of OOP is the 3rd biggest cancer in this industry, with 1st and 2nd being Oracle and Microsoft. I hope that makes it very clear that I don't exactly like either language, but I do believe C# to be a clear improvement over Java.
The parent comment was fine because it went into detail about specific experiences. But a reply like this is just kindling for flamewars, and we don't want those on HN.
We detached this subthread from https://news.ycombinator.com/item?id=11830868 and marked it off-topic.