I just read visual studio isn’t available under linux. I guess that is some weight we are carrying from the past.
Now VS Code is a thing, right… but it’s written in javascript/typescript and isn’t it a bit sluggish sometimes? As well missing features… I prefer a different IDE personally.
What are your subjective thoughts and experiences? Windows the way to go? It would make sense right, c# and friends are all microsoft.
Bonus: do you run the final app under windows server too?
IDE-wise, I’d recommend JetBrains Rider. I’ve got it and it’s really great (apart from the odd plugin error because the plugin dev was lazy). It’s honestly a.lot better than visual studio, and a hell of a lot smaller
You can use linux as well as windows, because netcore is multiplatform and I do believe that new NET 5 has even broader support. Regarding VS code, it is really fast I don’t mainly use it for development as I have more mature IDEs, but VS code never let me down as an amazing text editor, with good highlighting and can substitute an Full size IDE if you take your time to configure it. And for a final question, I run my apps under windows server as well as linux, so no problem there
I’m on Windows with Visual Studio professional license from my company, yet I still mostly use VS Code for .NET Core. It’s nowhere slow, and I just like its overall feel much better.
Linux server in prod for sure, unless it’s legacy app that we haven’t got around to convert.
vscode performs fine. the c# plugin provides a pretty good ide experience. there is also jetbrains.
This is really hard right now. Supposedly in late 2021 it is going to get easier, but realistically speaking for Linux it’s going to be 2022 at the earliest before MS might have an answer. Here’s why.
WinForms, WPF, UWP, and Xamarin Forms are the MS-supported GUI frameworks for C#. WinForms, WPF, and UWP only work on Windows, only have designer support for Windows, and might work in Linux using solutions like Wine but MS is not committed to making that so. Xamarin Forms, on the other hand, wants to support Linux but won’t until the MAUI timeframe, which is 2021 if we’re optimistic. That gives Linux “community support” which means if Linux people implement all of MAUI and submit a PR then you’ll have it. I wouldn’t hold my breath. MS has been promising Mac support since 2018 and hasn’t managed to finish it yet. Even if MAUI works on Linux, VSCode is not committed to a good GUI designer experience like Winforms. This is not as important for a XAML framework, but is a factor to consider.
The third-party GUI frameworks for C# include AvaloniaUI and Uno. From what I gather they already work, though again in VSCode you sacrifice designer capabilities (but many people don’t need it). Microsoft isn’t interested in going out of their way to make these things work, but the people who work on them are. That’s more support than MAUI has right now and that’s worth considering.
Then we have to consider ideas in left-field. For example, Electron is a JS framework that uses HTML/JS on the frontend and a backend JS server with a handful of extensions for making communication between the two easier than the normal JS AJAX API. It’s really popular, so popular MS uses it for Teams and Skype instead of any C# framework. MS is making subtle moves with Blazor, an ASP .NET Framework, that suggest maybe we could use Blazor to make Electron-style applications that use C# instead of JS all the way through. They even threw away their entire IE investment to use Chromium as the frontend for it.
That makes a real pickle, and “a hot mess” is a great way to describe trying to figure out how to work with Microsoft for the last few years. I have a lot of money in my hands, but I have to bet on one thing. Microsoft, instead, likes to put two vastly different things in an arena, throws one sword into the mix, and promises “the one that wins gets to fight a new framework next year”. WPF died to Silverlight. Silverlight died to Electron apps. MS pretended Electron didn’t exist and asked people to write Windows-only JS apps. That didn’t work so they proposed Windows-only MWAs. They couldn’t pay people to write them so they proposed Windows-only UWP. They can’t pay people to write UWP so they’re proposing MAUI. It’s equal odds if they’ll abandon MAUI in 2022 in favor of some new framework, abandon MAUI and promote Blazor, or just abandon them both and ask everyone to write Native apps on every platform. They don’t give a flip because too many companies HAVE to renew several thousand Windows/Office licenses every year for MS to ever lose money. Their opinion is “screw you for supporting Linux, cry about it as you renew your MS licenses”.
This isn’t a question. MS spent the effort 5-6 years ago to break the dependency between ASP and IIS, and they even released a Linux-compatible MSSQL. The entire reason they bothered with VSCode was to create a capable IDE for ASP .NET projects on non-Windows platforms. They finally realized after a couple of decades they can’t make Windows servers as cheap as “free”, so they’re hoping to at least sell you MSDN licenses or Azure instances if you think you don’t need to buy Windows Server licenses.
From what I gather, most people are happy with this. I will defer to people who do more ASP .NET than me, but in the few situations where I’ve done it I found VSCode as adequate as Visual Studio. VS is good at formatting C# code. Nobody at Microsoft has ever used VS for working with XML or HTML, and it takes less than 3 minutes using it to have enough experience for a 3-page essay as proof. You’ll be lucky if it doesn’t crash in that 3 minutes, I personally can’t open an XML designer without crashing within 45 seconds.
VSCode is pretty good at editing XML/HTML, so it’s worth MORE in this case than Visual Studio.
I’m mostly a Xamarin Forms developer. The last time I tried to evaluate Rider, it was unable to build Xamarin Forms projects without a downgrade that required special JetBrains licensing, and JetBrains only committed to fixing it ‘some time this quarter’. My team had concerns about a tool so not-devoted to dealing with fatal errors, so I was unable to convince management to buy it. Thus, I don’t have a lot of experience with it. Maybe people who use Rider are really happy. I was, when it worked. But apparently “you can’t build for four months” is just part of their MO. (This is particularly sticky on Mobile, where maybe the reason I need new support is there’s a new Android or iOS and a VIP customer wants to use it. I can’t tell them “wait a quarter and ask again”. I need it to work while the new OS is in beta. Rider’s opinion was, “Well maybe you should use React Native and a different IDE lol”. Great business model.)
VS Code is a perfectly good candidate for developing C# under Linux.
Just like u/EnrichSilen said, take the time to configure it properly.
As for the bonus. I personally develop under Windows with Visual Studio and run non .NET Framework applications under linux (Both .NET Core 3.1 and .NET 5)
Use whatever os you want it does not matter. I would recommend to checkout rider IDE. It’s miles better than VS and also cross platform.
Personally I would avoid windows servers like a plague. It’s pricy and does not give much advantage over linux servers that are free. A lot of things are way easier to do in linuxes if you know you way around bash IMO.
C# devs
null reference exceptions