Apa perbedaan antara Aplikasi Layanan WCF dan Perpustakaan Layanan WCF?

118

Saya sedang mengembangkan layanan web WCF dan saya menggunakan templat Aplikasi Layanan WCF untuk melakukannya.

Apakah membuat "Aplikasi Layanan WCF" memenuhi persyaratan ini? Apa keuntungan membuat Perpustakaan Layanan WCF dibandingkan Aplikasi Layanan WCF?

Ashish Ashu
sumber

Jawaban:

148

Aplikasi layanan menyertakan host situs web yang sudah disiapkan untuk Anda. Pustaka layanan adalah pustaka layanan yang dapat dirujuk dan dimulai oleh host.

Jika Anda memulai dengan pustaka layanan (disarankan), Anda kemudian dapat memilih host mana pun yang Anda inginkan (layanan windows, IIS / ASP.NET, atau bahkan aplikasi konsol) dan Anda hanya akan mereferensikan pustaka Anda dari host baru Anda. Memilih Aplikasi Layanan membatasi host Anda hanya ke IIS / ASP.NET (meskipun ini mungkin baik-baik saja untuk tujuan Anda, tetapi akan membatasi protokol yang dapat Anda gunakan).

Sunting : Perubahan di IIS sejak saya menulis ini memungkinkan untuk lebih banyak jenis protokol pada layanan yang diaktifkan ASP.NET, jadi memilih aplikasi layanan jauh lebih membatasi daripada sebelumnya.

Anderson Imes
sumber
1
Adakah yang punya info tentang protokol / binding baru yang tersedia saat hosting di IIS?
Allen Rice
@AndersonImes Saya tahu ini adalah posting lama, tetapi berharap Anda dapat membantu. Saya telah mencari di mana-mana dan tidak dapat menemukan apakah Layanan WCF dimaksudkan untuk menggantikan Layanan Web di .NET 3.5 dan dengan demikian mengapa templat dihapus di .NET 4? Terima kasih. :)
Chiramisu
2
@Chiramisu WCF memberikan lebih banyak keuntungan dan fleksibilitas ... Saya menemukan ini sangat membantu: Contoh
proyek kode
@ Sam Terima kasih Sam, sangat membantu. Jadi pada dasarnya WCF dapat melakukan semua yang dapat dilakukan Layanan Web dan banyak lagi? Ada batasan yang saya ingin tahu ... :)
Chiramisu
1
@Chiramisu senang membantu! Selalu ada batasan, tetapi WCF memiliki batasan yang jauh lebih sedikit daripada layanan web biasa, saya bayangkan.
StoriKnow
10

Jika semua yang Anda miliki adalah satu proyek, saya hanya melihat kompleksitas tambahan jika Anda memisahkannya. Saya menggunakan perpustakaan ketika saya memiliki beberapa kasus penggunaan tertentu di mana saya harus menjadi tuan rumah di layanan Windows dan di IIS.

Untuk IIS, Anda dapat memindahkan kelas dan antarmuka ke perpustakaan tetapi tetap menyimpan file .SVC Anda di proyek web. Anda harus mengedit file .SVC agar mengarah ke kelas yang memenuhi syarat.

Gary
sumber