Saya sedang mencari daftar "sepuluh besar" alasan mengapa kita harus terhubung ke database jarak jauh melalui layanan web daripada langsung menghubungkan ke db. Ini adalah debat internal sekarang dan saya pro-layanan web tetapi kalah argumen. Saya memiliki pemahaman dasar tentang WCF / layanan web, tidak ada orang lain yang memilikinya. Kita dapat melakukan apa pun yang kita inginkan, tetapi kita harus tetap dengan apa pun yang kita pilih sekarang.
Inilah yang saya dapatkan. Lagi?
- Layanan web WCF dapat, jika dikonfigurasi dengan benar, menjadi lebih aman.
- Perubahan pada DB hanya perlu dilakukan di tingkat layanan (file konfigurasi atau layanan kompilasi ulang).
- Setelah disiapkan dan dihosting, layanan web lebih mudah digunakan.
sumber
Menurut pendapat saya, Anda seharusnya tidak secara otomatis mengekspos database Anda sebagai layanan web. Jika ternyata Anda membutuhkan layanan untuk mengekspos data Anda, maka tulis satu, tetapi tidak semua akses database harus dilakukan melalui layanan web.
sumber
Sebagian besar poin ini berlaku untuk API formal apa pun, tidak secara khusus Layanan Web.
sumber
Menulis layanan web yang hanya membungkus panggilan ke prosedur tersimpan tampaknya merupakan pendekatan yang salah arah untuk merancang DAL yang baik. Kemungkinan besar, prosedur tersimpan Anda adalah kode warisan yang tersisa dari sistem klien-server yang lebih lama, misalnya aturan bisnis yang terkubur di dalam SP. Jika itu masalahnya, Anda benar-benar berusaha membuat dompet sutra dari telinga babi.
Selain itu, Anda menambahkan lapisan protokol pesan SOAP yang menambahkan kinerja hit ke aplikasi web yang telah 'dipaksa' untuk berkencan dengan 'babi' ini. Saat ini saya sedang mengerjakan proyek di mana aplikasi MVC-4 baru kami telah diinstruksikan untuk menggunakan DAL semacam itu. Kami memiliki beban untuk mengubah baik tanda tangan WebMethod maupun tanda tangan SP setiap kali muncul cerita pengguna baru yang memerlukan perubahan tersebut; yang bagi kami adalah setiap sprint. Yang melekat dalam pendekatan passthru semacam itu adalah dua tingkatan yang sangat erat.
sumber
1) Sakit kepala dalam memelihara database berkurang dari sisi pengembang sehingga mereka hanya dapat fokus pada pengembangan.
2) Layanan web mendukung komunikasi dari berbagai platform (sistem operasi seperti windows, ios, android dll) dengan metode yang sangat mudah dan efektif. Misalnya mempertimbangkan situasi ketika aplikasi android & aplikasi ios ingin berkomunikasi ke situs web yang berbasis java sehingga untuk komunikasi ketiga hal webservice adalah solusi terbaik daripada memelihara tiga database yang berbeda.
sumber
Secara umum
Saya baru saja menatap ASP.NET Web Api dan berencana membuat layanan data terlebih dahulu.
Saya baru-baru ini berfokus pada aplikasi web .NET MVC dengan menggunakan kerangka entitas.
Saya baru-baru ini menemukan diri saya dalam kesulitan yang membuat frustrasi dengan aplikasi web MVC yang saya buat awalnya berdasarkan prosedur tersimpan Oracle. Versi asli sebagai Oracle 9 atau bahkan sebelumnya yang menghadirkan masalah lain dengan Visual Studio 2012 mendorong pendekatan pabrik koneksi yang lebih modern dengan rakitan waktu muat menemukan file dll yang tepat untuk digunakan berdasarkan koneksi konfigurasi web dan nama TNS.
Upaya untuk menyambung ke database gagal dengan pesan kesalahan 'tidak lagi didukung'. Karena penasaran saya mengunduh Oracle 12c dan membuat beberapa koneksi tingkat aplikasi yang bekerja dengan baik dengan nama TNS saya dan dll perakitan beban dan saya dapat bekerja dengan Oracle tanpa masalah.
Ada beberapa layanan web yang dibangun yang bekerja dengan koneksi ke versi Oracle yang lebih lama. Mereka dibangun dengan metode yang secara khusus dipetakan ke tabel yang dipilih namun mengecewakan saya. Saya harus menulis sendiri.
Saya diberitahu bahwa grup yang bertanggung jawab untuk memelihara database Oracle bahwa mereka akan menulis prosedur tersimpan baru untuk menggantikan yang lama yang saya gunakan untuk mengabstraksi antarmuka klien dan lapisan logika bisnis.
Jadi pikiran pertama saya adalah bahwa semua permintaan data umum seperti mengisi daftar drop-down atau melengkapi otomatis dengan data luas perusahaan dilakukan melalui layanan data yang akan memanggil prosedur tersimpan Oracle. Mengapa mengulangi proses itu pada setiap aplikasi dan membuat setiap pengembang berjuang dengan konfigurasi dan perakitan versi / beban, masalah TNS?
begitu....
Saya seorang Pengembang Aplikasi / Analis dan bukan DBA, jadi perspektif saya adalah satu dari pengalaman dengan rasa frustrasi yang tidak pernah berakhir karena harus terus-menerus memodifikasi aplikasi ketika alat database berkembang.
sumber