Hacker News new | past | comments | ask | show | jobs | submit login
Why .NET? (gopangea.com)
47 points by pionar on Dec 11, 2015 | hide | past | favorite | 20 comments

I've never been on a Go project so I can't speak to that but I do find myself moving between Java/C# clients every 12 to 18 months or so. Prior to the lambdas support in Java C# was a clear winner in the language category for me. Sure, there's some minor things that can be frustrating in the Java world (ahem generics) but for the most part I find myself at home after a week. Now, the Java platform is an entirely different matter and that's something MS has been gunning to improve recently. I always thought that Java being on Linux gave the platform some real strength because of being able to take advantage of so much server side stuff that's typically only available on Linux. That seems to be about to change and I'm excited.

I am looking forward to playing with .Net again. I used C# and .Net for my personal projects for years, but left it for Linux and Python a few years ago. As Microsoft has made it more open, .Net becomes an option again. Windows 10 even seems OK.

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.

While not very deep, this is a good general outline of why .NET is still great. I think most startups and SV companies get caught in their echo chamber and use whatever is shiny/fancy without realizing that .NET powers many of the businesses that you interact with daily. Practically every company in the Fortune 500 uses it and if you're looking for one tech stack that can do everything, this is it.

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.

Were doing a coupling to a soap backend. It has been 7 years since I last did .NET and now I've decided to never go back.

SOAP and WCF is a very scary thing. We're in the financial industry and many of the systems we integrate with use .NET and SOAP/WCF.

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).

.NET WCF to another WCF integration is fine, but if you try and hook a .NET SOAP webservice to one written in Java, and you'll have pulled all of your hair out after two weeks. The reverse is just the same. They all have slightly different implementations of the specifications.

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".

If you are building for client side Windows machine there is no better solution. Its just that simple.

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.

Most of these requirements seem like they were picked after the fact based on .Net's features. Things like a "rich ecosystem" are very subjective and easily rule out several valid options as part of this justification.

What happened to ever just saying "we want to roll with Microsoft's solutions so we did" ?

As the last paragraph states, we saw the writing on the wall with the open sourcing of ASP.NET MVC which is why we were comfortable with sticking with .NET.

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.

What ORM are you using?

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.

EF6 is still the recommended ORM and amazing at what it does. EF7 is still missing major features like Lazy-Loading so while you can use it in production, the team has repeatedly said that it's not recommended or necessary unless you have a specific reason to use it. Summer 2016 is when EF7 is supposed to be at full release.

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.

You can read more about EF7 RC1 here: http://blogs.msdn.com/b/dotnet/archive/2015/11/18/entity-fra...

They currently have working providers for SQL server, SQLite, SQL Server Compact, and PostgreSQL

Great ! looking forward to see the changes in RTM version.

When I was talking about disk space I was referring to linux operating system where there is no GAC.

Well there's no other way around it - you can either publish all the dependencies with each project or share them in a central place.

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.

yeah, you're probably right !

The brightest part of Java is actually Scala.

Don't forget about F# for .NET too. Type Providers are a killer feature.

The article says:

>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?

You're right - VS Code is a open-source text editor with Intellisense and refactoring and plugins and about 80% of the functionality found in Visual Studio. It works well and does almost everything you need if you're working with ASP.NET 5 / .NET Core stuff - which is the only thing you can deploy cross-platform right now anyway.

Visual Studio the full edition will likely never be running on Mac or Linux, but it doesn't need to.

> ASP.NET 5 / .NET Core stuff - which is the only thing you can deploy cross-platform right now anyway.

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#.

It's hard to take anyone who's building new .Net applications on C# very seriously. F# is about 1,000 times better--as evidenced by the fact that the C# team themselves are stealing features from F# left and right.

Applications are open for YC Winter 2024

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact