I've not been very impressed with the desktop application at all (although the web-site is "fine").
It's just that building from Visual Studio is by far the most convenient method.
Before there was a project format, callable with devenv command line tool.
Now you don't have to edit them as often (wildcards for files), they're easier to edit by hand (because they contain almost no clutter) and there are also command line tools to edit them (like dotnet add package).
<Compile Include="**/*.cs" />
I was doing this back in the .NET 3.5 days.But nitpicking aside your point is well taken, the developer experience is far better with dotnet core.
What OS in the container? A docker container is not a VM. Most of my containers are on the order of 10s of MB, and just contain a single binary.
There's no OS "inside" the container, no, but it's still dependent on an OS.
I think we agree. :)
https://www.techempower.com/blog/2016/11/16/framework-benchm...
[1]https://nickcraver.com/blog/2016/02/17/stack-overflow-the-ar...
"The degree of improvement is absolutely astonishing, going from 2,120 requests per second on Mono in Round 11 to 1,822,366 requests per second on ASP.NET Core in Round 13. That’s an approximately 85,900% improvement, and that doesn’t even account for Round 11’s hardware being faster than our new hardware.
That is not a typo, it's 859 times faster! We believe this to be the most significant performance improvement that this project has ever seen."
That's why the increase was so significant. If they were comparing ASP.NET Core with .Net Framework on Windows, the difference would have almost certainly been much smaller.
Managed ODP.NET for Core is a partial implementation of the ODP.NET for the full .NET Framework.
Libraries using EF 6, because EF Core is still playing catchup with EF 6, and even .NET Core 3.0 won't support 100% of the EF 6 tooling.
Libraries using WCF, which lack budget for anyone to rewrite them and the respective clients into other transport protocols.
Plenty of other examples.
For one example it has native support for dependency injection, and in general testability has massively improved since it was a core design goal.
They've also de-coupled several layers, which is hugely powerful since you can write your own middleware. For example check out this article on "Handling Errors Globally with the Custom Middleware"[0].
If you want to see how different it is from .Net Framework look at this diagram:
https://msdnshared.blob.core.windows.net/media/2017/06/06221...
[0] https://code-maze.com/global-error-handling-aspnetcore/#buil...
While you can technically create Forms, WPF, and UWP applications using .Net Core on Windows, that isn't really the direction or focus of the framework. Just a niche for legacy software or people who continue to need Windows specific desktop applications.
https://trends.google.com/trends/explore?q=%2Fm%2F02_qnn,%2F...
Console applications might have a future for cross-platform headless sever loads. But outside of that it is a web framework that happens to support non-web projects on the side.
It is competing primarily with e.g. Java, Ruby on Rails, Node.js, PHP, etc.
I no longer need Windows to develop nor host, while keeping on a platform which is hard to beat (for my requirements).
This isn't change for the sake of it, it's to keep .NET relevant. VS and Windows have become pain points.
I'm trying to decide between .NET and Rails 4 for a new project.
On my last project, dealing with the multiple layers of dependencies with node became troublesome.
(static vs dynamic has equal balance, in my experience)
However, if it where not for Linux support (and Rider), I would have gone with node.
It's slow to open. It crashes frequently. It's hard to extend. It's absolutely AWFUL on system resources. Its settings are a complete clusterfuck (admittedly, mainly because it tries to be/do absolutely everything).
I also think VS is actually a bad teaching tool for new developers. It simply tries to hand-wave/magic away parts of the system you're working on that REALLY matter. It's like VS is stuck in the era where the idea of opening a configuration file in a text editor is "uncouth". Which is frankly insane, since navigating the frustrating and byzantine guis it throws up instead is an absolute nightmare. Worse, you really need to care about those config files and settings, having them hidden helps nobody.
Basically, I think VS Code is a better IDE (yes, IDE, not editor) in every way. It takes more work to get off the ground, but it's literally miles away a better experience.
But as a .NET developer of over 15 years now I disagree. VS Code is currently using 1,200 MB of ram on my machine while Visual Studio is using 1,700 MB. I have a much larger project open in visual studio. Out of the 64 GB of ram on my machine, this isn't even a factor. What kind of machines are you running on where this is actually a problem?
next on the list after VS would be Rider,
then VScode...
I cannot remember the last time Vs crashed, a bit slower to open, but percentage wise, I spend hardly any time opening it. Extensions are sort of more involved to set up, but it's not that hard to do. It uses a bunch of resources, but I have lots of resources for it, settings don't seem too out of the ordinary, like most things, it just works out of the box and has a deep set of settings to customize it.
I'm trying to wean myself onto VS code now (with vim keybindings), but being forced to stay in a single window is tough to swallow.
Maybe because I don't have 16 GB, Xeons with SSD at my disposal?
So far Eclipse and Netbeans still outperform them, unless I turn on laptop mode and disable the majority of plugins.
The UX of VS2013 was the tipping point for me. And they removed macros. Dropped setup projects with no real upgrade path. The direction it moves is what benefits Microsoft.
And the cost has become unjustifiable, now that it's no longer a "must have".
Without ReSharper (which just adds to the bloat), it's primitive (but improving).
The debugger, however, has always been the best I've used.