Praktik terbaik Microsoft saat ini untuk membangun tingkat data .NET? Dan kenyataan?

13

Tim pengembangan yang saya kerjakan akan segera pindah ke .NET 4.0, namun, pustaka kelas akses data yang kami gunakan masih menggunakan ADO.NET "klasik", yang berarti SqlDataReader , DataTable, dan sejenisnya. Sementara itu, sepertinya Microsoft dan mungkin seluruh dunia bergerak maju dengan Entity Framework dan Layanan Data WCF . Saya tidak menemukan apa pun di MSDN yang menunjukkan teknologi akses data mana yang dianggap praktik terbaik oleh Microsoft.

Apakah Microsoft memiliki preferensi? Akses data apa yang kebanyakan orang gunakan saat ini? Apakah ada alasan bagus untuk tetap menggunakan ADO.NET classic dan tidak pindah ke Entity Framework?

T. Webster
sumber
Pertanyaan bagus. Satu nit: "lapisan data" mungkin istilah yang lebih tepat. "Tiers" juga dapat berarti bagian dari sistem terdistribusi yang dapat dijalankan di kotak yang terpisah.
azheglov
1
@azheglov, "lapisan data" adalah pikiran pertama saya, tetapi kemudian saya melihat ini dan saya pikir untuk pergi dengan terminologi apa pun yang saya lihat di MSDN: msdn.microsoft.com/en-us/library/bb384398.aspx . Saya setuju bahwa lapisan data lebih tepat.
T. Webster
Webster: terima kasih telah mencarinya dan klarifikasi
azheglov

Jawaban:

4

Di perusahaan saya, kami menggunakan EF. Ini ORM yang bagus, cocok untuk proyek kecil kami. Pada kenyataannya orang menggunakan EF atau NHibernate. Kedua kerangka itu baik. EF memiliki dukungan MS yang hebat dan Anda dapat menemukan alat-alat hebat yang dibundel dengan Visual Studio. NHibernate dianggap lebih baik daripada EF tetapi ada "kurva pembelajaran" yang lebih besar sehingga Anda akan menghabiskan lebih banyak waktu untuk mengadopsinya.

Saya pikir, jika Anda menggunakan "klasik" Ado.Net, coba EF. Buat proyek sederhana dan ganti beberapa metode DAL. Periksa cara kerjanya dan bagaimana Anda dapat mengelola / memodifikasi kode. Bandingkan dengan metode "SqlDataReader" sederhana dan putuskan mana yang lebih baik. Ingatlah bahwa setiap perubahan teknologi membutuhkan waktu untuk adopsi sehingga Anda harus menghitung apakah perubahan ini akan bermanfaat bagi perusahaan Anda dalam jangka panjang.

Michal Franc
sumber
5

Tim saya menemukan kenyataan pindah ke EF sedikit sakit. Bukan karena EF buruk atau tidak berguna, tetapi ruang lingkup mengkonversi lapisan data kami yang ada (cukup besar) dari kumpulan data yang sangat diketik yang berasal dari ADO.Net framework 2.0 ke EF hanyalah banyak pekerjaan intensif yang tidak benar-benar mendapatkan kita apa saja. Untuk hal-hal baru kita masih cukup terbelah karena kita semua memiliki pendapat dan tujuan. Untuk proyek Silverlight kami, kami hanya berfokus pada layanan EF dan RIA, tetapi untuk proyek web (formulir web dan MVC 3) kami menggunakan Linq2Sql terutama.

Kami menemukan lebih sedikit sakit kepala dan pengembangan yang lebih cepat menggunakan Linq2Sql, tetapi saya tahu Microsoft mendorong agenda EF (terutama dengan layanan WCF dan RIA). Linq2Sql tidak ke mana-mana, tetapi semua mainan baru dan fitur keren akan difokuskan ke EF. Saya katakan jika Anda punya pilihan sejak dini, EF akan menjadi tempat yang baik untuk memulai. Jika Anda sudah pertengahan aliran, saya tidak tahu bahwa itu akan sangat mudah untuk beralih.

Joel Etherton
sumber
3

Entity Framework adalah cara yang lebih disukai. LinqToSql akan didukung dan dipelihara tetapi fokus pengembangan ke depan adalah pada Entity Framework. Memilih antara ADO.NET Entity Framework dan LINQ to SQL

klir2m
sumber
dan apa yang kamu gunakan saat ini?
T. Webster
2
Saya pikir semua orang menggunakan linq2sql
cnd
@ nCdy: Walaupun beberapa anggota tim kami telah mengecam Linq2Sql sebagai terlalu "cerewet", kami semua berpendapat bahwa EF otomatis menghasilkan terlalu banyak sampah yang tidak perlu sehingga L2S hanya memotong.
Joel Etherton