I am preparing a new Windows project and wondering what DAL technology to use. Initially, I was looking for something simpler so as not to spend too much time creating it. But I also understand that it must be efficient and scalable in the long run.
I plan to use the WPF client (MVVM) and the WCF service on a three-tier system.
To summarize all existing technologies, I am familiar with:
Dataset
PRO: You can be a little old-fashioned, but very easy to use and allow most parts to be automatically created for you. One of the powerful aspects of a data set is the ease of passing related data through relationships. Also, in some ways, it is disconnected from the database and can simplify updates by automatically saving timestamps. Includes verification.
CONTRA: Pretty old fashioned. Some consider them not to be real business objects / models, but simply a mirror of your SQL data tables. Transferring them between WCF Service / Client can be more complicated than creating business objects.
Corporate Library 4.1 - Data Access Block
PRO: DAL fits nicely in the Factory pattern. It automatically closes and closes the connection. Very easy to use for the most part. It supports both a dataset and regular SQL Sps for creating your own business objects. Within the current Framework, it can be much more efficient to use in conjunction with the rest of the Enterprise Library for an effective end product.
CONTRA: ??
Linq to sql
PRO: Auto creates SQL tables in business objects. Easy CRUD. Theoretically, this is a very good way to do this.
CONTRA: After playing with her when she came out, I found her flaky and sometimes unstable. It is already considered dead technology after Microsoft announced that Entity Framework 4.0 - as part of .NET 4.0 - will be recommended by Microsoft. In .NET 4.0, there is too little expectation of errors, but there are no more plans for expanding features.
Entity Framework 4.0
I don't know anything about this, but only that it will eventually replace everything else, as on .NET 4.0. I am also tempted to use it, however, since it is still in BETA, I still could not go this way.
I really like to use Enterprise Library 4.1 - Data Access Block and create my own business objects. The big Con is that it takes longer to create a DAL. If someone cannot convince me to use DataSets through a data access block, instead.
What are your comments and ideas? Thank you very much kava