Live data from Hacker News

.NET 10

devblogs.microsoft.com

471–480 of 605 posts

Re: .NET 10

#471
post #363

Earlier quoted context omitted.

Why is EF regarded as such a good ORM? I've encountered countless bugs in different repos related to its stateful nature after many years in .NET. Personally I found it completely illogical for my ORM to maintain state. I just want it to hold my schema and build queries.

Are you referring to the change tracker? FYI you can have it skip tracking as the default (or per query), but when you actually want to make changes you better opt in with `.AsTracking()`. Anyway, I've used EF at work for about a decade and I'm happy with it. I surely have blind spots since I haven't used other ORMs in that time, but some things I like are: - Convenient definition of schema. - Nice handling of migrat…

Dapper can be a better fit depending on the scenario. It's dumb objects. You fill them yourself with actual SQL statements. There is no change tracker. You are the change tracker.

The main issue with EF is ultimately there is an expression builder that maps linq expressions to sql. This mostly works, until it doesn't, or it does but has strange generated sql and performance. If all you are doing is CRUD or CRUD adjacent then it's fine. But for some complex stuff you spend a lot of time learning the innards of EF, logging generated statements, etc. It is time better spent writing good sql, which something like Dapper allows.

Re: .NET 10

#472
post #2

For us, every .NET upgrade since .NET 5 has gone surprisingly smoothly and reduced CPU/RAM usage by 10–15%. We were even able to downgrade our cloud servers to smaller instances, literally. I wish .NET was more popular among startups, if only C# could get rid of the "enterpisey" stigma.

As a person who looks always at Java and C sharp with curiosity, I am a bit divided.

For me C#'s value is obvious in the frontend and also games compared to Java (except for mobile, where Java can be used but Kotlin seems best).

But for the backend I always wonder if I should invest more on C# or Java as I go.

Also, it worries me that Java is a memory hog, which C# seems not to be. I like to have lean server-side software, to the point that my usual approach has been to use C++ paired with Capnproto, but if I had to go with something a bit more high-level for web work, I am not sure.

Currently I am investigating Clojure for non-critically-fast backend. It seems to be a lot of fun and since I am using https://fennel-lang.org/ (replacing part of my Lua code) and I expect https://jank-lang.org/ to become something at some point, maybe it is worth to stick to it?

How would someone that has more data than me compare Java vs C# in terms of performance as-in "what machine you need in the cloud" to do useful stuff, mainly for backend work, asynchronous, in terms of CPU and memory for both?

Re: .NET 10

#473

Earlier quoted context omitted.

That is software with a web interface. Only a small part of OpenAI's work deals with web related things.

how dare you, i summon 10 js engineers from openai to downvote you (they have 6 only)

I won't fear them teaming up with their FastAPI Python team.

They are serious parts of chatgpt experience. But still not core of the work.

Re: .NET 10

#474
post #319

Earlier quoted context omitted.

> I wish .NET was more popular among startups, if only C# could get rid of the "enterpisey" stigma There are plenty of real issues that are not the enterprise stigma. I built a backend web api this year with it and C# is fantastic. EF Core is truly one of the best ORMs I've ever used. That said, I regret that decision and won't be using it again for any new projects. Honestly it looks like Microsoft is distracted and…

>Everywhere you look there are tons of half baked projects like Blazor We used Blazor years ago and it worked flawlessly already then. Hard to believe it's worse today. And what's wrong with Identity? >progress in .NET is super slow Compared to what?

Which version worked flawlessly? And I guess blazor can work great but that's super specific to what you use it for. Much more so than most front end technologies/stacks. And both WASM and Server versions have a lot of compromises.

Re: .NET 10

#475
post #2

For us, every .NET upgrade since .NET 5 has gone surprisingly smoothly and reduced CPU/RAM usage by 10–15%. We were even able to downgrade our cloud servers to smaller instances, literally. I wish .NET was more popular among startups, if only C# could get rid of the "enterpisey" stigma.

.Net is also good as a platform for other languages. I recently started working with RemObjects, and you can compile languages like Java, Swift, Go and more (VB, Pascal) to .Net. Then, the whole framework and ecosystem is available. I'm liking it a lot. They have customers who are startups and the 'got to have tools' folk like having lots of languages since they can onboard people who know anything-not-C# and benefit…

You can also compile to wasm I believe

Re: .NET 10

#476
post #2

For us, every .NET upgrade since .NET 5 has gone surprisingly smoothly and reduced CPU/RAM usage by 10–15%. We were even able to downgrade our cloud servers to smaller instances, literally. I wish .NET was more popular among startups, if only C# could get rid of the "enterpisey" stigma.

IMO, C# is just a somewhat better version of Java (low bar) w/ first class Windows API support. I can't see myself ever adopting it for any real work. F# on the other hand seems a pretty awesome, terse and expressive language. Unfortunately, it is very unpopular (yet still hangs around).

> I can't see myself ever adopting it for any real work

Why not?

I see a lot of people saying they don't like it or won't use it but few of them list any reasons to, the ones that do raise issues from 20 years ago that have since been resolved.

Maybe you should give it a try, you'd be surprised how productive the language is and how comparatively unproductive all other languages and ecosystems are.

Re: .NET 10

#478
post #221

Earlier quoted context omitted.

> I wish .NET was more popular among startups In my experience .NET/C# dwarfs pretty much any other framework in the SMB and there are WAY more software companies that aren't considered "startups" than those tagged as "startups".

Yeah, but it's very likely you won't be working like a mule, or creating a bicycle with three wheels. How could oneself be innovative and top talent under such conditions?

It's mostly about pay too. And yeah some people want more exciting jobs and maybe even outlandish stuff like the ones you listed (regardless of the sarcasm!). Yes at the end of the day most software isn't super exciting, but it doesn't make a tech stack or platform where most of your job prospects would approximate to "working on some run of the mill, mega enterprise or SMB software project" any more attractive for devs.

Especially when even its advocates somehow use that as an "upside". It might very well be for a lot of people! But it's also a massive turn off for others. I have never worked in a startup or big tech, and work on very concrete and critical products yet I'd very much rather work on even outlandish SV stuff (at least the pay is usually great and the job environment could be good!) rather than on some SMB CRUD or some generic backend service. If I don't have a choice I could do it but it's not super enticing.

Re: .NET 10

#479
post #60
post #28

That's a lot of goodies in a new release! It seems it is outpacing the JVM's development...

Apart from [the equivalent of] records, I see nothing big. Except... this '''let! a = fetchA() and! b = fetchB()''' really puzzles me. Does C# have a high-level syntax for concurrency timing? [something that Java is strongly lacking, and that Typescript did solve with Promise.all(), which is an ugly syntax, from my perspective] Any elaboration on this is very welcome.

Java has had CompletableFuture::allOf for a long time. The new structured concurrency api also has the same capabilities of waiting for futures.

Re: .NET 10

#480
Meanwhile, I recently proposed doing the work of updating the runtime versions from .netframework over to even .net5+ to save $millions/quarter.

I ran benchmarks, showing 2-10x+ improvements.

Got told, “lol no, this service is unlike Bing”. For context, Bing has amazing blogs on this*.

This, btw is inside networking for Azure…

Not sure at what point I should stop caring. Could easily improve operating expenses to the tune of hundreds/billions per year if they applied this across Azure.

https://devblogs.microsoft.com/dotnet/bing-com-runs-on-net-c...

Post reply on HN