Saya bukan penggemar prosedur yang tersimpan
Prosedur Tersimpan LEBIH dapat dipertahankan karena: * Anda tidak perlu mengkompilasi ulang aplikasi C # kapan pun Anda ingin mengubah beberapa SQL
Anda akan tetap mengkompilasi ulang ketika tipe data berubah, atau Anda ingin mengembalikan kolom tambahan, atau apa pun. Frekuensi Anda dapat 'secara transparan' mengubah SQL keluar dari bawah aplikasi Anda cukup kecil secara keseluruhan
- Anda akhirnya menggunakan kembali kode SQL.
Bahasa pemrograman, termasuk C #, memiliki hal yang luar biasa ini, yang disebut fungsi. Ini berarti Anda dapat menjalankan blok kode yang sama dari berbagai tempat! Luar biasa! Anda kemudian dapat memasukkan kode SQL yang dapat digunakan kembali di dalam salah satu dari ini, atau jika Anda ingin mendapatkan teknologi yang sangat tinggi, Anda dapat menggunakan perpustakaan yang melakukannya untuk Anda. Saya percaya mereka disebut Object Relational Mappers, dan sangat umum akhir-akhir ini.
Pengulangan kode adalah hal terburuk yang dapat Anda lakukan ketika Anda mencoba membangun aplikasi yang bisa dirawat!
Setuju, itulah sebabnya disimpanprocs adalah hal yang buruk. Jauh lebih mudah untuk melakukan refactor dan mendekomposisi (memecah menjadi bagian-bagian kecil) kode menjadi fungsi daripada SQL menjadi ... blok SQL?
Anda memiliki 4 server web dan banyak aplikasi windows yang menggunakan kode SQL yang sama. Sekarang Anda menyadari ada masalah kecil dengan kode SQl, jadi Anda lebih suka ...... mengubah proc di 1 tempat atau mendorong kode ke semua server web, instal ulang semua aplikasi desktop (clickonce mungkin membantu) pada semua kotak windows
Mengapa aplikasi windows Anda terhubung langsung ke database pusat? Itu tampak seperti lubang keamanan BESAR di sana, dan hambatan karena mengesampingkan caching sisi server. Bukankah mereka harus terhubung melalui layanan web atau mirip dengan server web Anda?
Jadi, dorong 1 sproc baru, atau 4 server web baru?
Dalam hal ini lebih mudah untuk mendorong satu sproc baru, tetapi dalam pengalaman saya, 95% dari 'perubahan yang didorong' mempengaruhi kode dan bukan database. Jika Anda mendorong 20 hal ke server web bulan itu, dan 1 ke database, Anda tidak akan kehilangan banyak jika Anda mendorong 21 hal ke server web, dan nol ke database.
Kode lebih mudah ditinjau.
Bisakah Anda menjelaskan caranya? Saya tidak mengerti. Terutama melihat sebagai sprocs mungkin tidak dalam kontrol sumber, dan karena itu tidak dapat diakses melalui browser SCM berbasis web dan sebagainya.
Lebih banyak kontra:
Storedprocs hidup dalam database, yang muncul di dunia luar sebagai kotak hitam. Hal-hal sederhana seperti ingin menempatkan mereka dalam kendali sumber menjadi mimpi buruk.
Ada juga masalah upaya belaka. Mungkin masuk akal untuk memecah semuanya menjadi satu juta tingkatan jika Anda mencoba untuk membenarkan kepada CEO Anda mengapa hanya menghabiskan 7 juta dolar untuk membangun beberapa forum, tetapi jika tidak, membuat proksi yang disimpan untuk setiap hal kecil hanya pekerjaan tambahan tanpa kerjaan manfaat.