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 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.
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.
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.
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.
And you have to pay for the license.
Windows is a consumer OS by design.
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?
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.
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.
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)
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.
Between https://dotnet.microsoft.com/apps/aspnet (previously https://asp.net) and https://www.microsoft.com/web/downloads/platform.aspx it's generally very easy to dip your feet in the waters.
(All that being said, I'm now in the NodeJS ecosystem. It's... interesting!)
- Visual Studio Community Edition is full featured and free
- SQL Server Express is free
- You really don't need IIS but it is free. With C# you can run on top of Kestral.
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.
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).
It wasn’t until 2014 when MS started releasing the non crippled version.
But consider yourself lucky. Do you know how hard it was for middle schooler to get a good 65C02 assembler in the 80s like I had to?
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.
Even reading the docs seemed to need a login and paid subscription.
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.
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).
https://cloudblogs.microsoft.com/opensource/2019/08/28/exfat...
I won't argue how groundbreaking their technology is of late, but in all fairness they have been much more open with their code.
Aside from breaking stuff all the time, Ubuntu seems to have wide swings in the quality of documentation.
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.