Pengantar Ekstensibilitas

Model aplikasi Windows Communication Foundation (WCF) dirancang untuk menyelesaikan bagian yang lebih besar dari persyaratan komunikasi dari aplikasi terdistribusi apa pun. Tetapi selalu ada skenario bahwa model aplikasi default dan implementasi yang disediakan sistem tidak mendukung. Model ekstensibilitas WCF dimaksudkan untuk mendukung skenario kustom dengan memungkinkan Anda memodifikasi perilaku sistem di setiap tingkat, bahkan hingga mengganti seluruh model aplikasi. Topik ini menguraikan berbagai bidang ekstensi dan menunjuk ke informasi lebih lanjut tentang masing-masing.

Area untuk Diperluas

Anda dapat memperpanjang:

  • Runtime bahasa umum aplikasi. Ini memperluas pengiriman dan pemrosesan pesan untuk aplikasi. Area ini juga mencakup perluasan sistem keamanan, sistem metadata, sistem serialisasi, dan pengikatan dan elemen pengikatan yang menghubungkan aplikasi dengan sistem saluran yang mendasar.

  • Runtime bahasa umum saluran dan saluran. Ini memperluas sistem yang berfungsi di tingkat pesan, menyediakan protokol, transportasi, dan dukungan pengodean.

  • Runtime bahasa umum host. Ini memperluas hubungan domain aplikasi hosting ke saluran dan runtime bahasa umum aplikasi.

Memperluas Runtime Aplikasi

Dalam aplikasi WCF, ada perbedaan antara pesan yang ditujukan untuk saluran dan pesan yang sesuai yang ditujukan untuk aplikasi itu sendiri. Pesan saluran mendukung beberapa fungsionalitas terkait saluran, seperti membuat percakapan yang aman atau membuat sesi yang andal. Pesan-pesan ini tidak tersedia untuk runtime bahasa umum aplikasi; pesan diproses sebelum lapisan aplikasi terlibat.

Pesan aplikasi berisi data yang ditujukan untuk operasi klien atau layanan yang telah Anda atau pelanggan Anda buat. Pesan-pesan ini tersedia untuk sistem ekstensi tingkat aplikasi dalam bentuk pesan atau objek, tergantung pada kebutuhan Anda.

Semua pesan melewati sistem saluran; hanya pesan aplikasi yang diteruskan dari sistem saluran ke dalam aplikasi. Untuk membuat fungsionalitas tingkat saluran baru, Anda harus memperluas sistem saluran. Untuk membuat fungsionalitas tingkat aplikasi baru, Anda harus memperluas layanan atau runtime klien (masing-masing pengirim dan pabrik saluran). Untuk informasi selengkapnya tentang memperluas runtime bahasa umum aplikasi, lihat Memperluas ServiceHost dan Lapisan Model Layanan.

Memperluas Keamanan

Untuk membangun mekanisme keamanan kustom seperti token dan mandat, Anda harus memperluas sistem keamanan. Untuk informasi selengkapnya, lihat Memperluas Keamanan.

Memperluas Metadata

Untuk mengekspos metadata Anda secara berbeda dari default, Anda harus memperluas sistem metadata. Untuk informasi selengkapnya, lihat Memperluas Sistem Metadata.

Memperluas Serialisasi

Untuk membangun encoder kustom, menyediakan pengganti data, atau pekerjaan lain yang melibatkan penyesuaian data yang ditransfer, Anda harus memperluas sistem serialisasi. Untuk informasi selengkapnya, lihat Memperluas Encoder dan Serializer.

Memperluas Pengikatan

Untuk mengaitkan saluran transportasi atau protokol dengan lapisan aplikasi, Anda harus memperluas sistem pengikatan. Untuk informasi selengkapnya, lihat Memperluas Pengikatan.

Memperluas Sistem Saluran

Untuk membuat saluran yang mendukung fungsionalitas transportasi atau protokol kustom, lihat Memperluas Lapisan Saluran.

Memperluas Sistem Hosting Layanan

Untuk memodifikasi model aplikasi di seluruh layanan, Anda harus memperluas kelas System.ServiceModel.ServiceHostBase. Untuk informasi selengkapnya, lihat Memperluas ServiceHost dan Lapisan Model Layanan.

Untuk memodifikasi hubungan antara domain aplikasi hosting dan host layanan, Anda harus memperluas kelas System.ServiceModel.Activation.ServiceHostFactory. Untuk informasi selengkapnya, lihat Memperluas Hosting Menggunakan ServiceHostFactory.

Lihat juga