Remix.run Logo
hu3 9 hours ago

I have a lot of respect for the .NET team. They often publish great in-depth articles and their pursuit for performance is relentless (e.g. see Kestrel and Entity Framework evolution).

And ASP.NET is one of the few large projects which managed to survive a large breaking changes. Almost to Python 2->3 level. You had to change how your web app behaved completely if you relied on their magic session which worked hard to keep state synched between back and front.

Feels good to have 3 trillion dollars interested in improving the stack you use and actually care.

Developers! Developers! Developers!

cm2187 35 minutes ago | parent | next [-]

I am not sure what the stats are but I am certain they left behind a huge number of projects. Probably a population that won't be very vocal on HN but that doesn't mean they don't exist.

Even for new projects there are problems I run into that force me to use 4.8. Like if you build an Excel formula, the mandatory async/await approach just doesn't work. It's not an asynchronous operation and runs into a UI context where you deadlock if you wait. They also broke a lot of the windows integration, where in a corporate environment the same network calls with the same syntax authenticate successfully with 4.8 but fail with core.

And because they broke backward compatibility on so many libraries, it's a non trivial effort to convert a complex code base to core.

It's great that they focus on performance, but the .net framework fossilised in term of functionality. It took like 15 years before they added a json serializer to the standard library, and don't even think about support for any new major image format (webp, heic). Everything has become complicated, there isn't a day where I don't see a crash message in visual studio. I used to be a big .net fan but I miss Anders' leadership.

yndoendo 7 hours ago | parent | prev | next [-]

Last time I tried Entity Framework it was slow. Replaced it with Dapper and a simple custom migration system. This took database validation and seeding from 10 seconds to less than 2 seconds during startup on low powered hardware with SQLite. The queries created by Entity had pointless cascade of multiple join statements.

I have been reaching for GO with simple tooling and HTTP back end. .NET is useful for other solutions.

I have had too many issues with their frameworks, like WPF, needing to implement Win32 hacks. Example, .Net 9 was the first Windows version that properly returns all network interfaces. Older runtimes only expose Enabled NICs. I still have to maintain Windows 7 support for some solutions.

qingcharles an hour ago | parent | next [-]

I just went the other way and tore all my Dapper + SQL and repositories out of a big project and switched it all to EF Core 10. Not noticed any change in performance but dumped thousands of lines of unnecessary code. I like the tighter code, but you definitely do need to keep your eye on the "magic" of EF to avoid it doing anything goofy that isn't easily visible.

yread 31 minutes ago | parent | prev | next [-]

The trick with EF Core is to let it do the simple stuff and if you need anything more complicated than .Include write the query yourself.

b0m an hour ago | parent | prev | next [-]

We use newer Entity Framework (Core) in a few large projects with zero issues. Even have Dapper and moving away from it as it brings nothing to the table but strings and bunch of SQL.

vjvjvjvjghv 6 hours ago | parent | prev | next [-]

We are also running into more and more performance issues with EF. There are ways to tune it but I am not sure if it’s worth learning this for EF or if it’s not better to just go for straight SQL. Seems MS has this tendency to create abstractions that then don’t work 100%. I see this with .NET too. Often you have to go down to Win32 for apps that are tightly coupled with Windows and hardware.

oaiey an hour ago | parent | next [-]

Is not that the core problem with ORMs. All of them. In the end you do straight SQL when it comes to Performance.

Limeray 5 hours ago | parent | prev [-]

[dead]

cyptus 2 hours ago | parent | prev | next [-]

ef core is great for simple queries and modification of your data while using the changetracker. You can use AsNoTracking/Projection to perform similar like dapper for queries. When using command query seperation you can also use dapper for queries and ef core for commands.

RagnarD 2 hours ago | parent | prev [-]

What version was it?

NamlchakKhandro 9 hours ago | parent | prev [-]

[flagged]