I have been stuck in 2.0 for some time now due to what my job requires and I am trying to now keep up with the latest .net framework. I am begining to build a Mvc application and I am wondering if the Data Access Application Blocks (SqlHelper) is still an acceptable method of writing a data tier.
I know there is a lot of debate over the EF, with it's speed performance, lazy loading and the issue of keeping the database separate from the application. So I hesitate to go there right now.
But I am seeing a lot of code that just uses ADO.Net and the DataAdapter and wondering if there was a shift back to ADO.net without a helping framework. If this is correct then my question would be why? It seems like a step backwards to not use some type of helper class/framework to do data access.
The use of ORMs is seen as best practice these days, and the Data Access Application Block has fallen out of favor as other, easier to work with libraries have come to existence and prominence in the .NET world.
These would include nHibernate, LINQ to SQL, Entity Framework to mention the big, fully featured libraries (some more fully featured than others).
People who do use ADO.Net directly are those who want more control over their SQL than afforded by these (always possible with ORMs, but they tend to be rather cumbersome when it comes to accessing the database not through their idioms).
An example lightweight ORM is Dapper, which is a very thin layer over ADO.Net.