And none of this looks likely to change. Windows has been a second rate development platform for some time now, and Microsoft don't mind.
And none of this looks likely to change. Windows has been a second rate development platform for some time now, and Microsoft don't mind.
I can't speak for all .net shops, but in my experience you roll your own. You sit down, discover your problem, and write a solution for whatever you need from scratch specifically tailored to your need and performance requirements. Afterward, you understand the code (and the intent behind it) very very well.
I don't lament the lack of third party frameworks. I take them as an inspiration when I find interesting ones, and I know my toolset well enough to re-work their solutions and make them my own in pretty good time.
For me, as long as whatever it is is meant to run on windows (and doesn't require native performance), C#'s sweet spot is whatever I decide it needs to be.
Having a C#-like language in which I can write code with performance comparable to native will put some icing on my cake.
So in those instances you have a choice. You can use those libraries/products as they stand, or you can roll your own.
Says who?
Those of us that use GUI environments not stuck in 70's terminals workflow think otherwise.
Nuget is a late attempt to follow Maven and yet still behind.
EntityFramework came in late and I heard ppl moaned.
No Docker...
Chocolatey came in late.
So yeah... Says the parent thread and me.
Only ORM I use is the wonderful Dapper.NET.
I only do it when I am left without any other choice, maybe growing up with Amiga/Smalltalk/Oberon GUIs has spoiled me.
SciPy type stuff is best handled using F#, which also works on Mono, and has some features that I haven't seen in any other languages (e.g. Type Providers).
There are multiple .NET web frameworks, including Microsoft's own ASP.NET MVC and Web API, but also OSS efforts like FubuMVC, Nancy, ServiceStack, Simple.Web and more, most of which work as well on Mono as on MS .NET.
As you say, the Node story on Windows has improved lately, and most current languages work as well on Windows as on any other platform.
C# itself is probably second only to JavaScript in terms of cross-platform development: Xamarin for Mac and mobile; Mono for Linux (yes, it's incomplete, but Linux people should be used to that); Unity for game development across consoles, mobile devices, web and traditional PCs. By "cross-platform" I don't necessarily mean write-once-run-everywhere, which results in lowest common denominator dreck anyway, but the ability to reuse your skills and some code in many different environments and domains.