Hacker News new | past | comments | ask | show | jobs | submit login
Official support for .NET (stripe.com)
129 points by darwhy on Aug 8, 2017 | hide | past | favorite | 59 comments



More Silicon Valley startups need to get on board with .NET. Yeah, I know it's strongly typed and doesn't abuse white space, but you're missing A LOT of potential customers when you skip out on .NET. Seems like a really poor business decision to ignore it simply because there isn't someone on your team who has built a compiler for it in their spare time.


Eh, this seems like an example where Stripe did pretty well for itself by leaving this part of the market for last.


PG wrote some essays about it: startups better spend their seed/series money on other things than software licenses.

Then the unthinkable happened: after PG left, HN got MSFT PR-heavy in spring 2015. People should learn from the history.


> startups better spend their seed/series money on other things than software licenses

Like say, paying developers to maintain their SDK in Closure?


I just wanted to chime in on this. IMO It will happen more often now, but .NET had/has a higher cost to entry (higher than say, ruby/py/java) which is the real reason why SV startups haven't been on board.

It is arguably also a bad business decision to shell out $$ for a language that isn't used at your company.


> .NET had/has a higher cost to entry

> It is arguably also a bad business decision to shell out $$ for a language that isn't used at your company.

What cost(s) are you thinking of here? .NET doesn't cost anything (monetarily). Some of the tools cost money but you can also get by in the .NET world with a command-prompt and text editor (I did as a hobbyist for quite some time).

I might be misunderstanding your statements, but it's also possible that you're misunderstanding .NET, I'm just trying to clarify which one it :)


For a long time many third party components were commercial. A lot more than in the Ruby, Python or Java ecosystems, for example.

Things are slowly moving towards Open Source and cross platform, but .NET is far behind Java at this moment. It is moving fast, though.


I've been doing .NET development since 2006 and have never had to buy commercial components. Every time I have needed something there has been free/open source stuff. I'm guessing it depends on what type of software you are working on?


For a long time there was no free option to validate json schema with the latest norm.


One needs to invest $$ because you pay money for the developers time to create software


> but .NET had/has a higher cost to entry (higher than say, ruby/py/java)

as opposed to Java developers who are hmm...free ?


I'm using the Stripe.NET library - but begrudgingly - there's a whole slew of FxCop-compliance issues with the code and some code-smells that I don't like (e.g. they read the JSON objects into strings, then deserialize the strings - it's more efficient to use the JSON.NET stream-deserializer). My biggest issue is the lack of `using()` statements: objects are not being disposed-of correctly!

(I'd submit a PR with fixes, but I'm short for time).


Understand about not having the time, but maybe you could create issues (https://github.com/stripe/stripe-dotnet/)?


Fantastic that they are taking over the Open Source library that was already out there. Have used it and the maintainer had obviously put in a ton of work on it.


Aside: there seems to be a lot of renewed interest in .Net with the advances of Core and other cross platform support in the open.


My company uses .NET mainly so it's nice to see these libraries. But from recent experience with several of them I am starting to be a little wary of .NET SDKs. It seems most .NET SDKs are either buggy, incomplete or have some other issues. It feels like you are a second class citizen with .NET.

I would prefer if I could call Java SDKs from .NET. These SDKs seem to be higher quality than most .NET SDKs.

C# is a great language and .NET is good but for the availability of 3rd party libraries I would probably go the Java route if I had to start from scratch.


not sure i would go this route, but you can actually call java libraries from .net using a project called IKVM. I used it for a toy project and it seemed to work


IKVM development has been halted: http://weblog.ikvm.net/


So sad to learn about that. Ikvm was so great! It was really granting you access to all the Java world in .Net I hope it will find a new developer. Microsoft should pay someone to do it IMHO


I don't understand why MS hasn't been supporting IKVM already. It makes .NET a much more viable option for many projects. There are a lot of Java libraries out there for which .NET has no equivalent or only low quality ports.


Development halted, yes, but AFAIK rock solid up to current Java release.


It always seems odd to me that people are excited about .net coming to Linux or osx. Mono has been around for so long I can't remember when it showed up, 2001?

As far as I know mono's been feature complete for a decade or more.

.net core is neat, but for me it's a tooling thing and not a "we can write .net of Linux" thing


Mono has never put a focus on reliability or production-ready code. It's been awesome for desktop software and client applications, but we actually deployed ASP.NET on Mono to unify our deployment environment across our web infrastructure and ran into random bugs and show stoppers on a daily basis. And I'm not just talking about the horrible process of getting Visual Studio projects to deploy to a Mono server, the unavailability of certain APIs, functions that don't quite work the same way, or issues with the Mono frontend server, but also runtime infrastructure issues, random crashes, and more that made it a horrible nightmare worth maintaining two different operating systems for (our reliance on PHP for WordPress and vBulletin (back then, now XenForo instead of vB) meant we faced basically the same .NET-on-Linux issues with PHP-on-Windows, prevented us from going all-Windows at the time).

.NET Core is actually cross-platform from the ground up and the .NET Core team considers it blocking issue and won't release if the codebase doesn't run properly and identically on all supported platforms. It's a night-and-day difference.


I agree, I've been using mono in semi-production for the best part of a decade for ASP.NET and it's been a complete nightmare every time.

It's also a shame that VS for Mac is so half baked for web projects despite MSFTs backing. This issue I have been search for an answer for a while is so obvious I don't understand how they didn't catch it: https://stackoverflow.com/questions/43967326/visual-studio-m...


Luckily VS Code just as awesome on Windows, a Mac or Linux for my .NET Core MVC app.


Luckily there is a better alternative....

https://www.jetbrains.com/rider/


I love Rider but since they went GA it's super expensive. VS for Mac beta channel is decent, then there's VSCode which is free


$139 a year or $14 a month for an individual license is "expensive"?

On top of that if you buy a yearly license or you pay the monthly license for a year, you get a "perpetual" license. You get to keep the turn current version forever without buying another license.


I agree but it is £26/month in the UK (~$35/month), not 14. Where are you getting that price from?


It's the personal license not the business license.


Well, before .net core, Mono never had support for the most important frameworks that were commonly used in .NET world. Namely no support for WPF, EntityFramework, WebAPI, WCF (partial support came later on). This was a dealbreaker for most windows devs. If you accepted this and went for open source alternatives and/or mono's own frameworks (NHibernate, Gtk#, ServiceStack etc.), mono was pretty solid.


I got excited about running mono about 5 minutes every year for the last decade. Each time the enthusiasm came to a complete halt when I actually tried it. Core is in a much better position in terms of completeness, reliability, user friendlyness and not least usage. You always felt like you were the only person trying C# on Linux years ago. Not so now.


mono has been around but was very buggy outside of Xamarin based apps. .net core is a first class .net implementation using lots of the same code code from .net framework and works much better in high stress server workloads.


renewed interest

Maybe in the Hacker News bubble. Outside of that, things have been cruising along quite nicely for at least a decade.


I've worked with .Net devs for most of the past 17-18 years... I've done my fair share of C# development beyond that. And I've seen a lot of shops move away from .Net. Several to Node.js, others to Java or Ruby. It's not just a Hacker News bubble.

I'm working in a place now, where most new development is .Net core to be deployed in Linux. There are also a few node projects, and go is also approved for new projects. Being able to target and deploy cross platform is huge.


Thats an odd way to phrase it considering v1 was released 15 years ago. Like saying I've spent almost half of the last 10 years with my 4 years old son.


Works with .net core also (they don't specify this).


>> targets the .NET Standard

It was mentioned.


Yes, and in case there's confusion around Core vs. Standard. Standard can be thought of a spec, and supporting a version of .NET Standard implies support in a specific set of versions of .NET Core.

https://docs.microsoft.com/en-us/dotnet/standard/net-standar...


Noob question, what's the advantage of using a language library over using your programming language favorite http client?


Speaking with experience of the Python Stripe library, automatic type conversions, native exceptions, keeps my code cleaner.

If it were a simple API, I might agree, but Stripe does a lot of stuff and in payments, many things can go wrong. Particularly being able to directly handle exceptions (rather than picking apart obscure status codes) is a godsend.


As above, but also the out of the box HTTP client in C# is quite limited.


Been using it for years, really good and well written! Author very responsive with bugs as well.


A little off-topic but I'm gettinga little impatient.

What is the reason we can't have a dnf install dotnet or apt install dotnet and have it linked to whatever is the most recent? I can even do that with php-cli.

A deeper problem to me is I don't think there's enough expertise outside of Microsoft to continue this project should Microsoft decide to take its toys and go home.


I see this as a non-problem. How many people can really rewrite the jvm from scratch? Or just take over maintanance of it? Or take over go? Etc.

The number of commits and pull requests for .NET from outside MS seems to be increasing all the time.


>Microsoft decide to take its toys and go home.

coreclr and corefx (basically C# .NET Core) source code is using MIT license.


Yes but who will (indeed can) continue the project should Microsoft stop work on it?

I mean no disrespect to my hardworking friends at red hat but they cannot take over stewardship of the entirety of dot net. Nobody else seems remotely interested.


I cannot see a scenario where MS stops working on .NET, also, people are interested. Remember Mono?


Ugh, thank God.

I get that until 2016 and Nadella/.NETCore only Ruby, JavaScript, and Python were the hipster languages of choice for web development... but .NET has been an awesome, rapid-development, tried-and-tested, business-friendly option for creating business applications, including, believe it or not, eCommerce platforms.

Outside the "hacker bubble" no one in their right mind would have neglected .NET as a first-class API target for this long. It's insane that Stripe got away with it for as long as they did, actually.


Still in my hall of shame: CockroachDB, which decided Closure and Rust were more important than .NET - I love Cockroach but based on this I wonder if they want to make any money.


Isn't cockroach protocol compatible with PGSQL?


Yes but they don't officially support any PostgreSQL libraries in .NET (like say, npgsql.)

Plenty of other languages are tested officially by the CockroachDB team, but somehow they missed .NET.


shrug - they're a billion dollar company so maybe it wasn't that bad a decision.

We're planning on using stripe (with our .NET code base) and if they didn't have an api - we would have simply used their REST api. We weren't going to switch to another payment processor just for a wrapper around the web service.

Also - the .NET ecosystem is large - but how many .NET-based products are there (that would take payments via Stripe)? It's got to be a small percentage right?


I'm surprised it took them this long to support .NET. I just started using Braintree on one of my projects and it supports .NET.


When are we getting official support for superior languages without GC? Say like Rust?


When those superior languages are able to target the same environments and match in terms of IDE support, graphical debuggers, server monitoring tools and cluster deployment, game development engines GUI toolkits, and compile times.


Rust has good IDE support, graphical debuggers are around the corners, gui toolkits are coming and compile times are improving. By the time 2017 ends, rust will improve on all these things, while .NET platform will still be stuck with a slow GC (2017 and GC in same sentence lol) while rust is going to get faster, safer and better. I suggest you to see for yourself, maybe start learning it - it ain't so hard ;)


When someone will actually start using them in their business


The big 4 are already using rust in various internal projects (including Microsoft). This comment just shows that you're afraid your job will be taken up by one of the rust devs in future..




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

Search: