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.
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.
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
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.
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.
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...
$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 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.
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
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.
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.
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.
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 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).
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.
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.
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.
> 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 :)
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?
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..
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 ;)
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.
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.
63 comments
[ 3.6 ms ] story [ 121 ms ] threadIt was mentioned.
https://docs.microsoft.com/en-us/dotnet/standard/net-standar...
Maybe in the Hacker News bubble. Outside of that, things have been cruising along quite nicely for at least a decade.
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.
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
.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.
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...
https://www.jetbrains.com/rider/
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 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.
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.
Plenty of other languages are tested officially by the CockroachDB team, but somehow they missed .NET.
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'd submit a PR with fixes, but I'm short for time).
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.
It is arguably also a bad business decision to shell out $$ for a language that isn't used at your company.
> 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 :)
as opposed to Java developers who are hmm...free ?
Things are slowly moving towards Open Source and cross platform, but .NET is far behind Java at this moment. It is moving fast, though.
Then the unthinkable happened: after PG left, HN got MSFT PR-heavy in spring 2015. People should learn from the history.
Like say, paying developers to maintain their SDK in Closure?
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.
coreclr and corefx (basically C# .NET Core) source code is using MIT license.
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.
The number of commits and pull requests for .NET from outside MS seems to be increasing all the time.