I was on the Windows platform for 15 years and moved over to Linux about 6 years ago. One thing I miss from Windows Server is that it was very stable, updates never broke anything. If you got any updates that is.
I think most people use Windows server because they are locked into Microsoft technology.
I switched to Linux, and most importantly open source technology - in order to get out of the Windows ecosystem. I switched from an ASP stack to Node.JS, but it feels Microsoft is still stalking me, buying NPM, Github, releasing their own JavaScript flavor, releasing their own "open source" software bundled with proprietary add-ons, meanwhile suing Linux users for patent breach.
Similarly, I ran away from the Microsoft world because everyone was just 'drinking the koolaid'. I got out, into Python and django, and the problem was similar: everyone was drinking just a different koolaid.
ASP.NET MVC C# with EF has got to be one of the most solid web frameworks I've ever used. Open-source fanatics refuse to listen about why it's great... even though it's open source now.
I think I've kinda protected myself from that by working across multiple operating systems and different stacks. I think a lot of devs would do well to try different frameworks, different ways of programming (myself included).
I think EF might get a bad rap because it's pretty closely tied to MS SQL Server - and if you don't know exactly what you're doing it will write some pretty hideous queries for you.
Should give Dapper a try, much cleaner imho... Though one of the projects I'm on is no abstraction at all.. most of the calls are via sprocs and using JSON for data input/output from the db directly.
edit: by no abstraction, we have like 4 db methods that have a different generic type interface, but that's it across hundreds of different SP calls at the API later.
I've been an exclusive Microsoft developer since 1996. I still develop on a Windows computer to this day, mostly Node, Python, and C# .Net Core. and had no problems deploying everything on Windows servers. Then I discovered the cloud and moved into positions where the cost of infrastructure could easily be assigned to my implementations and I had to answer for the cost.
Once you add Windows to any implementation a few things happen. You pay more for licensing, you pay a lot more for resources (you can do a lot with 128MB/0.25 vCPU VM with Linux), and it is a much slower for VMs to scale in and out for elastic workloads like bringing instances up and down based on queue length.
I tried Windows server a while back for a need but it felt like a bad joke compared to Linux when the RDP one day stopped responding for no reason (had a few occasions of it) and I couldn't do anything but reboot killing the GUI app that was running in it.
On Linux l, I never had a problem with ssh unless I made a mistake in network configuration and doesn't suddenly block my access like that.
Windows also takes larger amount of resources compared to Linux and running a 1GB memory instance meant it could run out of memory anytime freezing the whole experience without doing much of anything on it. Not sure why 1GB instance even exists as it's quite useless.
I feel like I'm doing a job inside ssh session but feels I'm being dragged down with mouse click achieving very little per second. On Linux, automation can be done anyway you like but on Windows, that's just not the way it's meant to be with random GUI apps. No idea how to back up configs of those or invoke actions programmatically.
I went for a while of bumping into lots of job opportuntities using the Microsoft stack, and thought perhaps it would be good for my career to learn a bit.
But the barrier to entry seemed so high at the time - you needed MSDN subscriptions, paid IDEs, and paid servers. All out of my reach as a self taught junior developer.
I don't know how or where everyone learnt it all, except as graduate developers at BigCorp?
Most Microsoft technology is completely free for non professionals. PC came with a Windows CD or the OS was per-installed already. You could install IIS (ASP server, l.limited to 5 users) from the Windows CD. I used the classic notepad.exe to code. It was kinda standard to buy the Office package, which came with a file based database. There where plenty of free tutorials on the web, and IIS also had some examples. And there where services that would host your web app for free.
If you wanted to do "real" programming you had to buy books and a compiler which was super expensive.
Moving to Linux was a new world opening, that I had only seen glimpses of before. Using apt-get to install an app was mind blowing. Getting used to the command line took a while, but now I do everything from the terminal, except some GUI apps and the browser. Still have to look up most commands and read man pages though.
I think my experience might have been crippled a bit by having had a mac as my main PC since university, meaning less easy access to a non-locked down Windows installation.
Much the same way as Windows users probably are not big objective C developers...
It just felt like for a server language like .NET that your personal laptop shouldn't really matter much.
In that space, you'd mostly have needed to use Mono and MonoDevelop, depending on the time-frame.. after MS bought Xamarin, Visual Studio for Mac is actually a descendant of MonoDevelop
And even if you're buys a laptop, then you must pay extra for the "pro" version of Windows to actually install IIS. (Last time I tried installing IIS on Win7Home - it just told me that my OS wasn't supported)
I have IIS on my Windows 10 Home Surface 6. I have encountered no problems at all; I did not buy it with this in mind, but now it's doing all my dev work. Biggest problem is that Teams uses 600 MB to sit idle so I never have any memory to do anything interesting.
I've never had to pay for my own MSDN, IDE or server while I was in the Microsoft development ecosystem. In many cases, my employer would pay for those things, and it was usually generously flexible - i.e. I could build Windows machines and install Office at home off those licenses. The Community edition of Visual Studio has been sufficient for quite some time, though I'm sure there are cases where it is not.
Anyone running a copy of Windows could run a free copy of SQL Server (Express) and SQL Server Studio, IIS Express and the .NET Framework using VS Community to build MVC apps. You would use the Web Platform Installer for just about any of those things.
This is true now but it wasn't when I started doing dot net development ~10 years ago. If it wasn't for my employer covering the costs I wouldn't have been able to do it.
There were free editions but they were crippled versions of the paid ones with no extensions, etc. The free versions were generally unloved and had annoying quirks.
At the time you needed to add a Resharper license in there too to be decently productive which was yet another overhead.
I disagree that Resharper was required to be "decently productive". Resharper turned your Honda of a Visual Studio into a Lexus, and Java developers (who were already used to Lexuses of their own) appreciated it... but you can still drive around with a Honda. Similarly, the limits on extensions in Express editions wouldn't hinder learning .NET development, or even working on most projects.
However, VS Express itself took a while to appear. Back when .NET first appeared, the only thing that was free was the .NET Framework itself (including command line compilers), and online MSDN documentation. Eventually, we got SharpDevelop.
But, well, there's free, and then there's free. In my home country, you could buy a bundle of CDs with complete VS 2002 + MSDN distribution on the black market for around $20. Which was still expensive for students, mind you - so the same bundle was then shared around the class (including the teachers, who only had an older bundle of VS6).
I learned from the sdk command line and a book... mostly because after 9-11 within a couple months my day job and side job were gone and had lots of time on my hands for about 8 months... through the later betas and the 2002 release I hadn't touched an IDE for it... after I got a job though, kept up with it... but SharpDevelop worked for me for the most part in the earlier years.
I never used Resharper and stay away from JetBrains products as much as possible, with exception of Android Studio.
It looks like they design for developers with gaming rigs and ten finger chords, I even start enjoying using Eclipse again after spending a couple of months on a Java assignment with InteliJ.
Then my .NET team wonders why I never complain about VS speed and crashes, easy, I am the only one not using Resharper.
I used "C# The Complete Reference" with the command line compilers to learn it in the later beta and through the 2002 release. No IDE, just a windows desktop.
I think VS Community started in 2015... there was also a SharpDevelop and MonoDevelop option in between, from pretty early on. I used SharpDevelop on my own projects for a number of years. Around 2011 I started using Node more and have been back and forth on projects since.
Had forgotten about express tbh... I thought there was something, but have either had access to a company version, or used SharpDevelop (at least in earlier years).
Could you please provide a link to some cases where Microsoft is suing Linux users for violating their patents? I thought they stopped that practice years ago.
You mean, except for every major Android manufacturer paying exFAT tax?
Microsoft certainly don't sue as much as they used, but that's because they are no longer developing as much groundbreaking tech. And when they do develop something, everyone avoids touching it with ten-foot pole (see also: "success" of UEFI on ARM devices).
If you use rhel the guarantees are also very strong though it requires some extra steps to package and distribute your own software. Ubuntu on the other hand I've found breaks stuff often enough to be a nuisance.
I switched to Linux, and most importantly open source technology - in order to get out of the Windows ecosystem. I switched from an ASP stack to Node.JS, but it feels Microsoft is still stalking me, buying NPM, Github, releasing their own JavaScript flavor, releasing their own "open source" software bundled with proprietary add-ons, meanwhile suing Linux users for patent breach.