A good chunk of that is the "invented here syndrome". With EF, WPF, ASP MVC, MEF, etc, plus annual MSBuild conferences, .Net has far more internally-developed ecosystem than Java. Which tends to promote the idea that the MS way is the right way, and if I need something else I must be doing something wrong (or I need to wait till next year).
Perhaps MS should just kill off all these frameworks and force the community to drive them.
That's one of my favorite things about Microsoft. Whenever they release a framework or a product, there's a tendency to just call it whatever the name of the technology is as if they invented the whole thing.
SQL Server - When .NET developers say SQL they mean SQL Server 90% of the time it seems.
MVC - MVC4 is a .NET Rails clone. Named MVC as if Microsoft originated the design pattern that was used to clone another framework.
> When .NET developers say SQL they mean SQL Server 90% of the time it seems
I've never experienced someone saying SQL and meaning SQL Server. In fact it's always been about SQL the language, agnostic of the fact that SQL Server has a SQL engine.
Microsoft SQL Server is named so because it originated from `Sybase SQL Server`. Microsoft joined forces with Sybase to port it to Windows NT. The name is kept after they went on their separate ways.
ASP.NET MVC is named so to clearly differentiate from ASP.NET Web Forms (i.e. primarily for branding). Even now, sometimes when people talk about ASP.NET, they actually mean ASP.NET Web Forms.
They named their framework ASP.Net MVC, as it is an MVC framework for ASP.Net, The naming isn't that problematic.
Lots of people in the close-minded cult of Microsoft (which does not include all Microsoft devs.) both shorten the name to "MVC" (which isn't necessarily bad in certain contexts) and have little-to-no understanding of what MVC is other than ASP.Net MVC, so both themselves confuse the pattern with the Microsoft product and promote others doing the same thing.
Roughly the same thing happens with Microsoft SQL Server (which becomes just "SQL").
Microsoft's changing their approach, but it tends to take a long time for the rest of the .NET ecosystem to catch up.
Case in point: Judging by all the .NET code Microsoft has up on GitHub, they've more-or-less completely switched over to xUnit.NET for their testing framework.
Meanwhile, in most Microsoft shops MStest is still considered the best-in-breed option purely by virtue of the fact that Microsoft wrote it. NUnit is a strong counterculture alternative in the same way that espresso drinks are still considered a counterculture beverage in some circles. And nobody has even heard of xUnit.NET.
They originally tried competing for years by offering their own AppFabric, until finally they conceded to recommend Redis after having ported it on Windows so you can use it on Windows Servers/Azure.
That's certainly a new approach for Microsoft. They have a long history of writing things that are clearly inspired by open source projects, but failing to mention the inspiration:
BITS is nothing like rsync. The purpose of BITS is to allow low-priority downloads/uploads to progress without impacting the real-time network traffic on the machine. (The classic use being to download Windows Updates without annoying the user by slowing down their web surfing.)
Rsync exists to synchronize folders between machines.
Thanks for the correction. I have never used BITS, but at one time I thought the description of "intelligently transfer files over the network" sounded familiar.
To clarify, by "invented here syndrome", I meant for the MS shops / MS consultancies. Rather than building frameworks themselves, they search for off-the-shelf solutions provided by MS or a partner. The managers at those shops think "the MS way is the right way; don't 'invent here'".
Perhaps MS should just kill off all these frameworks and force the community to drive them.