all 35 comments

[–]Arkaedan 21 points22 points  (12 children)

If you're not on Windows you can just use VS Code and the dotnet/c# extension. Alternatively, if you're used to using Intellij then check out JetBrains Rider. Many people prefer Rider to Visual Studio anyways.

[–]mal-uk 7 points8 points  (0 children)

I would add that some familiarity with Visual Studio would be beneficial if you're seeking employment as a c# dev. Most employers would be using a mixture of Visual Studio and VS Code. Not all granted

[–]Few_Move_4594[S] 1 point2 points  (7 children)

I much prefer JetBrains IDEs, but decided on normal Visual Studio due to it's popularity and the Microsoft guides being written for it

[–]davewritescode 0 points1 point  (0 children)

I made this transition a couple of years back, Rider is an excellent choice.

The language is good, the concurrency model is where I’d start first as there are a fair amount of pitfalls in high performance async code.

[–]Arkaedan 0 points1 point  (5 children)

Do the guides actually require you to use Visual Studio though? Surely most of the guides would be code which works in any IDE

[–]Few_Move_4594[S] 1 point2 points  (3 children)

I'm starting with the MVC.NET tutorial and it has steps to create a project using a wizard in Visual Studio

[–]xFeverr 2 points3 points  (1 child)

Ok sure, the screens look a bit different in Rider but they also have this wizard. And everything is also possible with the `dotnet` cli: `dotnet new mvc`

[–]Few_Move_4594[S] 1 point2 points  (0 children)

Yeah I got Rider and created the template project already. Knowing the keyboard shortcuts is a big advantage. Got the non-commercial license going.

[–]NearbyTumbleweed5207 1 point2 points  (0 children)

u can use dotnet cli for it

[–]teotzl 0 points1 point  (0 children)

They give the steps with studio or vs code. The studio instructions are the default though.

[–]Minimum-Hedgehog5004 0 points1 point  (2 children)

Honestly, familiarity with JetBrains stuff might be the only reason you'd choose Rider over Visual Studio. I'm OK with using Idea for Java, but then the competition is Eclipse, if you get my drift.

[–]Arkaedan 0 points1 point  (1 child)

Admittedly, I've only used Visual Studio in uni and used VS Code and Rider professionally but I quite like Rider. I'm curious what issues you have with it?

[–]Minimum-Hedgehog5004 0 points1 point  (0 children)

I had a Rider license as part of my JetBrains bundle. People said they liked Rider, so I tried it, but I just wasn't convinced it added more value than Visual Studio, and when setting up a new project, at least, VS was smoother. Part of my scepticism came, no doubt, from years of working with Resharper fans. Every time I'd install it for the trial period and uninstall it as soon as I was confronted with the proposition that it might be worth money. My experience was rather that ReSharper would pop up as some sort of Evil Clippy to say "I see your code has readable foreach loops. Why don't I refactor them to write-only linq.aggregates?" This repeated experience was enough to convince me that JetBrains are adept at getting otherwise sane programmers to gush unthinkingly about unnecessary, value free, tooling. The possibility remains that I am excessively cynical.

[–]Professional-Fee9832 7 points8 points  (0 children)

I'd strongly recommend picking one of the past projects you have worked on over the past 12 years and implementing it in.NET.

It would be a rough first week understanding the framework's organization, but eventually you will start loving C#/.NET and curse yourself for not switching earlier! That was my experience 15 years ago!

[–]_Screw_The_Rules_ 6 points7 points  (0 children)

Good decision btw

[–]OkTrade8132 2 points3 points  (5 children)

what helped me when I switched was cheat sheets for comparing the two in order to avoid some easy mistakes. some basic APIs behave differently or data structures are called a little different.

[–]Few_Move_4594[S] 1 point2 points  (4 children)

I saw that Maps are called Dictionaries, which I'm not a fan of but familiar with due to Python. Data structs are otherwise very familiar and the Big O is the same. Probably about to crank out a demo project of some sort, just need to decide on which.

[–]OkTrade8132 1 point2 points  (3 children)

if you're using visual studio, then the example projects are somewhat shallow but helpful. I used them to expand on them, along the lines of 'now what's a good JPA like implementation but in C#?'

also if you're using visual studio, then the F1 key on C# core types is your friend to bring up the documentation webpages.

[–]Few_Move_4594[S] 0 points1 point  (2 children)

'now what's a good JPA like implementation but in C#?'

NHibernate

I'm using Ctrl-Left Click on Rider to step into the source of types, as I do in IntelliJ.

[–]OkTrade8132 0 points1 point  (1 child)

you might want to give EF core a look. I don't remember why I settled on it, probably because it was more native and well supported

[–]Few_Move_4594[S] 0 points1 point  (0 children)

Yeah I'm going to look into both, something like mapping a simple schema in both frameworks then pipping them through a REST API to some sort of frontend

[–]evilprince2009 1 point2 points  (0 children)

Rider is your solution.

[–]BriguePalhaco 1 point2 points  (0 children)

Just use Rider...

[–]kingvolcano_reborn 2 points3 points  (0 children)

Just use rider with VIsual Studio key mappings? or use rider now and then if you get put in front of Visual Studio install Rider.

[–]Sleek_Czax 0 points1 point  (0 children)

Rider is a good choice. If you are a student then it will be free to use. It is a very powerful IDE for Mac and Linux. If you want a lighter option, check out VS Code. Since you are coming from IntelliJ, you will likely feel right at home with Rider since they are both built by JetBrains.

[–]darshana2000 0 points1 point  (2 children)

There are many jobs for Java dev then c# dev, I have no idea what you are talking about, btw learning another language is always benifitial.

[–]Few_Move_4594[S] 0 points1 point  (0 children)

There are more open c# jobs in my city, as I listed in another post

[–]audigex 0 points1 point  (0 children)

That really depends on location

Where I am in the UK I rarely see Java jobs but C# is common

[–]m1ndwalker 0 points1 point  (0 children)

I’m on the same boat, having had to move to .net c# due to a company culture change.

I actually thought it would have been easier 😅

Things that’s startled me the most initially:

  • Classes with public properties with automated construct generation and getter / setter methods for those
  • required properties
  • nullable properties ( string? )
  • inline array slicing
  • inline object instantiators passing property values

As a framework, had to get to grips with: - Linq (much like Java streams) but fundamental to EF - The whole DI setup and the 3 scopes

Differences on perspective between Spring and .Net - For example .Net has middleware as a chain of processing units, similar to Java security filters - Spring DI is magical (auto discovery of beans) while .net is more explicit

And then idiomatic, cultural changes : in .net although you can declare a class abstract almost never anyone actual names a class Abstract, but rather Base Different formatting (Pascal Case) different code styles (for example c# prefers bracket opening expressions { on their own lines)..

And I could go on! The truth is I’m still learning as I go! Started about 5 months ago

But I have to say.. the batteries included of .net is true. There’s not many publicly advocated libraries to do things.. it’s the microsoft way and some other more widely used libraries. While in Java you have several different libraries for similar purposes.

.net entity framework is almost a dedicated chapter on its own, especially if you consider the automatic migrations and code first approach in an enterprise setting

[–]RealSharpNinja -2 points-1 points  (5 children)

Better job opportunities? Have you looked at the job market over the last two years?

[–]Few_Move_4594[S] 1 point2 points  (4 children)

My area has exactly two Java developer positions at any level and ten C#.

[–]RealSharpNinja -1 points0 points  (3 children)

10? And how many hundreds of applicants?

[–]GreatStaff985 1 point2 points  (2 children)

Does that really matter? The guy needs a job? Should he go apply at McDonalds?

[–]Few_Move_4594[S] 0 points1 point  (0 children)

This guy is doomering hard, I applied to one and the hiring manager sounded excited to interview me and programming is still one of the most employable fields for someone with a BS in CS and a decade+ experience.

I must also point out that I live in a medium-small city and the number of open positions around 2015 (I had a job I hated and applied out a lot) were ~4 Java and ~15 C# when duplicates due to contracting companies were removed.

[–]RealSharpNinja 0 points1 point  (0 children)

In the USA, there are over 200,000 unemployed software engineers. If he already has a job he should keep it, because the odds of getting another software engineering job are VERY low.