My problem with C# server development until recently has been the reliance on visual studio. A lot of configurations need to be done through VS and lead to the creation of config files that cannot be edited or read outside of VS.
And a lot of the “magic” in the .Net server technologies mean that when things go wrong, there’s almost nothing you can do other than raise a ticket with MS, but you end up spending a lot of time and energy trying to figure out what might be wrong before going that route.
Fortunately, both of these issues have been resolved with the open source .Net Core, and while we continue to use .Net Framework, I’m looking forward to doing more .Net Core development going forward.
>My problem with C# server development until recently has been the reliance on visual studio.
TBH there are very few IDEs or environments that match Visual Studio. If you've never used it, of course you'll be less productive.
>A lot of configurations need to be done through VS and lead to the creation of config files that cannot be edited or read outside of VS.
Project and solution files have been XML for a long while. I think the example here would be early UI work with WinForms and WPF? But everyone would think you're crazy to edit those text-only when you had a WYSIWYG editor.
>And a lot of the “magic” in the .Net server technologies mean that when things go wrong, there’s almost nothing you can do other than raise a ticket with MS
>Fortunately, both of these issues have been resolved with the open source .Net Core
If there's an issue with Kestrel, I think you'll still be spending a long amount of time debugging that. I don't think much has changed on that front.
I ran the tech team at a startup around 2014 and we had a C# stack with almost no visual studio. Most people were on mac or Linux and used MonoDevelop. We ran it on Mono in docker containers (which was brand new those days) on Linux VPSes.
Truth is, for a long time already, C# has been a decent boring cross-platform language. The only reason people refused to use it was hype and stigma. There was no deep rational reason.
Sure, mono was slower than .net-on-windows at the time (.net core fixed this), but it was still way faster than the then-default Rails setup.
Whenever I told people about our setup at eg tech events they got very confused. Some dismissed me as a moron but to be honest most people were just surprised you could run a cross platform C# devteam and deploy to Linux. People simply didn't seem to know this was possible. That's been some pretty bad marketing in Microsoft's part.
And a lot of the “magic” in the .Net server technologies mean that when things go wrong, there’s almost nothing you can do other than raise a ticket with MS, but you end up spending a lot of time and energy trying to figure out what might be wrong before going that route.
Fortunately, both of these issues have been resolved with the open source .Net Core, and while we continue to use .Net Framework, I’m looking forward to doing more .Net Core development going forward.