Saat ini kami memiliki tumpukan berikut:
- VS 2005
- Formulir web
- SQL Server 2005
- IIS 6
Kami berencana untuk beralih ke ini:
- VS 2010
- Formulir MVC dan Web
- SQL Server 2008
- IIS 7
Pertanyaan saya adalah, ketika kita pindah ke MVC dengan VS 2010, haruskah kita menggunakan Entity Framework (atau ORM lain), ORM mikro (seperti Massive ), atau sekadar SQL?
Semua tutorial yang saya baca tentang VS 2010 semuanya diarahkan untuk menggunakan Entity Framework untuk transaksi data, tetapi apakah itu akan ada di masa mendatang (5+ tahun)?
Jika itu penting, aplikasi klien kami dapat memiliki 10 - 1.000 pengguna aktif.
asp.net
asp.net-mvc
entity-framework
webforms
guanome
sumber
sumber
Jawaban:
Saya baru-baru ini beralih dari menggunakan kueri SQL sebaris ke menggunakan EF dan inilah yang saya temukan:
Pro
Cons
1:0-1
hubungan di mana EF ingin menggunakan1:0-*
Saya bukan ahli EF, jadi saya mungkin melewatkan beberapa hal. Ini hanya item yang saya tahu saya temui di masa lalu ketika beralih dari inline SQL ke Entity Framework. Saya senang saya beralih, tetapi ada saat-saat ketika saya benar-benar membenci EF karena keanehannya.
sumber
Entity Framework adalah alat produktivitas. Kecuali Anda memiliki alasan kuat untuk tidak (misalnya Anda menggunakan SQL 2000 atau tidak punya waktu untuk meningkatkan teknologi), maka gunakan alat terbaik yang Anda inginkan.
Yang sedang berkata, saya menemukan konsep Entitas untuk menerjemahkan dengan sangat baik untuk Model pola MVC. Walaupun memiliki hubungan 1: 1 dengan Model dan tabel adalah praktik yang buruk, berpikir dalam hal Entitas cenderung menghasilkan desain yang bersih, kode yang mudah dibaca (terutama dengan LINQ).
Entity Framework didukung secara aktif oleh Microsoft. Tidak ada yang memiliki bola kristal ajaib untuk mengatakan "dukungan akan bertahan X tahun". Saya tidak melihat alasan untuk percaya Entitas akan mati dalam 5 tahun ke depan.
sumber
Solusi potensial lainnya adalah dengan menggunakan Perpustakaan Entity Framework alternatif yang bukan yang dipasok dengan VS. Ada beberapa di luar sana di web.
Konsep kerangka Entity / 3 lapisan, telah di luar sana untuk sementara waktu, dan telah bekerja dengan beberapa perpustakaan khusus, seperti banyak pengembang lain, sebelum Microsoft merilis kerangka kerja "resmi" sendiri.
Pro
Memiliki manfaat kerangka kerja Entity (DAL), tanpa terjebak dengan perubahan pustaka / kerangka kerja Microsoft yang konstan.
Menambahkan fitur ke perpustakaan yang mungkin tidak tersedia ke perpustakaan resmi yang ada, seperti menggunakan beberapa merek dtabase.
Cons
Harus mendukung perpustakaan atau alat. Sangat umum untuk memiliki alat kode generator Entity untuk menghasilkan enitites.
sumber
Anda harus membuat keputusan arsitektur berdasarkan masalah dan solusi yang ada. Seperti halnya teknologi apa pun ada kelebihan dan kekurangan.
Saya pribadi biasanya akan menggunakan kerangka entitas untuk pengembangan baru tetapi tidak menulis ulang kode yang ada. Anda kemudian mendapatkan kecepatan untuk delelopment di masa depan tetapi tidak perlu menginvestasikan banyak waktu untuk mengonversi kode. Kelemahan dari pendekatan itu adalah ia mengurangi konsistensi.
sumber
Dalam situasi Anda, saya pasti akan menggunakan Entity Framework, saya telah menemukan itu berfungsi baik dengan MVC.
Berikut adalah beberapa alasan dan petunjuk nyata.
Ada beberapa hal yang perlu Anda pelajari tentang menggunakan ORM.
Hal-hal yang perlu dipertimbangkan
Saya juga sangat merekomendasikan pendekatan kode pertama, bahkan jika Anda memiliki database yang sudah ada.
sumber