Especially on the .NET side.
A general history of CRUD in .NET:
- Basic ADO.NET (Not too different from JDBC/ODBC, direct commands)
- First Gen ORMs; Linq2Sql (functional but only on SQL server, and missing some features)
- Entity Framework (4-6) /NHibernate. Lots of people wound up hating this, so they went to
- Dapper. Dead simple; Takes SQL and only maps the results back. Everyone loves it.... Similar abstractions are created over Linq (linq2db, SqlFu) as well, with less (but happier) adoption.
- EF Core is released. Everyone switches back over again.
The whole thing is silly.