Story time. At a place I worked we used Entity Framework + LINQ a lot. There was probably 10,000 different queries server side written this way.
One day I noticed a problem with one of the queries. It was reported that it would fail intermittently. Investigate. Oh ok it’s broken because the left join is returning nothing in some cases and it’s not handling that properly. That’s strange though, I don’t see anything immediately wrong with the code…
Oh… oh no… after we updated to .Net Core 6, all the left joins in the entire enterprise system are broken when the left side returns nothing, and it will just crash. Isn’t that the whole point of a left join? We didn’t notice for months because it only happens 5% of the time (the left joins were basically fail-safes for unusual database states). We can’t revert to .Net 5 because it’s end of life either.
Surely we can’t have that many left joins though right? CTRL+Shift+F. Oh no. Plus the most complicated and important Do Not Touch TM queries are broken.
Hence we set off on the quest to rewrite all 10k queries from LINQ to raw SQL. This was before A.I. mind you, so it was a manual and tedious process. I would have used the raw SQL output inspector feature but that was also broken. This is one of the few times I would absolutely love an A.I. to do this for me, and I can just review and test each function at the end.
Fuck Entity Framework. I left a report on their GitHub, but people were just bitching as usual about how hard it is to fix it to work like it used to. A few weeks ago, 5 years after the original problem, and I no longer work there, I get an email that it’s finally fixed. Hooray.
Circa 2005 I created a mobile app (for the honest-to-god-that’s-what-MS-named-it “WinCE” OS that later became Windows Mobile) that allowed workers to survey power line networks in the field and indicate all the trees that needed to be trimmed or removed. The app used a local SqlCE database and the workers would upload their recorded data at the end of the day back in their hotel rooms using Remote Data Access, an MS technology which allowed SqlCE databases to “sync” with a master Sql Server database.
It almost always worked flawlessly (100% during development, natch), except for once in a while when synced data would somehow end up in a weirdly corrupted, mangled state on the central server. Like, records that were lacking a primary key value (!), something that is basically impossible to achieve. I opened a ticket with MS support and we went back and forth on this for a few weeks until they basically said “yeah that’s fucked” and recommended that I modify my app to sync the same data multiple times to ensure it made it to the server correctly.
I actually had substantial faith in MS products up to that point (facepalm).
Story time. At a place I worked we used Entity Framework + LINQ a lot. There was probably 10,000 different queries server side written this way.
One day I noticed a problem with one of the queries. It was reported that it would fail intermittently. Investigate. Oh ok it’s broken because the left join is returning nothing in some cases and it’s not handling that properly. That’s strange though, I don’t see anything immediately wrong with the code…
Oh… oh no… after we updated to .Net Core 6, all the left joins in the entire enterprise system are broken when the left side returns nothing, and it will just crash. Isn’t that the whole point of a left join? We didn’t notice for months because it only happens 5% of the time (the left joins were basically fail-safes for unusual database states). We can’t revert to .Net 5 because it’s end of life either.
Surely we can’t have that many left joins though right?
CTRL+Shift+F. Oh no. Plus the most complicated and important Do Not Touch TM queries are broken.Hence we set off on the quest to rewrite all 10k queries from LINQ to raw SQL. This was before A.I. mind you, so it was a manual and tedious process. I would have used the raw SQL output inspector feature but that was also broken. This is one of the few times I would absolutely love an A.I. to do this for me, and I can just review and test each function at the end.
Fuck Entity Framework. I left a report on their GitHub, but people were just bitching as usual about how hard it is to fix it to work like it used to. A few weeks ago, 5 years after the original problem, and I no longer work there, I get an email that it’s finally fixed. Hooray.
Circa 2005 I created a mobile app (for the honest-to-god-that’s-what-MS-named-it “WinCE” OS that later became Windows Mobile) that allowed workers to survey power line networks in the field and indicate all the trees that needed to be trimmed or removed. The app used a local SqlCE database and the workers would upload their recorded data at the end of the day back in their hotel rooms using Remote Data Access, an MS technology which allowed SqlCE databases to “sync” with a master Sql Server database.
It almost always worked flawlessly (100% during development, natch), except for once in a while when synced data would somehow end up in a weirdly corrupted, mangled state on the central server. Like, records that were lacking a primary key value (!), something that is basically impossible to achieve. I opened a ticket with MS support and we went back and forth on this for a few weeks until they basically said “yeah that’s fucked” and recommended that I modify my app to sync the same data multiple times to ensure it made it to the server correctly.
I actually had substantial faith in MS products up to that point (facepalm).