Earlier quoted context omitted.
It's not accurate, for what it's worth. I'm working on a startup with .NET, and while I do use some parts of the MS Ecosystem (Visual Studio, C#, ASP.NET MVC, SQL Server, IIS) I use plenty of tools that aren't from Microsoft (NUnit, JQuery, Github, ReSharper, TeamCity, DotTrace, DotCover, Selenium). Any good technologist mixes and matches the things that work best for their solution, right?
Yes, there's definitely a split. Core infrastructure like the CLR, OS, and IDE greatly benefit coming from MS (although none are requirements, as Mono demonstrates). But anyone who does serious .NET dev work knows that tons of third-party tools are used. One big difference I notice in .NET shops is that they seem a lot more willing to pay for the best solution. Whereas for FOSS shops they seem more likely to get an a…
although none are requirements,
as Mono demonstrates
Not to bash on Mono, as Miguel and the Mono team did a fantastic job, but Mono has been more focused on client apps (like for embedding in games).Another reason for why hosting ASP.NET projects on Linux is awful is because ASP.NET was built for Windows. Things like async operations are built for the Windows kernel, having architecture decisions that have a negative impact on Linux. Last time I tried it, it also leaked memory, heavily.
Nobody sane uses it, unless they made a bad decision to build on ASP.NET at the beginning and it is cheaper to just try using Mono.
tons of third-party tools are used
But only tools that are replaceable, used mostly in development mode.How many .NET shops are using MySQL or PostgreSQL? How many of them are using NGinx or Varnish? How many are using CouchDB or MongoDB?
.NET shops ... seem a lot more willing
to pay for the best solution
This is wrong on so many levels I can't even begin to comment on it.First of all, .NET shops are digging themselves in a hole by using .NET in the first place.
Of course the best solution is SQL Server, because stuff like LINQ doesn't work reliably for PostgreSQL and because the performance of the PostgreSQL client is awful and because the reliable way of designing a database is through Visual Studio, which again, doesn't work so well for PostgreSQL. You would be mad to choose PostgreSQL if working with .NET
That's the whole point - Microsoft doesn't care to have interoperability with third-parties. Microsoft wants you to buy Window Server licenses that are limited in the number of CPUs you can use and it wants you to use nothing less than SQL Server, even though for the same money you can buy multiple kick-ass servers and use PostgreSQL for free.
This isn't about cheapness, it's about the value provided (i.e. being frugal). Running a business should be done frugally, since you're only in business as long as the money supply doesn't run out. Paying more money than you should is irresponsible.