I would add one additional negative against Java though: Java is bureaucracy incarnated as code. The degree of over-engineering present in almost everything I've ever seen written in Java entirely turns me off as a developer.
We're a small startup/biz in the adtech space and we went with .NET and it's allowed us to be more agile and build better faster and better technology than all of our competitors. The real test isn't blog posts or endless dev debates but actual productive output and when looking at that, .NET is one of the most successful options available.
Although Visual Studio does all the heavy lifting for us via 'Add Service Reference', the sheer amount of boilerplate code generated when integrating a SOAP service is terrifying and bloated. We hope to migrate to ASP.NET 5 but we're not sure how well connectivity with SOAP services will be supported. One of our partners actually requires us to host our own SOAP service based on a spec they provide.
However, for our own APIs we use ASP.NET Web API and build REST/JSON APIs as highlighted in the stack page (http://engineering.gopangea.com/stack).
Make that one week if you have to start dealing with the monster that is called WS-* a.k.a. WS-WTF.
I wrote an article on this many moons ago. It is still one of my most frequently read posts: https://benpowell.org/supporting-the-ws-i-basic-profile-pass...
It just goes to show how many SOAP integrations are still going on in the "enterprise".
Visual Studio is the best IDE available, bar none. Eclipse has everything you'd need but takes a long time to configure. Visual Studio "just works".
I'm not a Microsoft troll, I've just been around long enough, seen the different koolaid commercials and tasted a few.
What happened to ever just saying "we want to roll with Microsoft's solutions so we did" ?
We actually don't "want to roll with Microsoft's solutions so we did" which is why we use MySQL not MS SQL, AWS not Azure, git not TFS, RabbitMQ not MSMQ.
I heard that EF 7 which is compatible with ASP NET 5 doesn't support MYSQL database.
Also the disk space when asp net 5 app is published is realy high.
Imagine you have 20 application, it with ~70Mb each one on disk you'll end up with +1GB of packages that you depend on.
I think something like Go, scala or Node JS is better.
EntityFramework can also support any underlying database and EF6 has providers for sql server, mysql, postgre, oracle, sqlite and many others. EF7 will even support nosql options like MongoDB.
What exactly is the issue with disk space for a published running app? The GAC (global assembly cache) in Windows was originally designed just for this: to share references and avoid having multiple copies of the same binaries. All this led to was a complicated situation with maintenance and reference nightmares. Disk space is exceedingly cheap and a strange to worry about when picking a tech stack.
They currently have working providers for SQL server, SQLite, SQL Server Compact, and PostgreSQL
When I was talking about disk space I was referring to linux operating system where there is no GAC.
Central places don't work very well and again, file space is very cheap. Most binaries compress down very small so there really shouldn't be a disk space issue. And you can always remove dependencies if necessary.
It's just not something that has ever been a problem in over a decade of building and publishing .NET apps.
Don't forget about F# for .NET too. Type Providers are a killer feature.
>download a free and open source version of Visual Studio on your Mac
But the link for that takes you to Visual Studio Code. I thought that was just a text editor. That's not the full blown Visual Studio.
It's not possible to run full blown Visual Studio on Macs yet without a VM or Bootcamp right?
Visual Studio the full edition will likely never be running on Mac or Linux, but it doesn't need to.
I understand what you're saying, but it's wrong. You can deploy earlier .NET apps to Linux and OSX via Mono, and get 95% of what you'll get from .NET on Windows. Alas, at a bit slower performance, but it works. Many of the most popular Linux desktop apps are actually written in C#/.Net and run on Mono with GTK#.